8. Teoría de la Normalización

8. Teoría de la Normalización Objetivos • Apreciar la importancia y utilidad de emplear la teoría de la normalización en la etapa de diseño lógico de

36 downloads 120 Views 129KB Size

Recommend Stories


$ 9:9;6 $ '! (,$ + $!8 8 & $'& 8 8
Av. Salamanca N-0675 Edif. Sisteco Piso 1 Central Piloto: +591 (4) 452 5160 & +591 (4) 411 5056 eMail [email protected] Sitio web: http://www.f

8. La guerra de Argelia
8. La guerra de Argelia La guerra de Argelia comprende entre los años de 1954 a 1962 en el territorio de la actual Argelia. En esta guerra combatieron

Story Transcript

8. Teoría de la Normalización Objetivos • Apreciar la importancia y utilidad de emplear la teoría de la normalización en la etapa de diseño lógico de bases de datos relacionales, para detectar y corregir esquemas relacionales diseñados inadecuadamente. • Comprender los conceptos de dependencia funcional y dependencia multivalorada. • Entender el significado de las formas normales 1FN, 2FN, 3FN, FNBC y 4FN. • Comprender los diferentes procedimientos algorítmicos de la teoría de la normalización que permiten determinar las claves de, o normalizar, una relación. Tema 8. Teoría de la normalización

1

8. Teoría de la Normalización Contenidos 8.1. Motivación 1. Dificultades en el diseño de esquemas relacionales 2. Obtención de esquemas relacionales de calidad

8.2. Dependencias funcionales 8.3. Las tres primeras formas normales y la forma normal de Boyce/Codd 8.4. Enfoques de diseño relacional: Análisis y Síntesis 8.5. Dependencias multivaloradas y cuarta forma normal

Tema 8. Teoría de la normalización

2

1

