36
1 Tema 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 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. 2 Tema 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 8. Teoría de la Normalización

8. Teoría de la Normalización - Adimen Homeadimen.si.ehu.es/~rigau/teaching/EHU/ABD/Altres cursos/mjortin/bd... · Teoría de la normalización 4 •Objetivo principal del desarrollo

Embed Size (px)

Citation preview

1

1Tema 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 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.

2Tema 8. Teoría de la normalización

Contenidos

8.1. Motivación1. Dificultades en el diseño de esquemas relacionales2. Obtención de esquemas relacionales de calidad

8.2. Dependencias funcionales8.3. Las tres primeras formas normales y la forma normal de

Boyce/Codd8.4. Enfoques de diseño relacional: Análisis y Síntesis8.5. Dependencias multivaloradas y cuarta forma normal

8. Teoría de la Normalización

2

3Tema 8. Teoría de la normalización

Bibliografía

[EN 2002] 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)

[CBS 1998] Connolly; Begg; Strachan: Database Systems: A Practical Approach to Design, Implementation and Management. 2nd Ed. Add.-Wesl. (Cap. 6)

[D 2001] Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición. Prentice-Hall. (Cap. 10 al 12)

8. Teoría de la Normalización

4Tema 8. Teoría de la normalización

• 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

8.1 MotivaciónDiseño en el modelo relacional de datos

3

5Tema 8. Teoría de la normalización

• 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?

¶ 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

¿intuición?

8.1 MotivaciónDiseño en el modelo relacional de datos (2)

6Tema 8. Teoría de la normalización

• 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) ydel significado de sus atributos

☺Si 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

8.1 MotivaciónDiseño en el modelo relacional de datos (y 3)

4

7Tema 8. Teoría de la normalización

• 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

8.1 MotivaciónDificultades en el diseño de esquemas relacionales

8Tema 8. Teoría de la normalización

Ejemplo 1: información sobre pedidos (y productos y clientes) almacenada en una única relación

PEDIDOnPed codProd descProd precProd uds cifCli nomCli ciudCli distanc12 P1 silla 100 12 A12345678 Forte Madrid 40009 P1 silla 100 30 V22332233 Calero Valencia 20022 P1 silla 100 15 N43344334 Carazo Alicante 8015 P2 mesa 250 35 A12345678 Forte Madrid 40024 P2 mesa 250 20 V22332233 Calero Valencia 20005 P2 mesa 250 20 K11112222 Mitra Madrid 40011 P3 sillón 175 10 N43344334 Carazo Alicante 80...

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (2)

5

9Tema 8. Teoría de la normalización

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?

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (3)

10Tema 8. Teoría de la normalización

Ejemplo 2: información sobre préstamos (y sucursales) almacenada en una única relación

PRÉSTAMOidSuc ciudSuc activo nomCli numPrest importeCentro Arganzuela 10.818.215 Santos P-17 1.202Moralzarzal La Granja 2.524.250 Gómez P-23 2.404Navacerrada Aluche 2.043.440 López P-15 1.803Centro Arganzuela 10.818.215 Soto P-14 1.803Becerril Aluche 480.810 Santos P-93 601Collado Aluche 9.616.194 Abril P-11 1.082Navas Alcalá de H. 360.607 Valdivieso P-29 1.442Segovia Cerceda 4.447.490 López P-16 1.570Centro Arganzuela 10.818.215 González P-63 2.404Navacerrada Aluche 2.043.440 Rodríguez P-25 3.005Galapagar Arganzuela 8.534.375 Amol P-10 2.645

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (4)

6

11Tema 8. Teoría de la normalización

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?

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (5)

12Tema 8. Teoría de la normalización

• 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 )

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (6)

7

13Tema 8. Teoría de la normalización

SUCURSAL_CLIENTE

idSuc ciudSuc activo nomCliCentro Arganzuela 10.818.215 SantosMoralzarzal La Granja 2.524.250 GómezNavacerrada Aluche 2.043.440 LópezCentro Arganzuela 10.818.215 SotoBecerril Aluche 480.810 SantosCollado Aluche 9.616.194 AbrilNavas Alcalá de H. 360.607 ValdiviesoSegovia Cerceda 4.447.490 LópezCentro Arganzuela 10.818.215 GonzálezNavacerrada Aluche 2.043.440 RodríguezGalapagar Arganzuela 8.534.375 Amol

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (7)

