Outline
1 Introduccion
2 Dependencias Funcionales
3 Diseno de Bases de Datos
4 Forma Normal Boyce-Codd (FNBC)
5 3FN
6 Dependneicas Funcionales Multivaluadas
7 4FN
Carlos A. Olarte Bases de Datos I Normalizacion
Introduccion y Motivacion
Por que la normalizacion?
De donde salen las formas normales?
Carlos A. Olarte Bases de Datos I Normalizacion
Dependencias Funcionales
Sea r(R) una relacion y k ⊆ R una clave de r entonces:t1 6= t2 → t1[k] 6= t2[k]
Sea α ⊆ R y β ⊆ R. La Dep. Funcional
α→ β
se cumple en R si para todo t1, t2:
t1[α] = t2[α]⇒ t1[β] = t2[β]
k es una superclave de r si k → R
Carlos A. Olarte Bases de Datos I Normalizacion
Ejemplo
Dado el esquema: R(Curso,Prof ,Grupo,Horario) se cumplenlas siguientes D.F:
{curso, grupo} → profesor{curso, grupo} → horario
Y no se cumple que:
{curso} → horario
Carlos A. Olarte Bases de Datos I Normalizacion
Dependencias Triviales
Son aquellas que satisfacen todas las relaciones. Por ejemploA→ A o AB → A
De forma general:
α→ β es trivial si β ⊆ α
Carlos A. Olarte Bases de Datos I Normalizacion
Conceptos
Relacion que satisface una dependencia: Es una relacion en lacual se cumple la D.F
Dependencia que se cumple en un esquema: Es el conjunto dedependencias que estan obligadas a cumplir un esquema
Carlos A. Olarte Bases de Datos I Normalizacion
Ejemplo
En la relacion Horario:
Aud Curso Fac Car Dıa Hora
A5 CC080 Ing Sys Mar 7A5 TE100 Ing Elec Mie 7A5 XY100 Ing Ind Jue 7
Se satisface la dependencia Auditorio → Facultad yFacultad → hora pero no es deseable que el esquema horario lascumpla.
Carlos A. Olarte Bases de Datos I Normalizacion
Continuacion
Por lo anterior, el diseno de la base de datos debe formularse enterminos de las dependencias funcionales que debe cumplir elesquema. Por ejemplo:
Curso → {Aud ,Dia,Hora}Curso → Facultad
Carrera→ Facultad
Carlos A. Olarte Bases de Datos I Normalizacion
Cierre de un conjunto de D.F
Dado un conjunto F de D.F, se puede definir una serie de D.F queson implicaciones logicas de F .El conjunto F + (conjunto cierre), es el conjunto de todas las D.Fimplicadas logicamente de F .
Carlos A. Olarte Bases de Datos I Normalizacion
Calculo de F +
Se calcula a partir de las reglas de Armstrong que son correctas ycompletas:
Reflexividad: Si β ⊆ α⇒ α→ β
Aumentatividad: Si α→ β ⇒ αγ → βγ
Transitividad: Si α→ β ∧ β → γ ⇒ α→ γ
De las anteriores reglas se deducen las siguientes:
Union: Si α→ β ∧ α→ γ ⇒ α→ βγ
Descomposicion: Si α→ βγ ⇒ α→ β ∧ α→ γ
Pseudo Transitividad: Si α→ β ∧ γβ → ϕ⇒ αγ → ϕ
Carlos A. Olarte Bases de Datos I Normalizacion
Cierre de un conjunto de atributos
Se define el CCA α dado un conjunto de D.F F (α+), al conjuntode todos los atributos determinados funcionalmente a partir de α.Si k es un superclave, α+ ≡ R
Carlos A. Olarte Bases de Datos I Normalizacion
Calculo de α+
resultado := α;while(hay cambios)
for each β → γ in F doif β ⊆ resultado then
resultado := resultado ∪ γ;end ;
end ;
Carlos A. Olarte Bases de Datos I Normalizacion
Recubrimiento Canonico
Es reducir el conjunto de D.F sin modificar el cierre del mismopara facilitar el chequeo de las tuplas.
Definicion: Un atributo de una D.F es raro si se puedeeliminar sin alterar F +
Formalmente: A es raro para α si A ∈ α y F implicalogicamente (F − {α→ β}) ∪ {(α− A)→ β}
Carlos A. Olarte Bases de Datos I Normalizacion
Continuacion
Por otro lado, A es raro para β si A ∈ β y el conjunto de D.F:(F − {α→ β}) ∪ {α→ (β − A)} implica logicamente a F
El recubrimiento canonico Fc es un conjunto de D.F tales queF implica Fc y Fc implica F . Ademas:
Ninguna D.F de Fc tiene atributos rarosCada lado izquierdo de las D.F es unico
Carlos A. Olarte Bases de Datos I Normalizacion
Calculo del Fc
repeatutilizar la union para transformar α→ βi y α→ βj en α→ βiβj
encontrar atrib raros en α→ βen α o en β y eliminarlos
until F no cambieF y Fc tienen el mismo cierre
Carlos A. Olarte Bases de Datos I Normalizacion
Diseno de BD (Formas Normales)
El problema de la normalizacion:
Curso Prof CAlumno NAlumno Nota
CC080 COLARTE 4096 ABC 4.5CC080 COLARTE 1232 XYZ 4.1CC100 COLARTE 2546 MNA 4.2CC100 COLARTE 1232 XYZ 3.5CC100 COLARTE 3256 BBD 4.5
Carlos A. Olarte Bases de Datos I Normalizacion
Errores en el diseno anterior
Hay informacion duplicada (gasto de espacio)
Actualizar el profesor de un curso es muy complicado (enterminos de eficiencia)
Como saber el profesor de un curso si hay dos registros delmismo curso con profesor diferente?
Como saber el profesor de un curso si no hay ningunestudiante matriculado?
Carlos A. Olarte Bases de Datos I Normalizacion
Diseno de BD
Solucion: Descomposicion. Dicha descomposicion debeasegurar que no se pierda informacion y que el nuevo esquemase encuentre en una Forma Normal
Descomposicion: Un conjunto de esquemas {r1..rn} es unadescomposicion de r si R = R1 ∪ ... ∪ Rn
Carlos A. Olarte Bases de Datos I Normalizacion
Algunos Conceptos
Superclave: Conjunto de atributos que en conjunto permitenidentificar una tupla
Clave Candidata: Subconjunto propio de la superclave quesirven para identificar una tupla
Clave Primaria: Clave candidata elegida por el disenador
Carlos A. Olarte Bases de Datos I Normalizacion
Continuacion
Descomposicion de reunion sin perdida: Sea C un conjunto deligaduras de Integridad. Una descomposicion {R1..Rn} es unadescomposicion de reunion sin perdida si para todas lasrelaciones r que son legales bajo C se cumple que:
r = πR1(r) ./ πR2(r)... ./ πRn(r)
Carlos A. Olarte Bases de Datos I Normalizacion
Continuacion
De otra forma: Sea F un conjunto de D.F y R1 y R2 unadescomposicion de R. La descomposicion es sin perdida, si almenos una de las siguientes dependencias esta en F +:
R1 ∩ R2 → R1
R1 ∩ R2 → R2
Carlos A. Olarte Bases de Datos I Normalizacion
Conservacion de las dependencias
En un diseno de bases de datos, se deben mantener las D.F iniciales(en la medida de lo posible) , ası se descompongan las relaciones.
Carlos A. Olarte Bases de Datos I Normalizacion
FNBC
Una esquema de relacion R esta en FNBC respecto a un conjuntode D.F F si:
1 α→ β es trivial
2 α es una superclave
Un diseno de B.D esta en FNBC si todas las relaciones delesquema estan en FNBC
Carlos A. Olarte Bases de Datos I Normalizacion
Alg para la descomposicion en FNBC
Resultado, hecho := {R}, falseCalcular F +
while(!Hecho)if (hay un esq Ri de Result que no este en FNBC )
sea α→ βno trivial que se cumple en Ri
de modo que α→ Ri no este en F +
y α ∩ β = �Resultado :=
(resultado − Ri ) ∪ (Ri − β) ∪ (α, β)end
end
Carlos A. Olarte Bases de Datos I Normalizacion
Ejemplo
Sea r(Curso,Profesor ,Creditos,Alumno,Grupo,Nota y las D.F:curso → profesor , creditoalumno, curso, grupo → notaLa descomposicion en FNBC serıa: E 1(curso, prof , credito) yE 2(curso, alumno, grupo, nota)
Carlos A. Olarte Bases de Datos I Normalizacion
Ejercicio
Yo soy el administrador de un hotel. Nuestras habitaciones estannumeradas (101,203,etc) y cada una de ellas tiene un tipo (junior,suit, etc). Cada tipo de habitacion tiene un espacio promedio (enmetros cuadrados) y el costo por noche.Los huespedes llegan al hotel y en un formato de ingreso, seregistra la fecha de llegada , fecha de salida, la habitacion asignaday los datos del persona responsable de la habitacion.
Carlos A. Olarte Bases de Datos I Normalizacion
Ej. Perdida de Dep
Asuma es esquema r(pelicula, teatro, ciudad) y el conjunto dedependencias funcionales:
teatro → citypelicula, ciudad → teatro
Preguntas:
r esta en FNBC?
Cual es una llave de r?
Carlos A. Olarte Bases de Datos I Normalizacion
Ej. Perdida de Dep
Sea R = {Sucur ,Client,Banq} que indica que el cliente tiene unbanquero personal. Se exige que:
banquero → sucursalsucursal , cliente → banquero
Aplicando el algoritmo se obtiene R1 = {Ban,Suc} yR2 = {Cli ,Ban} donde se pierde la 2da D.F.
Carlos A. Olarte Bases de Datos I Normalizacion
Criterios de diseno
Se debe lograr:
FNBC
Reunion sin Perdida
Conservacion de las Dependencias
Como no siempre se puede lograr se opta por:
3FN
Reunion sin Perdida
Conservacion de las Dependencias
Carlos A. Olarte Bases de Datos I Normalizacion
3FN
Es una forma normal mas debil que la FNBC . Se dice que R estaen 3FN con respecto al conjunto F de D.F si se cumple al menosuna de las siguientes condiciones:
1 α→ β es trivial
2 α es una superclave
3 Cada atributo A en β − α esta contenido en alguna clavecandidata de R ( dependencias transitivas)
Carlos A. Olarte Bases de Datos I Normalizacion
3FN
Toda Relacion en FNBC esta en 3FNEn el ejemplo del banquero, la relacion se encuentra en 3FNpuesto que una clave candidata puede ser {Suc,Cli} y{Suc} − {ban} = {Suc} esta contenido en una clave candidata. Ypara la 2da D.F, α es una superclave.
Carlos A. Olarte Bases de Datos I Normalizacion
Algoritmo para Dec en 3FN
Calcular Fc
i := 0;for each D.F α→ β de Fc do
if ninguno Rj , j = 1..i contiene αβi + +; Ri := αβ
if ninguno Rj , j = 1..i contiene una clavecandidata de Ri + +;Ri := Cualquier clave candidata de R
return(R1..Ri )
Carlos A. Olarte Bases de Datos I Normalizacion
Ejemplo
Sea InfoBank = {suc , cli , banq, oficina} y las D.Fban→ {suc , ofic} y {cli , suc} → banqEn el ciclo del for se descompone en las siguientes relaciones:ofic(banq, suc , ofic) y clien(cli , suc , banq)
Carlos A. Olarte Bases de Datos I Normalizacion
FNBC vs. 3FN
La FNBC puede sacrificar dependencias, la 3FN no
Ambas aseguran reunion sin perdida
En la 3FN puede duplicarse informacion (en el ejemploanterior, la informacion de donde trabaja el banquero X estaduplicada)
Carlos A. Olarte Bases de Datos I Normalizacion
Dependencias Multivaluadas
Se representa por
α→→ β
donde: Si t1[α] = t2[α], ∃t3, t4 tal que:t1[α] = t2[α] = t3[α] = t4[α]t3[β] = t1[β]t3[R − β] = t2[R − β]t4[β] = t2[β]t1[R − β] = t4[R − β]
Carlos A. Olarte Bases de Datos I Normalizacion
Dependencias Multivaluadas
Informalmente: La relacion entre α y β es independiente a larelacion entre α y R − β. Por ejemplo, si un cliente puede tenermultiples direcciones, puede escribirse:
cc cliente →→ direccion
α→→ β es trivial si β ⊆ α o si β ∪ α = R
Carlos A. Olarte Bases de Datos I Normalizacion
4FN
Un esquema de relacion R esta en 4FN respecto a un conjunto Dde D.F.M si para toda D.F.M en D+ cumple:
1 α→→ β es trivial
2 α es una superclave
Carlos A. Olarte Bases de Datos I Normalizacion
Algoritmo
Resultado := {R}Hecho := false;CalcularD+
while(!Hecho)if (hay un Ri que no este en4FN)
sea α→→ β no trivialque cumple Ri de modo queα→ Ri
no estaenD+yα ∩ β = �Resultado := (Res − Ri ) ∪ (Ri − β) ∪ (α, β)
end ;end ;
Carlos A. Olarte Bases de Datos I Normalizacion
Ejemplo
Sea Libros(ISBN,Titulo,Materia,Autor ,Fecha y las D.F:ISBN → Titulo,FechaISBN →→ AutorISBN →→ MateriaLa descomposicion en 4FN serıa:(ISBN,Titulo,Fecha), (ISBN,Materia)(ISBN,Autor)
Carlos A. Olarte Bases de Datos I Normalizacion
Ejercicio
Se desea construir una base de datos que permita almacenarinformacion relativa a un congreso de informatica. De cualquierparticipante, interesa registrar su nombre, documento de identidad, su nacionalidad, la universidad de la que proviene y su e-mail.Los artıculos tienen un identificador , un tıtulo , un conjunto deautores y el idioma en el que esta escrito. De cada artıculo seconoce sobre que temas particulares trata (por ejemplo, Ing.Software, Bases de Datos, Sistemas Operativos y/o Concurrencia,etc). El congreso se organiza en diferentes sesiones. Cada sesiontiene un tema que es unico entre todas las sesiones del congreso.Ademas se realizan en una fecha dada , en un determinado salon yen un turno que puede ser manana o tarde. Para cada sesioninteresa registrar los artıculos que se presentaran en ella. Unartıculo se presentara en una unica sesion.
Carlos A. Olarte Bases de Datos I Normalizacion
2FN
Solo reconocimiento historico. Se dice que R esta en 2FN si todoatributo A pertenece a una clave candidata y A no dependeparcialmente de ninguna clave candidata.
Carlos A. Olarte Bases de Datos I Normalizacion