8. Teoría de la Normalización Bibliografía Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 14 y 15) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2ª Ed. Addison-Wesley Iberoam. (Cap. 12 y 13) [MPM 1999] De Miguel, A.; Piattini, M.; Marcos, E. Diseño de bases de datos relacionales. Ra-Ma. (Cap. 4 al 6) [SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de datos. 3ª Edición. McGraw-Hill. (Cap. 7)

[EN 2002]

[CBS 1998] [D 2001]

Connolly; Begg; Strachan: Database Systems: A Practical Approach to Design, Implementation and Management. 2nd Ed. Add.-Wesl. (Cap. 6) Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición. Prentice-Hall. (Cap. 10 al 12)

Tema 8. Teoría de la normalización

3

8.1 Motivación Diseño en el modelo relacional de datos • Objetivo principal del desarrollo de un esquema de bases de datos relacional: Crear una representación precisa y adecuada de los datos, sus relaciones y sus restricciones • Definición de normalización (E.F. Codd, 1972) : Técnica para producir un conjunto de relaciones (tablas) con propiedades deseables, dados los requisitos de datos de una organización Tema 8. Teoría de la normalización

4

2

8.1 Motivación Diseño en el modelo relacional de datos

(2)

• Recordemos que... – esquema de relación = { atributos } – esquema de BD relacional= { esquemas de relación }

• ¿Cómo obtener un esquema de BDR? – Según el sentido común del diseñador de BD, o – Mediante transformación del esquema conceptual (diagrama MERE) Pero, ¿cómo saber si mi esquema es ... mejor que el tuyo? ... más apropiado? ... de mayor calidad? ¿intuición?

¶ Necesitamos pautas o teorías que ayuden al diseñador a

identificar el agrupamiento óptimo de los atributos para cada relación en el esquema 5

Tema 8. Teoría de la normalización

8.1 Motivación Diseño en el modelo relacional de datos

(y 3)

• Se puede evaluar la idoneidad de esquemas de relación en... – Nivel lógico § interpretación de cada esquema de relación (base o vista) y del significado de sus atributos JSi el esquema de relación es “bueno”, el usuario comprende su significado ð realizará consultas correctas

– Nivel de almacenamiento § cómo se almacenan y actualizan las tuplas de cada relación base

Tema 8. Teoría de la normalización

6

3

8.1 Motivación Dificultades en el diseño de esquemas relacionales • Propiedades no deseables que puede tener un esquema de relación diseñado de forma incorrecta – Repetición de información – Anomalías de actualización de la base de datos – Incapacidad para representar cierta información – Pérdida de información

7

Tema 8. Teoría de la normalización

8.1 Motivación Dificultades en el diseño de esquemas relacionales (2) Ejemplo 1: información sobre pedidos (y productos y clientes) almacenada en una única relación PEDIDO nPed codProd 12 P1 09 P1 22 P1 15 P2 24 P2 05 P2 11 P3 ...

descProd silla silla silla mesa mesa mesa sillón

Tema 8. Teoría de la normalización

precProd 100 100 100 250 250 250 175

uds 12 30 15 35 20 20 10

cifCli A12345678 V22332233 N43344334 A12345678 V22332233 K11112222 N43344334

nomCli Forte Calero Carazo Forte Calero Mitra Carazo

ciudCli Madrid Valencia Alicante Madrid Valencia Madrid Alicante

distanc 400 200 80 400 200 400 80

8

4

8.1 Motivación Dificultades en el diseño de esquemas relacionales (3) Ejemplo 1 (continuación) PEDIDO ( nPed, codProd, descProd, precProd, uds, cifCli, nomCli, ciudCli, distanc )

• ¿Existe repetición de información? • ¿Hay anomalías de actualización? – ¿Qué ocurre si añadimos otro pedido, el nº 27, hecho por el cliente Soriano (CIF G22224444) de Yecla (a 100 km.), de 5 unidades del producto P3 con precio 175€? – ¿Qué pasa si el cliente Forte de Madrid se traslada a Valencia? ¿Y si el producto P1 aumenta de precio? – ¿Qué ocurre si eliminamos el producto P2 de la relación PEDIDO?

• ¿Existe incapacidad para representar información? – ¿Cómo representar (almacenar) un cliente que no haya realizado ningún pedido? – ¿Y un producto que todavía no haya sido pedido por un cliente? Tema 8. Teoría de la normalización

9

8.1 Motivación Dificultades en el diseño de esquemas relacionales (4) Ejemplo 2: información sobre préstamos (y sucursales) almacenada en una única relación PRÉSTAMO idSuc ciudSuc activo nomCli numPrest importe Centro Arganzuela 10.818.215 Santos P-17 1.202 Moralzarzal La Granja 2.524.250 Gómez P-23 2.404 Navacerrada Aluche 2.043.440 López P-15 1.803 Centro Arganzuela 10.818.215 Soto P-14 1.803 Becerril Aluche 480.810 Santos P-93 601 Collado Aluche 9.616.194 Abril P-11 1.082 Navas Alcalá de H. 360.607 Valdivieso P-29 1.442 Segovia Cerceda 4.447.490 López P-16 1.570 Centro Arganzuela 10.818.215 González P-63 2.404 Navacerrada Aluche 2.043.440 Rodríguez P-25 3.005 Galapagar Arganzuela 8.534.375 Amol P-10 2.645 Tema 8. Teoría de la normalización

10

5

8.1 Motivación Dificultades en el diseño de esquemas relacionales (5) Ejemplo 2 (continuación) PRESTAMO ( idSuc, ciudSuc, activo, nomCli, numPrest, importe )

• ¿Existe repetición de información? • ¿Hay anomalías de actualización? – ¿Qué pasa si añadimos otro préstamo, P-31, por 1.803€, para el cliente Rodríguez, hecho por la sucursal “Navacerrada” (ubicada en “Aluche” y con activo de 2.043.440€)? – ¿Qué ocurre si la sucursal “Centro” se traslada a otra ciudad? – ¿Qué pasa cuando todos los préstamos de una sucursal se hayan pagado?

• ¿Existe incapacidad para representar información? – ¿Cómo almacenar una sucursal que no haya concedido todavía ningún préstamo?

Tema 8. Teoría de la normalización

11

8.1 Motivación Dificultades en el diseño de esquemas relacionales (6) • La solución es descomponer el esquema en varias relaciones Ejemplo 2: PRESTAMO ( idSuc, ciudSuc, activo, nomCli, numPrest, importe) ðDescomposición en dos esquemas (son proyecciones de PRESTAMO)

SUCURSAL_CLIENTE ( idSuc, ciudSuc, activo, nomCli ) PRESTAMO_CLIENTE ( nomCli, numPrest, importe )

Tema 8. Teoría de la normalización

12

6

8.1 Motivación Dificultades en el diseño de esquemas relacionales (7) SUCURSAL_CLIENTE idSuc Centro Moralzarzal Navacerrada Centro Becerril Collado Navas Segovia Centro Navacerrada Galapagar

ciudSuc Arganzuela La Granja Aluche Arganzuela Aluche Aluche Alcalá de H. Cerceda Arganzuela Aluche Arganzuela

activo 10.818.215 2.524.250 2.043.440 10.818.215 480.810 9.616.194 360.607 4.447.490 10.818.215 2.043.440 8.534.375

nomCli Santos Gómez López Soto Santos Abril Valdivieso López González Rodríguez Amol 13

Tema 8. Teoría de la normalización

8.1 Motivación Dificultades en el diseño de esquemas relacionales (8) PRESTAMO_CLIENTE nomCli Santos Gómez López Soto Santos Abril Valdivieso López González Rodríguez Amol Tema 8. Teoría de la normalización

numPrest P-17 P-23 P-15 P-14 P-93 P-11 P-29 P-16 P-63 P-25 P-10

importe 1.202 2.404 1.803 1.803 601 1.082 1.442 1.570 2.404 3.005 2.645 14

7

8.1 Motivación Dificultades en el diseño de esquemas relacionales (9) Consulta: obtener las sucursales con préstamos con importe < 1.202€ – Es necesario reconstruir la relación PRESTAMO: – JOIN entre SUCURSAL_CLIENTE y PRESTAMO_CLIENTE, vía el atributo nomCli SELECT idSuc FROM Sucursal_Cliente SC, Préstamo_Cliente PC WHERE SC.nomCli=PC.nomCli AND importe < 1202; equivalente a esta otra sentencia: SELECT idSuc FROM Sucursal_Cliente NATURAL JOIN Préstamo_Cliente WHERE importe < 1202; – Resultado obtenido: tres tuplas ( (Centro...), (Becerril...), (Collado...)) – Pero el resultado correcto es: ( (Becerril...), (Collado...) ) 15

Tema 8. Teoría de la normalización

8.1 Motivación Dificultades en el diseño de esquemas relacionales (10) SUCURSAL_CLIENTE * PRESTAMO_CLIENTE idSuc ciudSuc activo Centro Arganzuela 10.818.215 Centro Arganzuela 10.818.215 Moralzarzal La Granja 2.524.250 Navacerrada Aluche 2.043.440 Navacerrada Aluche 2.043.440 Centro Arganzuela 10.818.215 Becerril Aluche 480.810 Becerril Aluche 480.810 Collado Aluche 9.616.194 Navas Alcalá de H. 360.607 Segovia Cerceda 4.447.490 Segovia Cerceda 4.447.490 Centro Arganzuela 10.818.215 Navacerrada Aluche 2.043.440 Galapagar Arganzuela 8.534.375 Tema 8. Teoría de la normalización

nomCli Santos Santos Gómez López López Soto Santos Santos Abril Valdivieso López López González Rodríguez Amol

numPrest P-17 P-93 P-23 P-15 P-16 P-14 P-17 P-93 P-11 P-29 P-15 P-16 P-63 P-25 P-10

importe 1.202 601 2.404 1.803 1.570 1.803 1.202 601 1.082 1.442 1.803 1.570 2.404 3.005 2.645

16

8

8.1 Motivación Dificultades en el diseño de esquemas relacionales (y 11) • Hay más tuplas en SUCURSAL_CLIENTE * PRESTAMO_CLIENTE que en PRESTAMO, pero existe menos información: descomposición de reunión con pérdida – ¿Cuál es la causa de esta pérdida de información? – ¿Es la siguiente descomposición de reunión sin pérdida? SUCURSAL( idSuc, ciudSuc, activo ) INFO_PRESTAMO ( idSuc, nomCli, numPrest, importe )

L Una descomposición descuidada puede conducir a otro diseño incorrecto, debido a la pérdida de información Tema 8. Teoría de la normalización

17

8.1 Motivación Obtención de esquemas relacionales de calidad • Para crear buenos esquemas de relación, o para medir su calidad... – Seguir pautas informales de diseño – Emplear una técnica formal: normalización • Se minimizará la aparición de las propiedades no deseables

Tema 8. Teoría de la normalización

18

9

8.1 Motivación Obtención de esquemas relacionales de calidad (2) Pautas de diseño de esquemas de relación • Semántica de los atributos de un esquema de relación PAUTA 1 : Diseñar esquemas de relación con significado fácil de entender.

Evitar combinar atributos de múltiples tipos de entidad e interrelación en una relación. Si una relación proviene de un único tipo de entidad o interrelación suele tener un significado claro; en caso contrario suele ser una mezcla ambigua.

• Reducción de valores redundantes en las tuplas – minimizar espacio de almacenamiento ocupado por las relaciones base – evitar anomalías de actualización PAUTA 2 : Diseñar esquemas de relaciones base sin anomalías de actualización. Si para incrementar la eficiencia, se permite la posibilidad de anomalías, indicarlas claramente para su tratamiento correcto por parte de las aplicaciones con acceso a los datos (aunque, normalmente, se crearán vistas para las consultas más frecuentes). Tema 8. Teoría de la normalización

19

8.1 Motivación Obtención de esquemas relacionales de calidad (3) Pautas de diseño de esquemas de relación • Reducción de nulos en las tuplas – NULL tiene múltiples significados, lo que dificulta... • El entendimiento de la semántica de los atributos y • La especificación de operaciones JOIN y agregadas (SUM, AVG...)

– NULL supone el desperdicio de espacio de almacenamiento PAUTA 3 : Evitar atributos que puedan contener NULL en las relaciones base. Si no es

posible, conseguir que NULL se aplique sólo a casos excepcionales y no a la mayoría de las tuplas.

• Evitar la pérdida de información: tuplas falsas (espurias) – Esta pauta puede expresada de manera más formal (Propiedad de Reunión sin Pérdida --se verá) PAUTA 4 : Diseñar las relaciones de forma que puedan ser reunidas (JOIN) mediante condiciones de igualdad sobre atributos Clave Primaria y Clave Externa, para evitar tuplas falsas. Tema 8. Teoría de la normalización

20

10

8.1 Motivación Obtención de esquemas relacionales de calidad (y 4) Normalización de esquemas de relación • Proceso de normalización – Método formal, que identifica relaciones con base en su clave primaria (o candidatas en el caso de la FNBC) y las dependencias funcionales entre sus atributos – Series de tests sobre cada esquema de relación individual, para determinar si satisface o no los requisitos de determinada forma normal – El esquema relacional de BD puede ser normalizado hasta una forma normal específica, para evitar propiedades no deseables

• Formas normales – Basadas en dependencias funcionales entre los atributos de una relación: § 1FN, 2FN, 3FN § FNBC (R. Boyce y Codd, 1974) à definición más fuerte de la 3FN – 4FN, 5FN (Fagin, 1977, 1979) Tema 8. Teoría de la normalización

21

8.2 Dependencias funcionales Sea R un esquema de relación, cuyos atributos son a 1, a 2, ...an • En general, una dependencia funcional α → β es una... – Restricción entre dos conjuntos de atributos (descriptores) α y β – Propiedad inherente al contenido semántico de los datos, que se debe cumplir para cualquier extensión de una relación r con esquema de relación R • Una dependencia funcional... – Describe un esquema de relación R, mediante la especificación de restricciones (sobre atributos) que deben cumplirse siempre – Es definida por alguien que conoce (bien) la semántica de los atributos del esquema de relación R

• El concepto de dependencia funcional es esencial para el diseño de esquemas de base de datos sin redundancia Tema 8. Teoría de la normalización

22

11

8.2 Dependencias funcionales Definición formal • Sea R un esquema de relación, cuyo conjunto de atributos es A, y sean los descriptores α y β, donde α ⊆ A, β ⊆ A, se dice que

α→β

si ∀ t1, t2 ∈ r(R) y t1[α α ]=t2[α α] entonces t1[β β ]=t2[β β] Es decir, β depende funcionalmente de α si para cualesquiera dos tuplas t1 y t2 (de la extensión de una relación r(R) cualquiera) que tengan los mismos valores en los atributos que forman α, también tienen los mismos valores para los atributos que forman β

• También se dice que α determina funcionalmente a β • Que α → β no significa que “dado α pueda deducirse el valor de β” • Si α → β , no sabemos nada acerca de si β → α o no Tema 8. Teoría de la normalización

23

8.2 Dependencias funcionales • Son propiedades de la semántica de los atributos – Una dependencia funcional (en adelante, df) no puede ser demostrada, pero sí afirmada por observación de la realidad

• Son propiedades del esquema de relación (intensión) y no del contenido (extensión) – A partir de la observación de una extensión concreta de una relación r con esquema R, r(R), sólo se puede deducir que no existe (no se cumple) cierta dependencia funcional

• Extensiones permitidas (válidas) y no permitidas – Si cierta df es cierta para un esquema de relación R, entonces cualquier extensión de una relación r(R) que no cumple dicha df, será una extensión no permitida (no válida) Tema 8. Teoría de la normalización

24

12

8.2 Dependencias funcionales Reglas de inferencia • Dado un conjunto de dependencias funcionales DF que R satisface, podemos deducir que R cumple otras dfs – Serán dfs implicadas lógicamente por DF – No es necesario conocer la extensión de ninguna relación r(R)

Sea R(A, DF) donde A={a, b, c} y DF={a → b, b → c}, entonces la df a → c también se satisface en R • Normalmente, en DF sólo se especifican las dfs obvias para un esquema de relación R: las determinadas sin dificultad a partir de la semántica de los atributos de R – A partir de ellas, se puede inferir el conjunto completo de dfs que se cumplen en R – Esto es esencial para el diseño de buenos esquemas de relación 25

Tema 8. Teoría de la normalización

8.2 Dependencias funcionales Axiomas de Armstrong Sean los descriptores α, β, γ, δ, todos subconjuntos de A • Regla de reflexividad dependencia funcional Si β ⊆ α entonces α → β trivial

• Regla de aditividad (de aumentatividad) Si α → β entonces αγ → βγ • Regla de transitividad Si α → β y β → γ entonces α → γ – Conjunto de 3 reglas de inferencia completo y correcto... – ... pero tedioso de utilizar Tema 8. Teoría de la normalización

26

13

8.2 Dependencias funcionales Otras reglas de inferencia ... deducibles a partir de los Axiomas de Armstrong • Regla de pseudotransitividad Si α → β y γβ → δ entonces αγ → δ • Regla de unión (aditiva) Si α → β y α → γ entonces α → βγ • Regla de descomposición (de proyectividad) Si α → βγ entonces α → β y α → γ

N sólo para la parte derecha de una df!!

Tema 8. Teoría de la normalización

27

8.2 Dependencias funcionales Cierre de un conjunto de dependencias funcionales • El cierre de DF ( DF+) es el conjunto de todas las dfs que puedan ser inferidas a partir de DF, aplicando los axiomas de Armstrong • Una df α → β se infiere de un conjunto de dfs DF de R si toda extensión de r(R) que cumple DF, también cumple α → β • Decir que una df α → β ∈ DF + significa que se deriva o es inferible a partir de las dfs contenidas en DF • El cálculo de DF+ suele tener un coste computacional excesivo...

Tema 8. Teoría de la normalización

28

14

8.2 Dependencias funcionales Cierre de un conjunto de dependenc. funcionales (2) ... por eso su obtención sigue los siguientes pasos: 1. Establecer los conjuntos de atributos α que son determinantes (implicantes o parte izquierda) de una df de DF 2. Para cada α aplicar los Axiomas de Armstrong para determinar los atributos que dependen funcionalmente de α • El paso 2 es el cálculo del cierre de un descriptor α sobre un conjunto de dependencias funcionales DF, denotado por α +DF

Tema 8. Teoría de la normalización

29

8.2 Dependencias funcionales Cierre de un conjunto de dependenc. funcionales (3) Cálculo del cierre de un descriptor α +DF α+ = α REPETIR HASTA QUE α+ NO CAMBIE PARA CADA β → δ EN DF SI β ⊆ α+ Y δ ⊄ α+ ENTONCES α+= α+ ∪ δ • Sea R(A, DF), donde A={a,b,c,g,h,i} y DF={a→b, a→c, cg→h, cg→i, b→h} Calcule {ag}+DF • Sea R(A, DF), donde A={a,b,c,d,e,f} y DF={ab→c, bc→ad, d→e, cf→b} Calcule {ab}+DF Tema 8. Teoría de la normalización

30

15

8.2 Dependencias funcionales Cierre de un conjunto de dependenc. funcionales (y 4) Comprobación del cumplimiento de una df en DF • La dependencia funcional α → β se cumple en un conjunto DF de dependencias funcionales si α → β ∈ DF + • α → β ∈ DF+ si y sólo si β ⊆ α +DF – Comprobar que α → β se cumple en DF es ver si β depende funcionalmente de α con base en las dependencias funcionales de DF – Como α+DF contiene todo atributo que depende funcionalmente de α con base en DF, sólo habrá que comprobar si entre ellos está β • Sea R(A, DF), donde A={a,b,c,d,e,f} y DF={ab→c, bc→ad, d→e, cf→b} Compruebe si se cumplen estas dependencias funcionales: – ab → d – d →a Tema 8. Teoría de la normalización

31

8.2 Dependencias funcionales Determinación de claves de un esquema de relación • Hasta ahora hemos estudiado el concepto intuitivo de (super)clave – descriptor que identifica unívocamente cada tupla en una relación

• Definición formal de clave – un descriptor es clave si todos los atributos de la relación dependen funcionalmente de él

Sea R(A, DF), el descriptor K ⊆ A es clave si (K)+DF = A – Es decir, su cierre es el conjunto completo de atributos de R – Esto asegura que no hay dos tuplas distintas con igual valor para K

• Determinación del conjunto K de (super)claves de R(A, DF) K=A PARA CADA α EN K (todos los subconjuntos posibles de A) SI ( K-α )+DF = A , ENTONCES K = K - α

– Tras esto, puede aplicarse el algoritmo siguiente (a partir del paso 3), para ver cuáles de las claves encontradas son claves candidatas (mínimas) en R

Tema 8. Teoría de la normalización

32

16

8.2 Dependencias funcionales Determinación de si un descriptor es clave • Algoritmo para determinar si α es clave candidata de R(A, DF) 1. CALCULAR α+DF 2. SI α+ DF = A , ENTONCES α es superclave, SI NO, α no es clave 3. SI α es superclave, ENTONCES calcular todos los subconjuntos α’ de α REPETIR PARA CADA α’ SI α’+DF = A , ENTONCES α no es clave SI ninguna α’ cumple lo anterior, α es clave candidata • Sea PRESTAMO (nsocio, nomsocio, codlibro, fecha, editorial, país), donde DF={ nsocio → nomsocio, nomsocio → nsocio, ¿Es clave {nomsocio, codlibro}? codlibro → editorial, editorial → país, {nsocio,codlibro} → fecha}

Tema 8. Teoría de la normalización

33

8.2 Dependencias funcionales Equivalencia de dos conjuntos de dependencias funcionales • Sean DF1 y DF2 conjuntos de dependencias funcionales para R se dice que DF2 se sigue de DF1, o bien que DF1 recubre a DF2 – si cada extensión de R que satisface toda df de DF1, también cumple toda df de DF2, o lo que es lo mismo: – si cada df en DF2 también está en DF1+ (puede inferirse de DF 1) DF1 y DF2 son equivalentes si DF1 recubre a DF2 y DF2 recubre a DF1 que es lo mismo que decir...

DF 1 y DF 2 son equivalentes si DF 1+ = DF 2+ Tema 8. Teoría de la normalización

34

17

8.2 Dependencias funcionales Equivalencia de dos conjuntos de dependencias funcionales (2) • A menudo las dfs de un esquema R pueden ser presentadas de varias maneras diferentes, sin que ello signifique cambiar el conjunto de instancias legales de una relación con dicho esquema • Esas “maneras” serán distintos conjuntos de dependencias funcionales DFi equivalentes entre sí Un ejemplo, (quizá algo tonto pero útil) es el siguiente: DF1={ a → b ; b → c } es equivalente a DF 2={a → b ; b → c ; a → c }

• Será el conjunto de reglas de inferencia (los axiomas de Armstrong, por ejemplo) lo que permitirá convertir un conjunto de dependencias funcionales en otro equivalente Tema 8. Teoría de la normalización

35

8.2 Dependencias funcionales Equivalencia de dos conjuntos de dependencias funcionales (y 3) • Es costoso comprobar que DF1 y DF2 son equivalentes, pues supone calcular DF1+ y DF2 + • Así que suele calcularse así: 1. Comprobar si DF1 recubre a DF2 2. Comprobar si DF2 recubre a DF1 si 1 y 2 tienen como resultado “SÍ”, entonces DF1 y DF2 son equivalentes • Y para comprobar si DF 1 recubre a DF 2 es necesario ver si toda df α → β en DF2 también está en DF1+, es decir a. Calcular α+DF1 para cada α → β en DF2 b. Ver si β⊆ α+DF1 si todas las df de DF2 cumplen b, entonces DF1 recubre a DF2 Tema 8. Teoría de la normalización

36

18

8.2 Dependencias funcionales Recubrimiento canónico o minimal • Conjunto de dependencias funcionales simplificado, DF m – Toda df tiene un solo atributo en la parte derecha – No tiene dependencias funcionales redundantes: no se puede quitar una df de DFm y obtener un conjunto de dfs equivalente a DFm – No tiene atributos extraños: no se puede quitar un atributo de una df en DFm y obtener un conjunto de dfs equivalente a DFm

• Atributo extraño en una dependencia funcional de DF – Sea una df α → β en DF, a∈α es un atributo extraño si (α α - a) → β ∈ DF+ » El atributo a puede ser eliminado sin modificar el cierre de DF

• Dependencia funcional redundante de DF – La df α → β es redundante si puede derivarse de G={DF – (α α → β )} es decir, si β ∈ α +G » La df d puede ser eliminada sin modificar el cierre de DF Tema 8. Teoría de la normalización

37

8.2 Dependencias funcionales Recubrimiento canónico o minimal (2) • Es interesante utilizar el recubrimiento minimal de un conjunto de dependencias funcionales porque... – Toda dependencia funcional es una restricción de integridad (semántica). Si no hay dfs redundantes, se minimiza el coste de mantenimiento de la integridad de la BD sin disminuir la semántica – DFm se utiliza para normalizar una relación y para calcular las claves, así que se disminuye el coste de los algoritmos empleados para ello

• Dependencia funcional completa – α → β es completa si la parte derecha β no depende de ningún subconjunto de la parte izquierda α (β depende de α en su conjunto)

Tema 8. Teoría de la normalización

38

19

8.2 Dependencias funcionales Recubrimiento canónico o minimal

(3)

0. Transformar toda df del conjunto DF en elemental, es decir: a. Completa b. Con un solo atributo en el implicado (parte derecha) c. No trivial 1. Eliminar atributos extraños REPETIR PARA CADA α → b EN DF L=α REPETIR POR CADA ATRIBUTO a DE α SI b ∈ (α - a)+DF ENTONCES L= L - a REEMPLAZAR α → b POR L → b en DF 2. Eliminar dependencias funcionales redundantes H = DF REPETIR PARA CADA α → b EN DF G = H - {α → b} SI b ∈ α+G ENTONCES H= G m 3. DF = H 39

Tema 8. Teoría de la normalización

8.2 Dependencias funcionales Recubrimiento canónico o minimal

(y 4)

• El orden de los pasos 1 y 2 no puede intercambiarse – Si se intercambian, no siempre se obtiene el recubrimiento minimal Sea R(A, DF), donde A={a, b, c} y DF={ab → c, c → b, a → b} Calcule DFm

• El recubrimiento minimal DFm no es único • Sea LIBRO(codlibro, isbn, editorial, pais), donde DF={codlibro → isbn editorial, isbn → codlibro editorial pais, editorial → pais} Calcule DFm • Sea R(a, b, c), donde DF={a → bc, b → ac, c → ab} Calcule DFm Tema 8. Teoría de la normalización

40

20

8.3 Formas normales Normalización usando dependencias funcionales • Uso de un conjunto de dependencias funcionales para diseño correcto de esquemas de relación • Definición de formas normales que representan buenos diseños • Sea R(A, DF) mal diseñado – Contiene redundancias: desperdicio de espacio y posibilidad de propiedades no deseables (anomalías de actualización, etc.)

• Será necesario descomponer R en un conjunto de n esquemas de relación { Ri (Ai,DFi) } i:1..n que cumpla las propiedades de • Conservación de la información • Conservación de las dependencias • Mínima redundancia de datos (normalización de relaciones) 41

Tema 8. Teoría de la normalización

8.3 Formas normales Normalización usando dependencias funcionales

(2)

• Sea PRESTAMO(idsuc, ciudsuc, activo, nomcli, numprest, importe), donde DF={ idsuc → activo ciudsuc, numprest → importe idsuc nomcli } La siguiente descomposición cumple las propiedades anteriores:

SUCURSAL(idsuc, activo, ciudsuc) PRESTAMO(idsuc, numprest, importe) CLIENTE(nomcli, numprest) • Las Ri son equivalentes a R, y mejores que R

– Al descomponer no se pierde información ni dependencias funcionales – Se minimiza (o elimina) la redundancia de datos

Tema 8. Teoría de la normalización

42

21

8.3 Formas normales Normalización usando dependencias funcionales

(3)

Conservación de la información • La información contenida en R(A, DF) debe ser la misma que la contenida en las Ri(Ai, DFi); para ello, debe conseguirse... – Conservación de los atributos ∪Ai = A – Conservación del contenido (tuplas o extensión) *ri = r

§ ∀ r, extensión de R, la reunión natural de extensiones ri de las Ri, ha de producir la r de origen: reconstrucción de la extensión original § Si no se conserva el contenido, aparecen tuplas falsas

• Una descomposición de reunión con pérdida puede no ser detectada para algunas extensiones – Si al reunir determinadas extensiones de las Ri no se detectan tuplas falsas

»Es necesario encontrar una forma de descomponer conservando siempre la información – Descomposición en proyecciones independientes (se verá)

43

Tema 8. Teoría de la normalización

8.3 Formas normales Normalización usando dependencias funcionales

(4)

Conservación de las dependencias funcionales • La descomposición de R en los Ri debe conservar el conjunto de dependencias funcionales DF de R, pues cada dependencia funcional es una restricción de integridad que refleja semántica del mundo real

(∪DFi )+= DF+ • El conjunto de dependencias de origen es equivalente a la unión de los conjuntos de dependencias de los esquemas resultantes • De este modo se consigue que cualquier actualización de la base de datos obtenga siempre una relación legal (cuya extensión tras la actualización cumple todas las dependencias funcionales dadas) Tema 8. Teoría de la normalización

44

22

8.3 Formas normales Normalización usando dependencias funcionales

(5)

Minimización de la redundancia • Los Ri deben estar en una forma normal superior a la de R • Así se reduce (o elimina) la redundancia – separando los datos en relaciones distintas

• y por tanto, se evitan propiedades no deseables – anomalías de actualización – incapacidad para representar cierta información, ...

• Formas normales basadas en dependencias funcionales – 1FN – 2FN – 3FN, FNBC 45

Tema 8. Teoría de la normalización

8.3 Formas normales Normalización usando dependencias funcionales

(6)

Minimización de la redundancia: Primera Forma Normal • R está en 1FN si ningún atributo toma un valor compuesto (dominio no atómico), ni multivalorado (más de un valor a la vez) – Inherente al modelo relacional de datos

LIBRO (esquema incorrecto: no está en 1FN) código 9090 8070

título Fundamentos de sistemas de bases de datos Diseño de bases de datos relacionales

LIBRO (esquema en 1FN) Redundancia

código 9090 9090 8070 8070 8070

título Fundamentos de sistemas de bases de datos Fundamentos de sistemas de bases de datos Diseño de bases de datos relacionales Diseño de bases de datos relacionales Diseño de bases de datos relacionales

Tema 8. Teoría de la normalización

Multivalorado autor | Elmasri , Navathe de Miguel , Piattini, Marcos

autor | Elmasri Navathe de Miguel Piattini Marcos

46

23

8.3 Formas normales Normalización usando dependencias funcionales

(7)

Minimización de la redundancia: Segunda Forma Normal i Un atributo principal es un atributo que forma parte de una clave

• R está en 2FN si está en 1FN y cada atributo no principal tiene dependencia funcional completa respecto de cada clave • Es decir, no existe un atributo no principal que dependa funcionalmente de parte de una clave PUBLICA (articulo, revista, número, página, editorial) DF={ articulo, revista, número → página, revista → editorial } PUBLICA no está en 2FN, ¿por qué?

47

Tema 8. Teoría de la normalización

8.3 Formas normales Normalización usando dependencias funcionales

(8)

Minimización de la redundancia: Tercera Forma Normal q

Varias definiciones equivalentes entre sí:

• R está en 3FN si todo atributo no principal sólo tiene dependencia funcional respecto de las claves • Ningún atributo no principal depende funcionalmente de otros atributos no principales – todos los atributos no principales son independientes entre sí

• No existen dependencias funcionales transitivas respecto de las claves Tema 8. Teoría de la normalización

48

24

8.3 Formas normales Normalización usando dependencias funcionales

(9)

Minimización de la redundancia: Tercera Forma Normal (y 2) Definición formal R(A, DF) está en 3FN respecto a DF si para toda dependencia funcional α→β en DF+ (α⊆A, β⊆A), se cumple al menos una de las siguientes condiciones: § α → β es una dependencia funcional trivial, es decir, β ⊆ α § α es una superclave del esquema R, es decir α + = A § Cada atributo a en β -α α es principal (está contenido en alguna clave candidata de R)

q

SOCIO (dni, ciudad, país) DF = { dni → ciudad, dni → pais, ciudad → país } La relación SOCIO no está en 3FN, ¿por qué?

49

Tema 8. Teoría de la normalización

8.3 Formas normales Normalización usando dependencias funcionales

(10)

Minimización de redundancia: Forma Normal de Boyce-Codd i Nota: un determinante es el implicante o parte izquierda de una df

• La FNBC es una definición más estricta de la 3FN • R(A,DF) está en FNBC respecto a DF si para toda dependencia funcional α → β en DF+ (α⊆A, β⊆A) , se cumple al menos una de estas condiciones: § α → β es una dependencia funcional trivial, es decir, β ⊆ α § α es una superclave del esquema R, es decir α + = A • Es decir, R está en FNBC si todo determinante contiene una clave Tema 8. Teoría de la normalización

50

25

8.3 Formas normales Normalización usando dependencias funcionales Minimización de redundancia: FN de Boyce-Codd

(11)

(2)

• La FNBC no requiere que todas las claves aparezcan como determinantes • Si R está en 3FN y sólo tiene una clave, o bien R tiene varias claves pero ninguna de ellas es compuesta, o bien R tiene varias claves compuestas pero no solapadas, entonces R está en FNBC • Es decir, si R tiene claves solapadas puede estar en FNBC o puede no estarlo (véase siguiente ejemplo)

51

Tema 8. Teoría de la normalización

8.3 Formas normales Normalización usando dependencias funcionales Minimización de redundancia: FN de Boyce-Codd

(12)

(y 3)

ARTICULO1 (codart, título, revista, número, página) DF = { codart → título, Un título nunca se repite en una misma revista titulo → codart, Un artículo puede publicarse en varias revistas codart revista número → página; Claves de ARTICULO1: título revista número → página; CK1= { revista, número, codart } página revista número → codart, título } CK2= { revista, número, título } Está en 3FN, pero no en FNBC CK3= { revista, número, página } ARTICULO2 (codart, revista, número, página) DF = { codart, revista, número → página; página, revista, número → codart } Está en 3FN, y también en FNBC Tema 8. Teoría de la normalización

Claves de ARTICULO2: CK1 = { revista, número, codart } CK2 = { revista, número, página } 52

26

8.3 Formas normales Normalización usando dependencias funcionales( y 13) • Las siguientes afirmaciones son ciertas – Todo esquema R con una clave simple (un solo atributo), está en 2FN – Si en R todos los atributos son principales, R está en 3FN – Todo esquema R con sólo 2 atributos está siempre en FNBC – Todo esquema R con 3 atributos y una sola clave compuesta por 2 atributos, está en FNBC q Intente comprobar la veracidad de estas afirmaciones!

• Lo más correcto es tener los esquemas de relación en FNBC, pero si no es posible, basta con llegar a la 3FN

– 1FN y 2FN no son buenos diseños sino “escalones” para llegar a 3FN o FNBC

• El proceso de normalización disminuye la redundancia – y por tanto el desperdicio de espacio y las propiedades no deseables

• ... pero penaliza las consultas – pues se necesitarán JOINs, cuyo coste es elevado Tema 8. Teoría de la normalización

53

8.4 Enfoques de diseño relacional Análisis o descomposición: diseño descendente • Se parte del esquema de relación universal R y de su conjunto de dependencias funcionales, DF • Se descompone R sucesivamente en proyecciones que conservan – la información – las dependencias • Los esquemas resultantes cada vez ... – tienen menos atributos (menor grado) – están en formas normales más avanzadas • Fin del proceso ... – Al llegar a la FN deseada, o – Si seguir implica la pérdida de dependencias » Separa información referente a conceptos distintos » Empleo de árboles de descomposición Tema 8. Teoría de la normalización

54

27

8.4 Enfoques de diseño relacional Síntesis relacional: diseño ascendente • Obtiene esquemas de relación a partir de – atributos – dependencias funcionales entre dichos atributos »Agrupa información referente a un mismo concepto

Comparación análisis vs. síntesis • Semejanzas – Tienen el mismo objetivo – Basadas en los conceptos de dependencias y recubrimiento minimal

• Diferencias – La síntesis sólo considera dependencias funcionales – El análisis considera, además de las dependencias funcionales, las dependencias multivaloradas y dependencias de reunión o combinación Tema 8. Teoría de la normalización

55

8.4 Enfoques de diseño relacional: Análisis • Examinar un esquema relacional R para... 1. Determinar su nivel de normalización 2. si R no está en 3FN ni en FNBC, descomponer R en proyecciones sin redundancias ni propiedades no deseables

1. Determinación del nivel de normalización de R – Cómo determinar si un esquema de relación está en 3FN

a. Encontrar todas las claves para ... b. Determinar componentes de dichas claves (atributos principales) y c. Comprobar que ningún atributo no principal, depende de otro atributo no principal

– Cómo determinar si un esquema de relación está en FNBC

a. Comprobar que todo determinante es clave -- menor coste computacional Tema 8. Teoría de la normalización

56

28

8.4 Enfoques de diseño relacional: Análisis (2) 2. Descomposición del esquema R (A, DF) – Si R no está en 3FN ni en FNBC, hemos de sustituirlo por un conjunto de proyecciones Ri (Ai, DFi) – La descomposición debe realizarse...

§ Sin pérdida de información: R = R1 *...* Rn , para toda extensión de cualquier relación r(R) § Sin pérdida de dependencias funcionales (∪ DFi)+ = DF+ – Es decir, debe realizarse una descomposición sin pérdidas: con la que se obtiene proyecciones independientes Tema 8. Teoría de la normalización

57

8.4 Enfoques de diseño relacional: Análisis (3) Descomposición en proyecciones independientes • Sea R una relación y R1, R2 dos de sus proyecciones, entonces R1 y R2 son independientes si y sólo si – Sus atributos comunes son la clave primaria de, al menos, una de las dos proyecciones – Cada dependencia funcional en R puede deducirse de las dependencias funcionales de R1 y R 2 PELICULA(titulo, año, duración, tipo, estudio, actor), DF={ titulo año → duración tipo estudio } – – – –

Redundancia: se repite todo por cada actor participante en la película Causa: transformación de un atributo multivalorado (actor) No está en FNBC porque (título, año) no es clave; la clave es (título, año, actor) Descomposición en proyecciones independientes:

R1(título, año, duración, tipo, estudio) con DF1={titulo año → duración tipo estudio} R2(titulo, año, actor), con DF2 vacío Tema 8. Teoría de la normalización

58

29

8.4 Enfoques de diseño relacional: Análisis (4) Descomposición en proyecciones independientes • Algoritmo de descomposición

Tomar α → β de DF + no trivial, donde α no es superclave Obtener dos proyecciones de R(A, DF)

R1 (α α , β , DF1) y R2 (A - β , DF2),

otros R2

α

β

R1

donde DF1 y DF2 son conjuntos de dfs sobre R1 y R2 respectivamente Si R1 (o R2) no está en FNBC, descomponerla de nuevo

Guía en el proceso de descomposición en proyecciones independientes: Utilizar las dependencias funcionales que violen la FN deseada (FNBC, 3FN) • La descomposición resultante es de reunión sin pérdidas, pero no siempre preserva las dependencias (caso FNBC) LIBRO ( A={ codlibro, editorial, país }, DF={ codlibro → editorial, editorial → país } ) Tema 8. Teoría de la normalización

59

8.4 Enfoques de diseño relacional: Análisis (5) Descomposición en proyecciones independientes • Determinación de las dependencias funcionales que cumple cada proyección resultante de una descomposición Sea R(A, DF) y sea R1(A1, DF1) una de las proyecciones de R, ¿DF1? – Considerar cada descriptor α , subconjunto de A1 – Calcular α +, respecto del conjunto de dependencias DF (#) – Para cada atributo a tal que • a es un atributo de R1 ( a ∈ A1 ) • a está contenido en α+ ( a ∈ α + ) • a no está contenido en α ( a ∉ α ) la dependencia funcional α→a se cumple en R1, es decir (α→ α→a) ∈ DF1 (#) No es necesario determinar el cierre de ... – todo el conjunto de atributos de R1 (es decir, si α = A1) – los α que no contengan la parte izquierda de alguna dependencia – los α que contengan un atributo que no sea parte izquierda de alguna dependencia Tema 8. Teoría de la normalización

60

30

8.4 Enfoques de diseño relacional: Análisis (6) Descomposición en proyecciones independientes • Las dos proyecciones independientes resultantes cumplen uno de estos principios de descomposición sin pérdidas: R1 ∩ R2 → R1 - R2 o bien R1 ∩ R2 → R2 - R1 • Siempre es posible descomponer una relación en dos proyecciones independientes para llegar a la 3FN • Esto no siempre es posible para llegar a la FNBC, pues a veces se pierde información y/o dependencias funcionales 1. PROYECTA(película, cine, ciudad), DF = { película ciudad → cine, cine → ciudad } 2. NOTA(dniProf, nomProf, dniAlu, calific) DF= { dniProf → nomProf, nomProf → dniProf, dniProf dniAlu → calific }

Tema 8. Teoría de la normalización

61

8.4 Enfoques de diseño relacional: Análisis (7) Proceso de análisis o descomposición de R(A,DF) 1. Determinar el recubrimiento minimal DFm 2. Determinar las claves de R 3. Obtener proyecciones independientes hasta que... se alcanza la FN deseada o seguir descomponiendo suponga pérdidas • Descomposición en la FNBC de R(A, DF)

1. Determinar el recubrimiento minimal DFm 2. Determinar las claves de R 3. Obtener proyecciones independientes hasta que todo determinante es una clave (se ha llegado a la FNBC) o seguir implique pérdidas R(A, DF), donde A= { a, b, c, d, e, f, g } y DFm = { b→ ac , e→d , d→f } Tema 8. Teoría de la normalización

62

31

8.4 Enfoques de diseño relacional: Análisis (8) Proceso de análisis o descomposición de R(A,DF) • Aplicar el algoritmo al siguiente esquema de relación para llevarlo a la FNBC CUENTA (idsuc, ciudsuc, activo, nomcli, codcuenta, saldo) donde DF={idsuc → activo ciudsuc, codcuenta → idsuc saldo} y CK={codcuenta,nomcli} – iteración 1 R1(idsuc, activo, ciudsuc); DF1={idsuc → activo ciudsuc}; CK1={idsuc} R2(idsuc, nomcli, codcuenta, saldo); DF2={codcuenta → idsuc saldo}; CK2={nomcli, codcuenta} – iteración 2 R1 está en FNBC, pero R2 no, así que se sustituye por R3(idsuc, codcuenta, saldo); DF3={codcuenta → saldo idsuc}; CK3={codcuenta} R4(nomcli, codcuenta); DF4= ∅; CK4={nomcli, codcuenta} – iteración 3 R3 y R4 están en FNBC • El conjunto de esquemas de relación resultante es { R1, R3, R4 }, todos en FNBC Tema 8. Teoría de la normalización

63

8.4 Enfoques de diseño relacional: Análisis (y 9) Proceso de análisis o descomposición de R(A,DF) • Aplicar el algoritmo al siguiente esquema de relación para llevarlo a la FNBC : BANQUERO_PERSONAL(idsuc, nomcli, nombanquero) donde DF={nombanquero → idsuc, idsuc nomcli → nombanquero} y las claves CKa={idsuc, nomcli} , CKb={nomcli, nombanquero} – iteración 1 R1(nombanquero, idsuc); DF1{nombanquero → idsuc}; CK1={nombanquero} R2 (nomcli, nombanquero); DF2= ∅; CK2={nomcli, nombanquero} – iteración 2 R1 y R2 están en FNBC • El conjunto de esquemas resultante es { R1, R2 }, todos en FNBC, pero... – sólo preserva nombanquero → idsuc (además de las df triviales) y – no conserva idsuc nomcli → nombanquero • La violación de esta df no se detectará, a menos que se calcule la reunión (JOIN) Tema 8. Teoría de la normalización

64

32

8.4 Enfoques de diseño relacional: Síntesis Proceso de síntesis relacional para R(A,DF) 1. Determinar el recubrimiento minimal DFm 2. Agrupar las dependencias funcionales de DFm con el mismo determinante Es decir, agrupar las α→A1 , α→A2...α→An , para cada antecedente α 3. Formar una Ri para cada grupo, con los atributos que aparecen en el grupo y las dependencias funcionales de DFm con α como antecedente Ri (α ∪ A1 ∪... ∪ An) con DFi={ α → A1, ..., α → An } 4. Si existen atributos que no aparecen en ningún determinante ni implicado, formar una Ri con ellos, sin dependencias funcionales asociadas. 5. Si ninguna Ri contiene una clave de la R original, añadir una relación con los atributos que forman tal clave de R • Obtiene las Ri en 3FN • Aplicando síntesis, siempre es posible encontrar una descomposición de reunión sin pérdida que preserve las dependencias y esté en 3FN Tema 8. Teoría de la normalización

65

8.4 Enfoques de diseño relacional: Síntesis (y 2) Proceso de síntesis relacional para R(A,DF) • Aplicar síntesis al siguiente esquema de relación para llevarlo a la 3FN BANQUERO_PERSONAL(idsuc, nomcli, nombanquero, idoficina) donde DF={nombanquero → idsuc idoficina, idsuc nomcli → nombanquero} y las claves CKa={idsuc, nomcli} , CKb={nomcli, nombanquero} – paso 1. DFm coincide con DF – pasos 2 y 3 R1(nombanquero, idsuc, idoficina); DF1{nombanquero → idsuc idoficina}; CK1={nombanquero} R2 (idsuc, nomcli, nombanquero); DF2= {idsuc nomcli → nombanquero}; CK2={idsuc, nomcli} – paso 4 Todos los atributos han sido colocados – paso 5 R2 ya contiene una clave de BANQUERO_PERSONAL , luego el proceso acaba • El conjunto de esquemas resultante es { R1, R2 }, todos están en 3FN Tema 8. Teoría de la normalización

66

33

8.5 Dependencias multivaloradas y 4FN • Es posible que todavía exista redundancia en un esquema de relación en FNBC • Una dependencia multivalorada, dmv, proviene de dos o más atributos multivalorados que son independientes entre sí – ESTUDIANTE_RESIDENTE( dni, estudios, actividad) – ACTOR(nomactor, calle, ciudad, titulopeli, añopeli)

• La única forma de expresar la independencia de los conjuntos de valores ... – estudios vs. actividades de los estudiantes – direcciones de los actores vs. películas en las que han participado

... es hacer que

– para cada actor, cada dirección aparezca con cada una de las películas, y – para cada estudiante, cada valor de estudios aparezca con cada actividad

• Las dmv son una consecuencia de la transformación de una R en la 1FN, cuando existen varios atributos multivalorados e independientes entre sí Tema 8. Teoría de la normalización

67

8.5 Dependencias multivaloradas y 4FN Definición formal de dependencia multivalorada • Sea el esquema de relación R(A, D) y dos descriptores α y β, α →→ β (α α multidetermina β ) si y sólo si, para cada par de tuplas t1 y t 2 de r(R) tales que t1[α α ] = t2[α α] es posible encontrar un par de tuplas t3 y t4 en r(R) que cumplen t1[α] = t 2[α] = t3[α] = t4[α] t3[β] = t1[β] y t4[β] = t2[β] t3[A- α - β] = t2[A- α - β] y t4[A- α - β] = t 1[A- α - β] • Para cada valor de α, existen 0 o más valores de β, independientemente de los valores del resto de atributos (A- α - β) • Que se verifique α → β sólo depende de α y de β, pero que se cumpla α →→ β depende, además, del resto de los atributos: las dmv dependen del contexto • α →→ β significa que siempre que aparezcan dos tuplas con distintos valores de β , pero el mismo en α , los valores de β deberán repetirse con cada valor distinto de A- α - β que ocurra con dicho valor de α • Ejemplo: nombreactor →→ calle, ciudad Tema 8. Teoría de la normalización

68

34

8.5 Dependencias multivaloradas y 4FN Reglas de inferencia para dmvs • Regla de dependencias triviales

Si R cumple α →→ β entonces cumple § α→→γ , donde γ ⊆ β pues se han quitado componentes de β que también estaban en α

§ α→→δ , donde β ⊆ δ pues se han añadido componentes a β que también estaban en α, siempre que δ - β ⊆ α

• Regla de aumento

Si R cumple α →→ β y γ ⊆ δ, entonces cumple αδ →→ βγ • Regla de transitividad para dmv

Si R cumple α →→ β y β →→ γ, entonces cumple α →→ γ-β • Regla de replicación

Si R cumple α → β, entonces cumple α →→ β 69

Tema 8. Teoría de la normalización

8.5 Dependencias multivaloradas y 4FN Reglas de inferencia para dmvs

(y 2).

Dmv trivial

• Regla de complemento

Si R cumple α →→ β, también cumple α →→ A-α-β • Regla de combinación para dmv y df

Si R cumple que α →→ β y ∃ δ/ δ∩β=∅, δ → γ y γ⊆β, entonces α→γ • Dependencia multivalorada trivial Sean α = {a1, a2... an}, β = {b1, b2 ... bm} descriptores de R(A, D),

α →→ β es una dmv trivial si y sólo si cumple § los bi están entre los ai (es decir β⊆α), o bien § todos los atributos de R están entre los ai y bi (es decir α∪β=A) • Ejemplo de dmv no trivial nombreactor →→ calle, ciudad Tema 8. Teoría de la normalización

70

35

8.5 Dependencias multivaloradas y 4FN Cuarta forma normal • Es una generalización de la FNBC, que elimina las dmv no triviales • R(A, D) está en 4FN si para toda dmv no trivial α →→ β , se cumple que α es una superclave de R

Descomposición en la 4FN •Si R no está en 4FN, por contener una dmv α→→β, donde α no contiene una clave de R, se debe dividir R en dos esquemas: –R1, con todos los atributos de α y los de β –R2, con todos los atributos de α y el resto de atributos A-α-β N Asignar adecuadamente a cada Ri las dependencias funcionales y multivaloradas

»Cumple los principios de descomposición sin pérdidas puesto que α→→β y α→→A-α-β R1(nombreactor, calle, ciudad) R2(nombreactor, titulopeli, añopeli)

Tema 8. Teoría de la normalización

71

36

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.