14Tema 8. Teoría de la normalización

PRESTAMO_CLIENTE

nomCli numPrest importeSantos P-17 1.202Gómez P-23 2.404López P-15 1.803Soto P-14 1.803Santos P-93 601Abril P-11 1.082Valdivieso P-29 1.442López P-16 1.570González P-63 2.404Rodríguez P-25 3.005Amol P-10 2.645

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (8)

8

15Tema 8. Teoría de la normalización

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 PCWHERE 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...) )

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (9)

16Tema 8. Teoría de la normalización

SUCURSAL_CLIENTE * PRESTAMO_CLIENTEidSuc ciudSuc activo nomCli numPrest importeCentro Arganzuela 10.818.215 Santos P-17 1.202Centro Arganzuela 10.818.215 Santos P-93 601Moralzarzal La Granja 2.524.250 Gómez P-23 2.404Navacerrada Aluche 2.043.440 López P-15 1.803Navacerrada Aluche 2.043.440 López P-16 1.570Centro Arganzuela 10.818.215 Soto P-14 1.803Becerril Aluche 480.810 Santos P-17 1.202Becerril Aluche 480.810 Santos P-93 601Collado Aluche 9.616.194 Abril P-11 1.082Navas Alcalá de H. 360.607 Valdivieso P-29 1.442Segovia Cerceda 4.447.490 López P-15 1.803Segovia Cerceda 4.447.490 López P-16 1.570Centro Arganzuela 10.818.215 González P-63 2.404Navacerrada Aluche 2.043.440 Rodríguez P-25 3.005Galapagar Arganzuela 8.534.375 Amol P-10 2.645

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (10)

9

17Tema 8. Teoría de la normalización

• 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

8.1 MotivaciónDificultades en el diseño de esquemas relacionales (y 11)

18Tema 8. Teoría de la normalización

• 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

8.1 MotivaciónObtención de esquemas relacionales de calidad

10

19Tema 8. Teoría de la normalizació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).

8.1 MotivaciónObtención de esquemas relacionales de calidad (2)

Pautas de diseño de esquemas de relación

20Tema 8. Teoría de la normalizació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 delas 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.

8.1 MotivaciónObtención de esquemas relacionales de calidad (3)

Pautas de diseño de esquemas de relación

11

21Tema 8. Teoría de la normalizació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)

8.1 MotivaciónObtención de esquemas relacionales de calidad (y 4)

Normalización de esquemas de relación

22Tema 8. Teoría de la normalización

Sea R un esquema de relación, cuyos atributos son a1, a2, ...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

8.2 Dependencias funcionales

12

23Tema 8. Teoría de la normalización

• Sea R un esquema de relación, cuyo conjunto de atributos es A, ysean 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 t1y 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

8.2 Dependencias funcionalesDefinición formal

24Tema 8. Teoría de la normalización

• 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 delcontenido (extensión)

– A partir de la observación de una extensión concreta de una relación rcon 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)

8.2 Dependencias funcionales

13

25Tema 8. Teoría de la normalización

• 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

8.2 Dependencias funcionalesReglas de inferencia

26Tema 8. Teoría de la normalización

Sean los descriptores α, β, γ, δ, todos subconjuntos de A• Regla de reflexividad

Si β ⊆ α entonces α → β

• Regla de aditividad (de aumentatividad)Si α → β entonces αγ → βγ

• Regla de transitividadSi α → β y β → γ entonces α → γ

–Conjunto de 3 reglas de inferencia completo y correcto... –... pero tedioso de utilizar

8.2 Dependencias funcionalesAxiomas de Armstrong

dependencia funcional

trivial

14

27Tema 8. Teoría de la normalización

... deducibles a partir de los Axiomas de Armstrong

• Regla de pseudotransitividadSi α → β y γβ → δ entonces αγ → δ

• Regla de unión (aditiva)Si α → β y α → γ entonces α → βγ

• Regla de descomposición (de proyectividad)Si α → βγ entonces α → β y α → γ

8.2 Dependencias funcionalesOtras reglas de inferencia

N sólo para laparte derecha

de una df!!

28Tema 8. Teoría de la normalización

• 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 inferiblea partir de las dfs contenidas en DF

