tema 5 universidad de murcia facultad de informática diseño de bases de datos
TRANSCRIPT
Tema 5
Universidad de MurciaUniversidad de Murcia
Facultad de InformáticaFacultad de Informática
Diseño de Bases de DatosDiseño de Bases de Datos
DBD. Diseño Relacional y Normalización 2
Diseño Relacional
El diseño de una BD Relacional puede abordarse de dos formas distintas:
Obteniendo el esquema relacional directamente:Objetos y reglas captadas del análisis del mundo real, representadas por un conjunto de esquemas de relación, sus atributos y restricciones de integridad.
Realizando el diseño del esquema "conceptual" de la BD (modelo E/R) y transformándolo a esquema relacional.
DBD. Diseño Relacional y Normalización 3
Ejemplo de diseño inadecuado
Redundancia de información: ciudad, distancia (ciudad); precio (artículo).
Anomalías de modificación: !podemos tener el mismo artículo con dos precios! (igual argumento para ciudad y distancia). inconsistencias
Anomalías de inserción: ¿Podemos registrar nuevo artículo?, ¿Nuevo cliente?, ¿Nueva ciudad, distancia?
Anomalías de borrado: Si eliminamos tupla de pedido de artículo A3 o cliente C4 pérdida de información.
DBD. Diseño Relacional y Normalización 4
Ejemplo de diseño inadecuado
Redundancia de información: datos repetidos desperdicio de espacio, actualización complicada
mal diseño: anomalías, redundancia e inconsistencias de la
información imposibilidad para representar cierta información pérdida de información
normalización conversión de una relación con ciertos problemas a
dos o más relaciones que no tienen tales problemas
DBD. Diseño Relacional y Normalización 5
Principio básico de diseño:
"hechos distintos se deben almacenar en objetos distintos"
DBD. Diseño Relacional y Normalización 6
Teoría de Normalización
Técnica formal de análisis y organización de datos; trata de evitar la redundancia y anomalías de actualización.
Introduce formalización en el diseño lógico de BDR. Además permite mecanizar parte del proceso al
disponer de instrumentos algorítmicos de ayuda al diseño.
Proceso de normalización: disminuye las anomalías de actualización, pero penaliza las consultas (combinación consume muchos recursos).
DBD. Diseño Relacional y Normalización 7
Formas normales
un esquema de relación está en una determinada forma normal si satisface un determinado conjunto específico de restricciones definidas sobre los atributos del esquema (dependencias).
1ª FN (Codd, 1970)•Concepto de relación normalizada.
2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd, 1974)•Basadas en análisis de dependencias funcionales.
4ª FN. Fagin, 1977•Basada en análisis de dependencias multivaluadas.
5ª FN. Fagin, 1979 •Basada en análisis de dependencias de proyección /
combinación.
DBD. Diseño Relacional y Normalización 8
Relaciones en 5ªFN
Relaciones en 4ªFN
Relaciones en FNBC
Relaciones en 3ªFN
Relaciones en 2ªFN
Relaciones normalizadas
Relaciones
Formas normales
DBD. Diseño Relacional y Normalización 9
Dependencias restricciones de integridad impuestas por el
usuario. propiedades inherentes al contenido semántico de los
datos. se han de cumplir para cualquier extensión del
esquema de una relación.
No se pueden demostrar, pero sí afirmar por observación del minimundo a representar.
Del análisis de la extensión de un esquema relacional sólo podremos deducir que no existe una determinada dependencia.
Si una dependencia es cierta para un determinado esquema de relación, una extensión no será válida si no la cumple.
DBD. Diseño Relacional y Normalización 10
Dependencia funcional
Sean A y B atributos de una misma tabla o relación R. Se dice que B es funcionalmente dependiente de A y se denota A B si todo posible valor de A tiene asociado un único valor de B,
o lo que es lo mismo, en todas las tuplas de r(R) en las que el atributo A toma el mismo valor “v1”, el atributo B toma también un mismo valor “v2”.
DBD. Diseño Relacional y Normalización 11
Dependencia funcional definición
Sean X e Y subconjuntos de A (A, conjunto de atributos de R).
Decimos que X determina o implica a Y en R (= Y depende funcionalmente de X) si para dos tuplas cualesquiera de r(R) que tengan iguales valores en X, también son iguales los valores en Y.
Se representa por X Y
Def: Sean R(A:D), X A, Y A. X Y si
r(R), ti,tj r(R), [x (ti)=x(tj) y(ti) = y(tj)]
t1, t2 r (t1[X] = t2[X] t1[Y] = t2[Y] )
DBD. Diseño Relacional y Normalización 12
Diagrama de dependencias funcionales
Ejemplo: R ( A, DF ).R: pedidosA: {artículo, cliente, cantidad, precio, ciudad, distancia}. DF: ({artículo,cliente} {cantidad,precio,ciudad, distancia},
artículo precio,cliente {ciudad, distancia},ciudad distancia )
Diagrama de DependenciasFuncionales
DBD. Diseño Relacional y Normalización 13
Dependencia funcional plena o completa
Sea X (conjunto de atributos). Se dice que Y tiene dependencia funcional plena o completa de X,
si depende funcionalmente de X pero no depende de ningún subconjunto del mismo
X Y sii X' X | X' Y (X determina completamente "" a Y si y solo si no existe un subconjunto X' de X tal que ese subconjunto X' determine funcionalmente a Y)
P.e. (artículo, cliente) cantidad es una DF completa, pero
(artículo, cliente) precio no es una DF completa puesto que artículo precio;
DBD. Diseño Relacional y Normalización 14
Dependencia funcional transitiva
Si XY, Y-/X, YZ entonces Z depende transitivamente de X ( X--Z ).
P.e. Cliente ciudad, ciudad -/ cliente (no determina funcionalmente), y cliente distancia, por tanto, ciudad --- distancia (cliente determina “transitivamente” a distancia).
DBD. Diseño Relacional y Normalización 15
Normalización de un esquema de BD Relac.
DBD. Diseño Relacional y Normalización 16
Segunda Forma Normal (2ªFN).
Un esquema de relación R(A,DF) está en 2ªFN si y sólo si está en 1ªFN (es decir, si la relación está normalizada) y sus atributos no primarios dependen
completamente de la clave primaria de R.(atributos no primarios: que no formen parte de la clave primaria).
Si una relación R no está en 2ª FN, se puede normalizar descomponiendo esa relación en:
Una relación con los atributos de clave primaria, más los atributos con dependencia completa de ella.
Una relación para cada "parte" de la clave primaria, más los atributos que dependan funcionalmente de esa parte.
DBD. Diseño Relacional y Normalización 17
Descomposición a 2ª FN (informal)
Ejemplo: PEDIDOS se descompone en: PEDIDOS'({artículo,cliente, cantidad},
{[artículo,cliente] cantidad})ARTICULOS ({artículo, precio}, {artículo precio} )CLIENTES({cliente,ciudad,distancia},
{clienteciudad,ciudaddistancia})
DBD. Diseño Relacional y Normalización 18
Tercera Forma Normal (3ªFN)
Un esquema de relación R(A,DF) está en FN3 si y sólo si
está en FN2 y ninguno de sus atributos no primarios depende
transitivamente de la clave primaria de R. Es decir no hay DF transitivas.
Descomposición informal: Si una relación no está en 3ª FN, y tenemos los conjuntos de atributos X,Y,Z tales que XY, YZ (por tanto X --- Z ):
Una relación formada por la clave primaria (X) más los atributos que dependen directamente de ella.
Una relación para los atributos de Y y Z.
DBD. Diseño Relacional y Normalización 19
Descomposición a 3ª FN (informal)
Ejemplo: CLIENTES la descomponemos en:CLIENTES' ({cliente, ciudad}, {cliente ciudad})CIUDADES ({ciudad, distancia}, {ciudad distancia})
DBD. Diseño Relacional y Normalización 20
Implicación lógica de DFs.
Dado un esquema relacional R, una dependencia funcional df de R está implicada lógicamente por un conjunto de dependencias DF de R si cada ejemplar de la relación r(R) que satisface DF también satisface df.
R({ABCGHI}, {AB, AC, CGH, CGI, BH} ¿ AH ?Si t1[A]=t2[A], AB t1[B]=t2[B], BH t1[H]=t2[H] AH
Cierre (clausura) de DF: Dado un conjunto de dependencias funcionales DF, llamaremos cierre de DF, y lo representaremos por DF+, al conjunto de todas las dependencias funcionales posibles que implicadas lógicamente en DF.
DBD. Diseño Relacional y Normalización 21
Reglas de inferencia de DFs Dado un conjunto DF de dependencias funcionales, podemos probar
que se cumplen otras ciertas dependencias funcionales inferidas de DF.
"Axiomas" de Armstrong:Sea R (A:D); X ,Y, Z, W subconjuntos de A. Se verifica:
1) Reflexividad. Si X, conjunto de atributos, Y X, entonces se verifica que X Y.
2) Aumentatividad. Si X Y, Z conjunto de atributos, entonces se verifica que XZ YZ.
(XY es lo mismo que X Y, unión)
3) Transitividad. Si X Y e Y Z, entonces se verifica que X Z.
Estas reglas forman un sistema completo de reglas de inferencia, porque dado DF permiten calcular DF+
Son correctas (seguras) puesto que no generan dependencias funcionales incorrectas.
DBD. Diseño Relacional y Normalización 22
Otras reglas A partir de ellas, se pueden deducir otra serie de
propiedades interesantes:4) Unión.
Si XY y X Z, entonces X YZ.{(XY), (XZ) [aumento] (XX XY), (XY ZY) [trans] (X YZ)}
5) Pseudotransitividad. Si XY y WYZ, entonces WXZ.{ (XY) [aumento] (WXWY) [trans, WYZ] (WXZ)}
6) Descomposición. Si XY y ZY, entonces XZ.{ (ZY) [reflex] (YZ) [trans, XY] (XZ) }
DBD. Diseño Relacional y Normalización 23
Ej. axiomas:
R({A,B,C,D,E},{A B, C D, D E}) ¿ AC ABCDE ?
1. A B (dada)2. AC ABC (aumento, 1, AC)3. C D (dada)4. D E (dada)5. C E (transitividad, 3, 4)6. C DE (union, 3, 5)7. ABC ABCDE (aumento, 6, ABC)8. AC ABCDE (transitividad, 2, 7)
DBD. Diseño Relacional y Normalización 24
Cierre de un descriptor X+ : Conjunto de todos los atributos determinados
funcionalmente por un descriptor X en DF. (XX+) Algoritmo de Cierre de un descriptor respecto a un DF: Entrada: R, DF. (suponemos que los atributos de partida son
todos los contenidos en DF y R es un subconjunto de ellos) Salida: R+
Proceso:1) R+ := R 2) Repetir (hasta que no se añadan más atributos a R+):
2.1) Para cada X Y en DF:Si X R+ e Y R+ entonces R+ := R+ Y
[Comentarios: 1. R R ; 2. X R+, R+ X (reflexiva);
si XY, entonces R+Y (transitiva); por tanto, Y puede ser incluido en R+ (unión) ]
DBD. Diseño Relacional y Normalización 25
Ejemplo cierre de un descriptor R(A,B,C,G,H,I), (AB, AC, CGH, CGI, BH} ¿(AG)+?
1) AG AG2) Repetir2.1) Primer “Para cada”
21a. A B, B AG AG AGB 21b. A C, C AGB AG AGBC21c. CG H, H AGBC AG AGBCH21d. CG I, I AGBCH AG AGBCHI21e. B H, H AGBCHI nada
Segundo…21a,21b,21c,21d,21e nada
No se añaden más atributos => Fin Repetir
DBD. Diseño Relacional y Normalización 26
Aplicaciones de cierres Dado DF, comprobar si una dependencia funcional
XY se halla en DF+
Si X X+, Y X+ XY DF+ (descomposición) Comprobar superclaves
Definición de Superclave: Dado R(A, DF), se denomina superclave SK de R a un subconjunto no vacío de A tal que SK A sea derivable de DF;
• SK ≠ , SK A DF+
• Comprobaremos si SK+ en DF contiene todos los atributos de R.
Definición de clave candidata: Dado R(A, DF), se denomina clave K de R a un subconjunto no vacío de A que sea superclave y no exista ningún subconjunto estricto K' de K tal que K' A ;
• K ≠ KA DF+ K' K | K‘ A
DBD. Diseño Relacional y Normalización 27
Aplicaciones de cierres
Dado R(A,DF), Cálculo de DF+
Para cada Y A, •Se obtiene Y+ en DF•Para cada Z Y+ se genera una dependencia funcional
YZ Equivalencia de dos conjuntos de dependencias:
Dos conjuntos de dependencias funcionales DF1 y DF2 son equivalentes si, y sólo si, DF1+ = DF2+
(todas las dependencias de DF2 son inferibles de DF1 y viceversa).
Si para toda XY DF2 se cumple Y X+ en DF1 y recíprocamente, para toda ZWDF1 se cumple WZ+ en DF2, entonces DF1 y DF2 son equivalentes.
DBD. Diseño Relacional y Normalización 28
Recubrimiento minimal
Las dependencias funcionales son restricciones de integridad que deben ser comprobadas en caso de actualización. Interesa minimizar este conjunto de restricciones.
Un recubrimiento minimal DFm es un conjunto de dependencias equivalente a DF.
De entre todos los conjuntos equivalentes interesan aquellos conjuntos de dependencias elementales que cumplen la propiedad de no contener ninguna dependencia redundante (e.d. ninguna dependencia que se pueda deducir del resto aplicando los axiomas de Armstrong), ni atributos extraños.
DBD. Diseño Relacional y Normalización 29
Recubrimiento minimal
Dependencia redundante: una dependencia d DF es redundante si se puede
derivar de {DF - d} mediante la aplicación de los axiomas de Armstrong.
Atributo extraño (raro): Dada X Y DF, a X se dice que es un atributo
extraño (ajeno) en la dependencia si la dependencia (X-a) Y DF+.
DBD. Diseño Relacional y Normalización 30
Algoritmo para obtener un Recubrimiento minimal:
Entrada: F, Conjunto de dependencias funcionales elementales (plenas, no triviales, único atributo en implicado).
Salida: H, recubrimiento minimal de F. Proceso: (X,L: descriptores (conjuntos de atributos); A,B: atributos)
1. Eliminación de atributos extraños:
1.1. Repetir para cada X B F :
1.1.1. L := X
1.1.2. Repetir para cada A X:
Si B (L - A)+F
entonces L := L - A
1.1.3. DF := DF - ( X B ) + ( L B )
2. Eliminación de dependencias redundantes:
2.1. H := F
2.2. Repetir para cada X A DF:
G := H - ( XA)
Si A X+G entonces H := G
DBD. Diseño Relacional y Normalización 31
Técnicas principales para el Diseño Relacional
Diseño del esquema conceptual en un modelo de datos de alto nivel (como el ER) y su posterior transformación en un conjunto de relaciones.
En esta técnica podemos aplicar informalmente los principios de normalización comentados (evitar dependencias parciales o transitivas), tanto durante la fase de diseño conceptual, como posteriormente al conjunto de relaciones obtenidas mediante el proceso de transformación.
DBD. Diseño Relacional y Normalización 32
Técnicas principales para el Diseño Relacional
Considerar el diseño de la BD relacional estrictamente en términos de dependencias (funcionales y de otros tipos que veremos) entre los atributos de la BD.
Este proceso es denominado algunas veces como síntesis relacional, puesto que los esquemas de relación son “sintetizados” mediante el adecuado agrupamiento de atributos.
Cada esquema de relación representaría a un grupo de atributos lógicamente coherente y poseería las ventajas asociadas con la normalización (no redundancia, no anomalías, ...).
Durante el proceso de normalización descompondremos un determinado esquema de relación que no esté en una determinada forma normal en múltiples esquemas de relación hasta un diseño final con relaciones en las que se hubiese alcanzado la forma normal deseada.
Caso extremo (descomposición estricta): • comenzamos sintetizando un único esquema de relación (relación
universal), que incluye todos los atributos de la BD.
DBD. Diseño Relacional y Normalización 33
Objetivos de la normalización.
Dado un conjunto A de atributos y el conjunto DF de dependencias existentes entre ellos, R(A, DF), se trata de transformar este esquema origen en un conjunto de n esquemas de relación {Ri (Ai, DFi)}, 1 i n [esquemas resultantes], equivalentes y mejores que R:
a) Conservación de la información.
b) Conservación de dependencias.
c) Mínima redundancia de los datos (mayor grado de normalización).
DBD. Diseño Relacional y Normalización 34
a. Conservación de la información:
a.1. Conservación de atributos: el conjunto de atributos de los esquemas resultantes ha de ser igual al conjunto de atributos del esquema origen.
a.2. Conservación del contenido (tuplas): para toda extensión r de R, la reunión natural (natural join, * ) de las relaciones resultantes
tiene que producir la relación origen. (nota: * operador de reunión natural,
operador de proyección)
A = Ai
i 1
n
U
Si la descomposición no cumple esta propiedad, e.d. no es una descomposición y reunión sin pérdidas (de información), cuando se aplica la operación de reunión natural a las relaciones resultantes, aparecen tuplas espúreas en la relación resultado
i= 1
n
Rir r ( )
DBD. Diseño Relacional y Normalización 35
descomposición y reunión con pérdida
LIBROS COD-LIBRO EDITORIAL PAIS 9030 RAMA ESPAÑA 9040 RAMA ESPAÑA 9110 PARANINFO ESPAÑA 9234 ANAYA ESPAÑA 9567 ADDISON EE.UU.
LIBROS_NUEVA COD-LIBRO PAIS 9030 ESPAÑA 9040 ESPAÑA 9110 ESPAÑA 9234 ESPAÑA 9567 EE.UU.
EDITORIAL PAIS RAMA ESPAÑA RAMA ESPAÑA PARANINFO ESPAÑA ANAYA ESPAÑA ADDISON EE.UU.
COD-LIBRO EDITORIAL PAIS 9030 RAMA ESPAÑA 9030 PARANINFO ESPAÑA 9030 ANAYA ESPAÑA 9040 RAMA ESPAÑA 9040 PARANINFO ESPAÑA 9040 ANAYA ESPAÑA 9110 RAMA ESPAÑA 9110 PARANINFO ESPAÑA 9110 ANAYA ESPAÑA 9234 RAMA ESPAÑA 9234 PANANINFO ESPAÑA 9234 ANAYA ESPAÑA 9567 ADDISON EE.UU.
*
DBD. Diseño Relacional y Normalización 36
Descomposición y Reunión Sin Pérdida
Propiedad RSP1: Sea R un esquema de relación y DF un conjunto de dependencias funcionales de R.
R1 y R2 forman una descomposición de R que tiene la propiedad de reunión sin pérdida (lossless join) si por lo menos una de las dependencias funcionales siguientes está en DF+:
R1 R2 R1 - R2
R1 R2 R2 - R1
DBD. Diseño Relacional y Normalización 37
Descomposición y Reunión Sin Pérdida
Propiedad RSP2:
Si una descomposición D = {R1, R2,..., Rm} de R tiene la propiedad de reunión sin pérdida con respecto al conjunto de dependencias funcionales DF sobre R,
y si una descomposición D1 = {Q1, Q2, ..., Qk} de Ri tiene la propiedad de reunión sin pérdida con respecto a la “proyección de DF sobre Ri”, entonces la descomposición
D2 = {R1, R2, ..., Ri-1 , Q1,.Q2, ..., Q k , Ri+1 , ..., Rm} de R
es una descomposición reunión sin pérdida respecto a DF.
“restricción / proyección de DF sobre Ri ” : subconjunto de las dependencias funcionales X Y en DF+ tales que los atributos en X U Y están todos contenidos en Ri )
DBD. Diseño Relacional y Normalización 38
b. Conservación de dependencias.
Sea DF un conjunto de dependencias funcionales sobre R y
sea D = {R1, R2, ..., Rn} una descomposición de R.
La restricción (proyección) de DF sobre Ri es el conjunto DFi
de todas las dependencias de DF+ que incluyen únicamente
atributos de Ri.
Sea DF' = DF1 DF2 ... DFn un conjunto de
dependencias funcionales en R.
La descomposición D de R conservará las dependencias si
DF'+ = DF+ (equivalentes)
DBD. Diseño Relacional y Normalización 39
Forma Normal de Boyce y Codd (FNBC).
Un esquema de relación R(A,DF) está en FNBC
si X Y DF+ no trivial (Y X),
se verifica que X es superclave de R.
(X+ = A)
Un diseño de BD está en FNBC si cada esquema de relación de la BD está en FNBC.
DBD. Diseño Relacional y Normalización 40
Algoritmo de descomposición:
a. Tomaremos una X Y DF+ no trivial y X no superclave. Siempre será posible puesto que R no está en FNBC, e.d. existe al
menos una dependencia funcional X Y, tal que X no superclave. Si X, Y no disjuntos, tomaríamos X (Y-X) (por axiomas de Armstrong).
b. Obtendremos dos proyecciones S(XY, DFs) y T((A-Y), DFt). (DFs, DFt restricciones de DF sobre S y T).
Como X Y DF+ y sus atributos son los de S, también es aplicable a S; por aumento XXY, es decir X superclave (no viola condición para que S esté en FNBC).
c. Si S o T no están en FNBC, las descomponemos. Llegará un momento en que, o bien no hay dependencias cuyo
antecedente no sea superclave (es decir, tablas en FNBC), o se llega a una relación binaria indescomponible la cual estará en
FNBC (puesto que si V(A1,A2) no en FNBC, quiere decir que hay una dependencia A1A2, no trivial con antecedente no superclave: imposible, pues por Ax.A A1A1A2).
DBD. Diseño Relacional y Normalización 41
Algoritmo FNBC:
resultado := {R}; listo := falso;
(Calcular DF+;)
Mientras (no listo) hacer:
Si ( Ri resultado | Ri no en FNBC )
Sea (XY en Ri, no trivial | X Ri DF+ y XY= )
resultado:=(resultado - Ri) ( Ri - Y) ( XY );
si no listo:=verdadero;
Por el procedimiento seguido, la descomposición es de reunión sin pérdida (reversible por reunión natural, propiedades RSP1 y RSP2).
No puede asegurarse en general que se hayan preservado las dependencias.
DBD. Diseño Relacional y Normalización 42
Tercera Forma Normal (FN3).
Definiciones generales,
atributo primo: atributo que forma parte de una clave candidata.
Un esquema de relación R está en FN2 si está en FN1 y todo atributo no primo A de R depende funcionalmente de manera completa de toda clave candidata de R.
Un esquema de relación R está en FN3 si está en FN2 y ningún atributo no primo depende transitivamente de alguna clave candidata de R.
DBD. Diseño Relacional y Normalización 43
Tercera Forma Normal (FN3).
Redefinición de FN3: Un esquema de relación R(A,DF) está en FN3 si X Y DF+ se verifica alguna de las siguientes condiciones:
X Y trivial. X es superclave de R. X no es superclave y cada atributo A (Y - X) está
contenido en una clave candidata de R.
Un diseño de BD está en FN3 si cada esquema de relación de la BD está en FN3.
FNBC
DBD. Diseño Relacional y Normalización 44
Ejemplo: FN3 y FNBC
imparte (estudiante, curso, profesor) DF: (1) estudiante, curso profesor;
(2) profesor curso K: { (estudiante, curso), (estudiante, profesor)} No en FNBC pues antecedentes de (2) no es superclave, pero si en FN3 pues los consecuentes son atributos primos.
Descomposición a FNBC por profesorcurso:
Imparte R-(Y) XY ESTUD CURSO PROF ESTUD PROF PROF CURSO Díaz Bases de Datos Roberto Díaz Roberto Alberto Redes Fernández Bases de Datos Gonzalo Fernández Gonzalo Alonso Redes Fernández Redes Alberto Fernández Alberto Fulgencio Algoritmia Fernández Algoritmia Fulgencio Fernández Fulgencio Gonzalo Bases de Datos García Bases de Datos Marcos García Marcos Marcos Bases de Datos García Redes Alonso García Alonso Roberto Bases de Datos López Bases de Datos Marcos López Marcos Rueda Bases de Datos Gonzalo Rueda Gonzalo
PC
E
DBD. Diseño Relacional y Normalización 45
Algoritmo de síntesis (descomposición de R a FN3):
a. Reemplazar X A1A2 ... An por X A1, X A2, ... X An en DF
b. Calcular DFm recubrimiento mínimo de DF;
c. Creamos un esquema de relación { X A1 ... An} para cada conjunto de dependencias en DFm con el mismo antecedente X.
X A1, X A2, ... X An son todas las dependencias en Dfm con X como antecedente. X será la clave de esta relación.
d. Si quedan atributos de R sin colocar en ningún esquema de relación:creamos un nuevo esquema de relación con todos ellos.
e. Si ningún esquema de relación contiene una clave de RCreamos un esquema de relación para los atributos de cualquier clave de R
Cada Ri en FN3 pues se parte de DFm (eliminando parciales y transitivas). Asegura la conservación de dependencias construye una relación por cada una. Garantiza que la descomposición es de reunión sin pérdida pues al menos un
esquema contiene una clave candidata de la relación que se descompone.
DBD. Diseño Relacional y Normalización 46
Otras dependencias
dependencias funcionales: el tipo de dependencia más importante en la teoría de diseño de bases de datos relacionales.
Sin embargo, en muchos casos las relaciones tienen restricciones que no pueden ser expresadas mediante dependencias funcionales.
En los siguientes puntos, trataremos estos tipos adicionales de dependencias que pueden ser usados para representar otros tipos de restricciones sobre relaciones.
Estas dependencias nos conducirán a formas normales más avanzadas
DBD. Diseño Relacional y Normalización 47
Dependencias multivaluadas son una consecuencia de la 1ª forma normal, la cual no permite que un
atributo en una tupla tome un conjunto de valores. Si tenemos dos o más atributos multivaluados independientes (no
directamente relacionados) en un mismo esquema de relación, tendremos que repetir cada valor de un atributo con cada valor de los otros atributos para conservar la instancia de la relación consistente.
AUTORES (no normalizada) AUTOR MATERIA INSTITUCION DATE LENGUAJE SQL
DISEÑO DE BD RELATIONAL INST. CODD&DATE CONS.
ULLMAN DISEÑO DE BD BASES CONOCIMIENTO
STANFORD UNIV.
AUTORES (NORMALIZADA) AUTOR MATERIA INSTITUCION DATE LENGUAJE SQL RELATIONAL INST DATE DISEÑO DE BD RELATIONAL INST DATE LENGUAJE SQL CODD&DATE CONS DATE DISEÑO DE BD CODD&DATE CONS. ULLMAN DISEÑO DE BD STANFORD UNIV. ULLMAN BASES CONOCIMIENTO STANFORD UNIV.
DBD. Diseño Relacional y Normalización 48
Dependencias multivaluadas
Definición: Dada la relación R(A), se cumple que X ↠ Y (X multidetermina a Y, X e Y descriptores, subconjuntos de A) si para cada valor de X hay un conjunto de cero o más valores de Y, independientemente de los valores de los atributos (A-XY).
Dado R(A), X ↠ Y en R si y sólo si
u, v r(R) tales que u[X]=v[X] , u[Y] v[Y] , u[A-X-Y] v[A-X-Y]
t, w r(R) tales que
u[X] = v[X] = t[X] = w[X] u[Y] = t[Y] v[Y] = w[Y]
u[A-XY] = w[A-XY] v[A-XY] = t[A-XY] Por simetría, X ↠ (A-XY), e.d. X ↠ Y | Z (Z= A-XY).
AUTOR MATERIA INSTITUCION DATE LENGUAJE SQL RELATIONAL INST u DATE DISEÑO DE BD CODD&DATE CONS v DATE LENGUAJE SQL CODD&DATE CONS t DATE DISEÑO DE BD RELATIONAL INST. w ULLMAN DISEÑO DE BD STANFORD UNIV. ULLMAN BASES CONOCIMIENTO STANFORD UNIV.
DBD. Diseño Relacional y Normalización 49
Para cada valor de X, existe un conjunto de 0 o más valores de Y, independientemente de los valores del resto de atributos (A-XY)
Que se verifique X → Y sólo depende de X y de Y, pero que se cumpla X ↠ Y depende, además, del resto de los atributos (las dmv dependen del contexto)
X ↠ Y significa que siempre que aparezcan dos tuplas con distintos valores de Y, pero el mismo valor en X, los valores de Y deberán repetirse con cada valor distinto de A-XY que ocurra con dicho valor de X
Dependencias Multivaluadas Triviales
si X = Y, Y X, X Y = A
DBD. Diseño Relacional y Normalización 50
Reglas de Inferencia
R1. Reflexiva DF’s : Si Y X ent. X → Y R2. Aumento DF’s : X → Y |= XZ → YZ R3. Transitiva DF’s : X → Y, Y → Z |= X → Z R4. Complemento DMV’s : X ↠ Y |= X ↠(A - (X
Y)) R5. Aumento DMV’s : X ↠ Y, W Z |= WX ↠ YZ R6. Transitiva DMV’s : X ↠ Y, Y ↠ Z |= X ↠ (Z - Y) R7. Replicación DF’s y DMV’s : X → Y |= X ↠ Y R8. Coalescencia DF’s y DMV’s :
Si X ↠ Y y W tal que WY= y WZ e Y Z entonces X → Z
(R7 : DF caso especial de DMV, pues satisface la definición formal de DMV. Una DF es una DMV con la restricción adicional de que como máximo 1 valor de Y esté asociado a un valor de X).
DBD. Diseño Relacional y Normalización 51
Cuarta Forma Normal (FN4):R(A, DEP) en FN4 si y sólo si
para toda dependencia no trivial X ↠ Y DEP+,
el antecedente X es superclave de R.
Descomposición sin pérdida de R en R1, R2 si:
(R1 R2) ↠ (R1 - R2)
(simetría : (R1R2) ↠ (R2 - R1)
[Teorema (Fagin, 77):R(A,B,C) se puede descomponer (reunión sin pérdida) en
R1(A,B), R2(A, C) si y sólo si A ↠ B | C en R ]
DBD. Diseño Relacional y Normalización 52
Descomposición a FN4 de una relación R
a. Resultado= {R}
b. Mientras que Q en Resultado, Q no en FN4
b1. Encuentre X ↠ Y en Q, no trivial, X no superclave
b2. Reemplace Q por (Q - Y) y (X Y)
DBD. Diseño Relacional y Normalización 53
Dependencias de Combinación
Las DF y DMV analizadas, permiten la descomposición sin pérdida de una relación en dos de sus proyecciones.
Sin embargo, existen relaciones donde no se puede llevar a cabo una descomposición binaria sin perdida.
Aun no existiendo DF ni DMV pueden existir redundancias y anomalías.
DBD. Diseño Relacional y Normalización 54
SPJ S# P# J# S1 P1 J2 S1 P2 J1 S2 P1 J1 S1 P1 J1
SP PJ JS S# P# P# J# J# S# S1 P1 P1 J2 J2 S1 S1 P2 P2 J1 J1 S1 S2 P1 P1 J1 J1 S2
SP * PJ
S# P# J# S1 P1 J2 (SP * PJ) * JS SPJ original S1 P2 J1 S2 P1 J1 S2 P1 J2 tupla espúrea S1 P1 J1
DBD. Diseño Relacional y Normalización 55
Dependencia de reunión
Sea R(A), X1, X2, ..., Xn, conjuntos de atributos de A. A la condición de que la descomposición de R proyectando sobre X1, X2, ..., Xn sea reversible por reunión la llamaremos Dependencia de reunión: DR (X1, X2, ..., Xn)
En un esquema de relación R(A) se cumple la DC (X1, X2, ..., Xn )
si toda extensión r(R) se puede construir combinando proyecciones sobre X1,...,Xn :
r = R1 [r] * ... * Rn [r] (necesariamente (X1...Xn)=A)
La DR será trivial si algún Xi = A.
[ DR(X1,X2) puede escribirse también como X ↠Y|Z, donde X=X1 X2, Y=X1-X2, Z=X2-X1. Por tanto, las DMV pueden considerarse como un caso particular de las de reunión cuando n=2.]
DBD. Diseño Relacional y Normalización 56
Sea DC (R1,R2,R3) entonces <a1,b1,c1> R sii <a1,b1> R1, <b1,c1> R2, <c1,a1> R3
Es decir, si <a1,b1,c> R,<a,b1,c1> R,<a1,b,c1> R entonces también <a1,b1,c1> R.
[Cuando un suministrador S suministra el componente P, el proyecto J usa el componente P y el suministrador S suministra al menos un componente al proyecto J, entonces S también suministrará P a J]
SPJ
S# P# J# S1 P1 J1 S1 P2 J2 S2 P2 J1 S3 P3 J2 S2 P1 J3 S1 P2 J1 DEBE EXISTIR S2 P1 J1 DEBE EXISTIR
Las dos últimas tuplas deben de existir en SPJ para que se cumpla la DR(SP,PJ,JS).
DBD. Diseño Relacional y Normalización 57
Quinta Forma Normal (FN5)
Un esquema de relación estará en FN5 con respecto al conjunto de dependencias F (DF, DMV, DC) si en cada dependencia de reunión DR(R1,...,Rn) no trivial en F+, cada Ri es una superclave de R.
La dificultad de la FN5 está en la identificación de las dependencias de combinación, las cuales no tienen una interpretación intuitiva.
Ejemplo SPJ: La clave de SPJ será (S#,P#,J#). Tenemos la DC (SP, PJ, JS), en donde ningún Ri es una superclave (contiene la clave) de SPJ. Por tanto SPJ no está en FN5.