Carlos A. Olarte Bases de Datos I
Outline 1 Introducción 2 Dependencias Funcionales 3 Diseño de Bases de Datos 4 Forma Normal Boyce-Codd (FNBC) 5 3FN 6 Dependneicas Funcionales Multivaluadas 7 4FN
Introducción y Motivación Por qué la normalización? De dónde salen las formas normales?
Dependencias Funcionales Sea r(r) una relación y k R una clave de r entonces: t 1 t 2 t 1 [k] t 2 [k] Sea α R y β R. La Dep. Funcional α β se cumple en R si para todo t 1, t 2 : t 1 [α] = t 2 [α] t 1 [β] = t 2 [β] k es una superclave de r si k R
Ejemplo Dado el esquema: R(Curso, Prof, Grupo, Horario) se cumplen las siguientes D.F: Y no se cumple que: {curso, grupo} profesor {curso, grupo} horario {curso} horario
Dependencias Triviales Son aquellas que satisfacen todas las relaciones. Por ejemplo A A o AB A De forma general: α β es trivial si β α
Conceptos Relación que satisface una dependencia: Es una relación en la cual se cumple la D.F Dependencia que se cumple en un esquema: Es el conjunto de dependencias que están obligadas a cumplir un esquema
Ejemplo En la relación Horario: Aud Curso Fac Car Día Hora A5 CC080 Ing Sys Mar 7 A5 TE100 Ing Elec Mie 7 A5 XY100 Ing Ind Jue 7 Se satisface la dependencia Auditorio Facultad y Facultad hora pero no es deseable que el esquema horario las cumpla.
Continuación Por lo anterior, el diseño de la base de datos debe formularse en términos de las dependencias funcionales que debe cumplir el esquema. Por ejemplo: Curso {Aud, Dia, Hora} Curso Facultad Carrera Facultad
Cierre de un conjunto de D.F Dado un conjunto F de D.F, se puede definir una serie de D.F que son implicaciones lógicas de F. El conjunto F + (conjunto cierre), es el conjunto de todas las D.F implicadas lógicamente de F.
Cálculo de F + Se calcula a partir de las reglas de Armstrong que son correctas y completas: Reflexividad: Si β α α β Aumentatividad: Si α β αγ βγ Transitividad: Si α β β γ α γ De las anteriores reglas se deducen las siguientes: Unión: Si α β α γ α βγ Descomposición: Si α βγ α β α γ Pseudo Transitividad: Si α β γβ ϕ αγ ϕ
Cierre de un conjunto de atributos Se define el CCA α dado un conjunto de D.F F (α + ), al conjunto de todos los atributos determinados funcionalmente a partir de α. Si k es un superclave, α + R
Cálculo de α + resultado := α; while(hay cambios) for each β γ in F do if β resultado then resultado := resultado γ; end; end;
Recubrimiento Canónico Es reducir el conjunto de D.F sin modificar el cierre del mismo para facilitar el chequeo de las tuplas. Definición: Un atributo de una D.F es raro si se puede eliminar sin alterar F + Formalmente: A es raro para α si A α y F implica lógicamente (F {α β}) {(α A) β}
Continuación Por otro lado, A es raro para β si A β y el conjunto de D.F: (F {α β}) {α (β A)} implica lógicamente a F El recubrimiento canónico F c es un conjunto de D.F tales que F implica F c y F c implica F. Además: Ninguna D.F de F c tiene atributos raros Cada lado izquierdo de las D.F es único
Cálculo del F c repeat utilizar la union para transformar α β i y α β j en α β i β j encontrar atrib raros en α β en α o en β y eliminarlos until F no cambie F y F c tienen el mismo cierre
Ejemplo Calcular F c de: A BC B C A B AB C
Diseño de BD (Formas Normales) El problema de la normalización: Curso Prof CAlumno NAlumno Nota CC080 COLARTE 4096 ABC 4.5 CC080 COLARTE 1232 XYZ 4.1 CC100 COLARTE 2546 MNA 4.2 CC100 COLARTE 1232 XYZ 3.5 CC100 COLARTE 3256 BBD 4.5
Errores en el diseño anterior Hay información duplicada (gasto de espacio) Actualizar el profesor de un curso es muy complicado (en términos de eficiencia) Cómo saber el profesor de un curso si hay dos registros del mismo curso con profesor diferente? Cómo saber el profesor de un curso si no hay ningún estudiante matriculado?
Diseño de BD Solución: Descomposición. Dicha descomposición debe asegurar que no se pierda información y que el nuevo esquema se encuentre en una Forma Normal Descomposición: Un conjunto de esquemas {r 1..rn} es una descomposición de r si R = R1... Rn
Algunos Conceptos Superclave: Conjunto de atributos que en conjunto permiten identificar una tupla Clave Candidata: Subconjunto propio de la superclave que sirven para identificar una tupla Clave Primaria: Clave candidata elegida por el diseñador
Continuación Descomposición de reunión sin pérdida: Sea C un conjunto de ligaduras de Integridad. Una descomposición {R1..Rn} es una descomposición de reunión sin pérdida si para todas las relaciones r que son legales bajo C se cumple que: r = π R1 (r) π R2 (r)... π Rn (r)
Continuación De otra forma: Sea F un conjunto de D.F y R 1 y R 2 una descomposición de R. La descomposición es sin pérdida, si al menos una de las siguientes dependencias está en F + : R 1 R 2 R 1 R 1 R 2 R 2
Conservación de las dependencias En un diseño de bases de datos, se deben mantener las D.F iniciales (en la medida de lo posible), así se descompongan las relaciones.
FNBC Una esquema de relación R está en FNBC respecto a un conjunto de D.F F si: 1 α β es trivial 2 α es una superclave Un diseño de B.D esta en FNBC si todas las relaciones del esquema están en FNBC
Alg para la descomposición en FNBC Resultado, hecho := {R}, false Calcular F + while(!hecho) if (hay un esq R i de Result que no este en FNBC) sea α βno trivial que se cumple en R i de modo que α R i no este en F + y α β = Resultado := (resultado R i ) (R i β) (α, β) end end
Ejemplo Sea r(curso, Profesor, Creditos, Alumno, Grupo, Nota y las D.F: curso profesor, credito alumno, curso, grupo nota La descomposición en FNBC sería: E 1(curso, prof, credito) y E 2(curso, alumno, grupo, nota)
Ej. Pérdida de Dep Sea R = {Sucur, Client, Banq} que indica que el cliente tiene un banquero personal. Se exige que: banquero sucursal sucursal, cliente banquero Aplicando el algoritmo se obtiene R1 = {Ban, Suc} y R2 = {Cli, Ban} dónde se pierde la 2da D.F.
Criterios de diseño Se debe lograr: FNBC Reunión sin Pérdida Conservación de las Dependencias Como no siempre se puede lograr se opta por: 3FN Reunión sin Pérdida Conservación de las Dependencias
3FN Es una forma normal más débil que la FNBC. Se dice que R está en 3FN con respecto al conjunto F de D.F si se cumple al menos una de las siguientes condiciones: 1 α β es trivial 2 α es una superclave 3 Cada atributo A en β α está contenido en alguna clave candidata de R ( dependencias transitivas)
3FN Toda Relación en FNBC está en 3FN En el ejemplo del banquero, la relación se encuentra en 3FN puesto que una clave candidata puede ser {Suc, Cli} y {Suc} {ban} = {Suc} está contenido en una clave candidata. Y para la 2da D.F, α es una superclave.
Algoritmo para Dec en 3FN Calcular F c i := 0; for each D.F α β de F c do if ninguno R j, j = 1..i contiene αβ i + +; R i := αβ if ninguno R j, j = 1..i contiene una clave candidata de R i + +; R i := Cualquier clave candidata de R return(r 1..R i )
Ejemplo Sea InfoBank = {suc, cli, banq, oficina} y las D.F ban {suc, ofic} y {cli, suc} banq En el ciclo del for se descompone en las siguientes relaciones: ofic(banq, suc, ofic) y clien(cli, suc, banq)
FNBC vs. 3FN La FNBC puede sacrificar dependencias, la 3FN no Ambas aseguran reunión sin pérdida En la 3FN puede duplicarse información (en el ejemplo anterior, la información de dónde trabaja el banquero X está duplicada)
Dependencias Multivaluadas Se representa por α β dónde: Si t 1 [α] = t 2 [α], t 3, t 4 tal que: t 1 [α] = t 2 [α] = t 3 [α] = t 4 [α] t 3 [β] = t 1 [β] t 3 [R β] = t 2 [R β] t 4 [β] = t 2 [β] t 1 [R β] = t 4 [R β]
Dependencias Multivaluadas Informalmente: La relación entre α y β es independiente a la relación entre α y R β. Por ejemplo, si un cliente puede tener múltiples direcciones, puede escribirse: cc cliente direccion α β es trivial si β α o si β α = R
4FN Un esquema de relación R está en 4FN respecto a un conjunto D de D.F.M si para toda D.F.M en D + cumple: 1 α β es trivial 2 α es una superclave
Algoritmo Resultado := {R} Hecho := false; CalcularD + while(!hecho) if (hay un R i que no este en4fn) sea α β no trivial que cumple R i de modo queα R i no estaend + yα β = Resultado := (Res R i ) (R i β) (α, β) end; end;
Ejemplo Sea Libros(ISBN, Titulo, Materia, Autor, Fecha y las D.F: ISBN Titulo, Fecha ISBN Autor ISBN Materia La descomposición en 4FN sería: (ISBN, Titulo, Fecha), (ISBN, Materia) (ISBN, Autor)
2FN Solo reconocimiento histórico. Se dice que R está en 2FN si todo atributo A pertenece a una clave candidata y A no depende parcialmente de ninguna clave candidata.
1FN Todos los atributos de una relación deben ser monovaluados (inherente al modelo relacional)