• El cálculo de DF+ suele tener un coste computacional excesivo...

8.2 Dependencias funcionalesCierre de un conjunto de dependencias funcionales

15

29Tema 8. Teoría de la normalización

... 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 determinarlos 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

8.2 Dependencias funcionalesCierre de un conjunto de dependenc. funcionales (2)

30Tema 8. Teoría de la normalización

α+ = αREPETIR HASTA QUE α+ NO CAMBIE

PARA CADA β → δ EN DFSI β ⊆ α+ 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

8.2 Dependencias funcionales

Cálculo del cierre de un descriptor αα+DF

Cierre de un conjunto de dependenc. funcionales (3)

16

31Tema 8. Teoría de la normalización

• 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

8.2 Dependencias funcionales

Comprobación del cumplimiento de una df en DF

Cierre de un conjunto de dependenc. funcionales (y 4)

32Tema 8. Teoría de la normalizació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 élSea 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

8.2 Dependencias funcionalesDeterminación de claves de un esquema de relación

17

33Tema 8. Teoría de la normalización

• Algoritmo para determinar si αα es clave candidata de R(A, DF)1. CALCULAR α+

DF2. 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 claveSI 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}

8.2 Dependencias funcionalesDeterminación de si un descriptor es clave

34Tema 8. Teoría de la normalización

• Sean DF1 y DF2 conjuntos de dependencias funcionales para Rse 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 DF1)

DF1 y DF2 son equivalentes si DF1 recubre a DF2 y DF2 recubre a DF1

que es lo mismo que decir...

DF1 y DF2 son equivalentes si DF1+ = DF2

+

8.2 Dependencias funcionalesEquivalencia de dos conjuntos de dependencias funcionales

18

35Tema 8. Teoría de la normalización

• 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 DF2={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

8.2 Dependencias funcionalesEquivalencia de dos conjuntos de dependencias funcionales (2)

36Tema 8. Teoría de la normalización

• 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 DF1 recubre a DF2 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

8.2 Dependencias funcionalesEquivalencia de dos conjuntos de dependencias funcionales (y 3)

19

37Tema 8. Teoría de la normalización

• Conjunto de dependencias funcionales simplificado, DFm

– 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

8.2 Dependencias funcionalesRecubrimiento canónico o minimal

38Tema 8. Teoría de la normalización

• 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)

8.2 Dependencias funcionalesRecubrimiento canónico o minimal (2)

20

39Tema 8. Teoría de la normalización

0. Transformar toda df del conjunto DF en elemental, es decir:a. Completab. Con un solo atributo en el implicado (parte derecha)c. No trivial

1. Eliminar atributos extrañosREPETIR 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 DF2. Eliminar dependencias funcionales redundantes

H = DFREPETIR PARA CADA α → b EN DF

G = H - {α → b} SI b ∈ α+

G ENTONCES H= G3. DFm = H

8.2 Dependencias funcionalesRecubrimiento canónico o minimal (3)

40Tema 8. Teoría de la normalización

• 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

8.2 Dependencias funcionalesRecubrimiento canónico o minimal (y 4)

21

41Tema 8. Teoría de la normalización

• 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 esquemasde relación

{ Ri (Ai,DFi) } i:1..nque cumpla las propiedades de

• Conservación de la información• Conservación de las dependencias• Mínima redundancia de datos (normalización de relaciones)

8.3 Formas normalesNormalización usando dependencias funcionales

42Tema 8. Teoría de la normalización

• 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

8.3 Formas normalesNormalización usando dependencias funcionales (2)

22

43Tema 8. Teoría de la normalizació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á)

8.3 Formas normalesNormalización usando dependencias funcionales (3)

Conservación de la información

44Tema 8. Teoría de la normalización

• 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 integridadque 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)

8.3 Formas normalesNormalización usando dependencias funcionales (4)

Conservación de las dependencias funcionales

23

45Tema 8. Teoría de la normalización

• 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

8.3 Formas normalesNormalización usando dependencias funcionales (5)

Minimización de la redundancia

46Tema 8. Teoría de la normalización

• 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 título autor |9090 Fundamentos de sistemas de bases de datos Elmasri , Navathe8070 Diseño de bases de datos relacionales de Miguel , Piattini, Marcos

8.3 Formas normalesNormalización usando dependencias funcionales (6)

Minimización de la redundancia: Primera Forma Normal

Multivalorado

LIBRO (esquema en 1FN)código título autor |9090 Fundamentos de sistemas de bases de datos Elmasri9090 Fundamentos de sistemas de bases de datos Navathe8070 Diseño de bases de datos relacionales de Miguel8070 Diseño de bases de datos relacionales Piattini8070 Diseño de bases de datos relacionales Marcos

Redundancia

24

47Tema 8. Teoría de la normalización

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é?

8.3 Formas normalesNormalización usando dependencias funcionales (7)

Minimización de la redundancia: Segunda Forma Normal

48Tema 8. Teoría de la normalización

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 otrosatributos no principales

– todos los atributos no principales son independientes entre sí

• No existen dependencias funcionales transitivas respecto de las claves

8.3 Formas normalesNormalización usando dependencias funcionales (8)

Minimización de la redundancia: Tercera Forma Normal

25

49Tema 8. Teoría de la normalización

q Definición formalR(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)

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

8.3 Formas normalesNormalización usando dependencias funcionales (9)

Minimización de la redundancia: Tercera Forma Normal (y 2)

50Tema 8. Teoría de la normalización

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

8.3 Formas normalesNormalización usando dependencias funcionales (10)

Minimización de redundancia: Forma Normal de Boyce-Codd

26

51Tema 8. Teoría de la normalización

• La FNBC no requiere que todas las claves aparezcan como determinantes

• Si R está en 3FN y sólo tiene una clave, o bienR tiene varias claves pero ninguna de ellas es compuesta, o bienR 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)

8.3 Formas normalesNormalización usando dependencias funcionales (11)

Minimización de redundancia: FN de Boyce-Codd (2)

52Tema 8. Teoría de la normalización

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 revistascodart revista número → página;título revista número → página; página revista número → codart, título }

Está en 3FN, pero no en FNBC

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

8.3 Formas normalesNormalización usando dependencias funcionales (12)

Minimización de redundancia: FN de Boyce-Codd (y 3)

Claves de ARTICULO1:CK1= { revista, número, codart } CK2= { revista, número, título } CK3= { revista, número, página }

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

27

53Tema 8. Teoría de la normalización

• 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 FNBCqIntente 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

8.3 Formas normalesNormalización usando dependencias funcionales( y 13)

54Tema 8. Teoría de la normalización

• 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

8.4 Enfoques de diseño relacionalAnálisis o descomposición: diseño descendente

28

55Tema 8. Teoría de la normalización

• Obtiene esquemas de relación a partir de–atributos–dependencias funcionales entre dichos atributos

»Agrupa información referente a un mismo concepto

8.4 Enfoques de diseño relacionalSíntesis relacional: diseño ascendente

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

56Tema 8. Teoría de la normalización

• Examinar un esquema relacional R para... 1. Determinar su nivel de normalización2. 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 3FNa. 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

8.4 Enfoques de diseño relacional: Análisis

29

57Tema 8. Teoría de la normalización

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

8.4 Enfoques de diseño relacional: Análisis (2)

58Tema 8. Teoría de la normalización

• Sea R una relación y R1, R2 dos de sus proyecciones, entoncesR1 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 R2

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

8.4 Enfoques de diseño relacional: Análisis (3)

Descomposición en proyecciones independientes

30

59Tema 8. Teoría de la normalización

• Algoritmo de descomposiciónTomar α → β de DF+ no trivial, donde α no es superclaveObtener dos proyecciones de R(A, DF)

R1 (αα , ββ, DF1) y R2 (A - ββ, DF2),donde DF1 y DF2 son conjuntos de dfs sobre R1 y R2 respectivamente

Si R1 (o R2) no está en FNBC, descomponerla de nuevo

• 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 } )

otros αα ββR2 R1

8.4 Enfoques de diseño relacional: Análisis (4)

Descomposición en proyecciones independientes

Guía en el proceso de descomposiciónen proyecciones independientes:Utilizar las dependencias funcionalesque violen la FN deseada (FNBC, 3FN)

60Tema 8. Teoría de la normalización

• 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

8.4 Enfoques de diseño relacional: Análisis (5)

Descomposición en proyecciones independientes

31

61Tema 8. Teoría de la normalización

• Las dos proyecciones independientes resultantes cumplen uno de estos principios de descomposición sin pérdidas:

R1 ∩ R2 → R1 - R2 o bienR1 ∩ 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 }

8.4 Enfoques de diseño relacional: Análisis (6)

Descomposición en proyecciones independientes

62Tema 8. Teoría de la normalización

1. Determinar el recubrimiento minimal DFm

2. Determinar las claves de R3. Obtener proyecciones independientes hasta que...

se alcanza la FN deseada oseguir descomponiendo suponga pérdidas

• Descomposición en la FNBC de R(A, DF)

1. Determinar el recubrimiento minimal DFm

2. Determinar las claves de R3. 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 }

8.4 Enfoques de diseño relacional: Análisis (7)

Proceso de análisis o descomposición de R(A,DF)

32

63Tema 8. Teoría de la normalización

• Aplicar el algoritmo al siguiente esquema de relación para llevarlo a la FNBCCUENTA (idsuc, ciudsuc, activo, nomcli, codcuenta, saldo)donde DF={idsuc → activo ciudsuc, codcuenta → idsuc saldo}y CK={codcuenta,nomcli}

– iteración 1R1(idsuc, activo, ciudsuc); DF1={idsuc → activo ciudsuc}; CK1={idsuc}R2(idsuc, nomcli, codcuenta, saldo); DF2={codcuenta → idsuc saldo}; CK2={nomcli, codcuenta}

– iteración 2R1 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 3R3 y R4 están en FNBC

• El conjunto de esquemas de relación resultante es { R1, R3, R4 }, todos en FNBC

8.4 Enfoques de diseño relacional: Análisis (8)

Proceso de análisis o descomposición de R(A,DF)

64Tema 8. Teoría de la normalización

• 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 1R1(nombanquero, idsuc); DF1{nombanquero → idsuc}; CK1={nombanquero}R2 (nomcli, nombanquero); DF2= ∅; CK2={nomcli, nombanquero}

– iteración 2R1 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)

8.4 Enfoques de diseño relacional: Análisis (y 9)

Proceso de análisis o descomposición de R(A,DF)

33

65Tema 8. Teoría de la normalización

1. Determinar el recubrimiento minimal DFm

2. Agrupar las dependencias funcionales de DFm con el mismo determinanteEs 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 antecedenteRi (α ∪ 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

8.4 Enfoques de diseño relacional: SíntesisProceso de síntesis relacional para R(A,DF)

66Tema 8. Teoría de la normalización

• Aplicar síntesis al siguiente esquema de relación para llevarlo a la 3FNBANQUERO_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 3R1(nombanquero, idsuc, idoficina); DF1{nombanquero → idsuc idoficina}; CK1={nombanquero}R2 (idsuc, nomcli, nombanquero); DF2= {idsuc nomcli → nombanquero}; CK2={idsuc, nomcli}

– paso 4Todos los atributos han sido colocados

– paso 5R2 ya contiene una clave de BANQUERO_PERSONAL , luego el proceso acaba

• El conjunto de esquemas resultante es { R1, R2 }, todos están en 3FN

8.4 Enfoques de diseño relacional: Síntesis (y 2)

Proceso de síntesis relacional para R(A,DF)

34

67Tema 8. Teoría de la normalización

• 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í

8.5 Dependencias multivaloradas y 4FN

68Tema 8. Teoría de la normalización

• 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 t2 de r(R) tales que t1[αα ] = t2[αα]es posible encontrar un par de tuplas t3 y t4 en r(R) que cumplen�t1[α] = t2[α] = t3[α] = t4[α]�t3[β] = t1[β] y t4[β] = t2[β]�t3[A- α - β] = t2[A- α - β] y t4[A- α - β] = t1[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

8.5 Dependencias multivaloradas y 4FNDefinición formal de dependencia multivalorada

35

69Tema 8. Teoría de la normalización

• 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 α →→ β

8.5 Dependencias multivaloradas y 4FNReglas de inferencia para dmvs

70Tema 8. Teoría de la normalización

• 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

8.5 Dependencias multivaloradas y 4FNReglas de inferencia para dmvs (y 2). Dmv trivial

36

71Tema 8. Teoría de la normalización

• 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

8.5 Dependencias multivaloradas y 4FNCuarta forma normal

•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)

Descomposición en la 4FN