Teoria de La Normalizacion

download Teoria de La Normalizacion

of 36

description

Teoria de La Normalizacion

Transcript of Teoria de La Normalizacion

  • 11Tema 8. Teora de la normalizacin

    8. Teora de la Normalizacin

    Objetivos Apreciar la importancia y utilidad de emplear la teora de la

    normalizacin en la etapa de diseo lgico de bases de datos relacionales, para detectar y corregir esquemas relacionales diseados 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 algortmicos de la teora de la normalizacin que permiten determinar las claves de, o normalizar, una relacin.

    2Tema 8. Teora de la normalizacin

    Contenidos

    8.1. Motivacin1. Dificultades en el diseo de esquemas relacionales2. Obtencin 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 diseo relacional: Anlisis y Sntesis8.5. Dependencias multivaloradas y cuarta forma normal

    8. Teora de la Normalizacin

  • 23Tema 8. Teora de la normalizacin

    Bibliografa

    [EN 2002] Elmasri, R.; Navathe , S.B.: Fundamentos de Sistemas de Bases de Datos . 3 Edicin. 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. Diseo 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 Edicin. 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.: Introduccin a los sistemas de bases de datos. 7 Edicin. Prentice-Hall. (Cap. 10 al 12)

    8. Teora de la Normalizacin

    4Tema 8. Teora de la normalizacin

    Objetivo principal del desarrollo de un esquema de bases de datos relacional:

    Crear una representacin precisa y adecuada de los datos, sus relaciones y sus restricciones

    Definicin de normalizacin (E.F. Codd, 1972):

    Tcnica para producir un conjunto de relaciones(tablas) con propiedades deseables, dados los

    requisitos de datos de una organizacin

    8.1 MotivacinDiseo en el modelo relacional de datos

  • 35Tema 8. Teora de la normalizacin

    Recordemos que... esquema de relacin = { atributos } esquema de BD relacional= { esquemas de relacin }

    Cmo obtener un esquema de BDR? Segn el sentido comn del diseador de BD, o Mediante transformacin del esquema conceptual (diagrama MERE)

    Pero, cmo saber si mi esquema es ... mejor que el tuyo?... ms apropiado?... de mayor calidad?

    Necesitamos pautas o teoras que ayuden al diseador a identificar el agrupamiento ptimo de los atributos para cada relacin en el esquema

    intuicin?

    8.1 MotivacinDiseo en el modelo relacional de datos (2)

    6Tema 8. Teora de la normalizacin

    Se puede evaluar la idoneidad de esquemas de relacin en...Nivel lgico interpretacin

    de cada esquema de relacin (base o vista) ydel significado de sus atributos

    JSi el esquema de relacin es bueno, el usuario comprende su significado realizar consultas correctas

    Nivel de almacenamiento cmo se almacenan y actualizan las tuplas de cada relacin base

    8.1 MotivacinDiseo en el modelo relacional de datos (y 3)

  • 47Tema 8. Teora de la normalizacin

    Propiedades no deseables que puede tener un esquema de relacin diseado de forma incorrecta

    Repeticin de informacin

    Anomalas de actualizacin de la base de datos

    Incapacidad para representar cierta informacin

    Prdida de informacin

    8.1 MotivacinDificultades en el diseo de esquemas relacionales

    8Tema 8. Teora de la normalizacin

    Ejemplo 1: informacin sobre pedidos (y productos y clientes) almacenada en una nica relacin

    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 silln 175 10 N43344334 Carazo Alicante 80...

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (2)

  • 59Tema 8. Teora de la normalizacin

    Ejemplo 1 (continuacin)PEDIDO ( nPed, codProd, descProd, precProd, uds, cifCli, nomCli, ciudCli, distanc )

    Existe repeticin de informacin? Hay anomalas de actualizacin?

    Qu ocurre si aadimos 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 relacin PEDIDO?

    Existe incapacidad para representar informacin? Cmo representar (almacenar) un cliente que no haya realizado ningn pedido? Y un producto que todava no haya sido pedido por un cliente?

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (3)

    10Tema 8. Teora de la normalizacin

    Ejemplo 2: informacin sobre prstamos (y sucursales) almacenada en una nica relacin

    PRSTAMOidSuc ciudSuc activo nomCli numPrest importeCentro Arganzuela 10.818.215 Santos P-17 1.202Moralzarzal La Granja 2.524.250 Gmez P-23 2.404Navacerrada Aluche 2.043.440 Lpez 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 Lpez P-16 1.570Centro Arganzuela 10.818.215 Gonzlez P-63 2.404Navacerrada Aluche 2.043.440 Rodrguez P-25 3.005Galapagar Arganzuela 8.534.375 Amol P-10 2.645

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (4)

  • 611Tema 8. Teora de la normalizacin

    Ejemplo 2 (continuacin)PRESTAMO ( idSuc, ciudSuc, activo, nomCli, numPrest, importe )

    Existe repeticin de informacin?

    Hay anomalas de actualizacin? Qu pasa si aadimos otro prstamo, P-31, por 1.803, para el cliente Rodrguez, 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 prstamos de una sucursal se hayan pagado?

    Existe incapacidad para representar informacin? Cmo almacenar una sucursal que no haya concedido todava ningn prstamo?

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (5)

    12Tema 8. Teora de la normalizacin

    La solucin es descomponer el esquema en varias relaciones

    Ejemplo 2: PRESTAMO ( idSuc, ciudSuc, activo, nomCli, numPrest, importe)

    Descomposicin en dos esquemas (son proyecciones de PRESTAMO)

    SUCURSAL_CLIENTE ( idSuc, ciudSuc, activo, nomCli )

    PRESTAMO_CLIENTE ( nomCli, numPrest, importe )

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (6)

  • 713Tema 8. Teora de la normalizacin

    SUCURSAL_CLIENTE

    idSuc ciudSuc activo nomCliCentro Arganzuela 10.818.215 SantosMoralzarzal La Granja 2.524.250 GmezNavacerrada Aluche 2.043.440 LpezCentro Arganzuela 10.818.215 SotoBecerril Aluche 480.810 SantosCollado Aluche 9.616.194 AbrilNavas Alcal de H. 360.607 ValdiviesoSegovia Cerceda 4.447.490 LpezCentro Arganzuela 10.818.215 GonzlezNavacerrada Aluche 2.043.440 RodrguezGalapagar Arganzuela 8.534.375 Amol

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (7)

    14Tema 8. Teora de la normalizacin

    PRESTAMO_CLIENTE

    nomCli numPrest importeSantos P-17 1.202Gmez P-23 2.404Lpez P-15 1.803Soto P-14 1.803Santos P-93 601Abril P-11 1.082Valdivieso P-29 1.442Lpez P-16 1.570Gonzlez P-63 2.404Rodrguez P-25 3.005Amol P-10 2.645

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (8)

  • 815Tema 8. Teora de la normalizacin

    Consulta: obtener las sucursales con prstamos con importe < 1.202 Es necesario reconstruir la relacin PRESTAMO: JOIN entre SUCURSAL_CLIENTE y PRESTAMO_CLIENTE, va el atributo nomCli

    SELECT idSuc FROM Sucursal_Cliente SC, Prstamo_Cliente PCWHERE SC.nomCli=PC.nomCli AND importe < 1202;

    equivalente a esta otra sentencia:SELECT idSuc FROM Sucursal_Cliente NATURAL JOIN Prstamo_Cliente WHERE importe < 1202;

    Resultado obtenido: tres tuplas ( (Centro...), (Becerril...), (Collado...)) Pero el resultado correcto es: ( (Becerril...), (Collado...) )

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (9)

    16Tema 8. Teora de la normalizacin

    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 Gmez P-23 2.404Navacerrada Aluche 2.043.440 Lpez P-15 1.803Navacerrada Aluche 2.043.440 Lpez 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 Lpez P-15 1.803Segovia Cerceda 4.447.490 Lpez P-16 1.570Centro Arganzuela 10.818.215 Gonzlez P-63 2.404Navacerrada Aluche 2.043.440 Rodrguez P-25 3.005Galapagar Arganzuela 8.534.375 Amol P-10 2.645

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (10)

  • 917Tema 8. Teora de la normalizacin

    Hay ms tuplas en SUCURSAL_CLIENTE * PRESTAMO_CLIENTE que en PRESTAMO, pero existe menos informacin:

    descomposicin de reunin con prdida

    Cul es la causa de esta prdida de informacin?

    Es la siguiente descomposicin de reunin sin prdida?SUCURSAL( idSuc, ciudSuc, activo )INFO_PRESTAMO ( idSuc, nomCli, numPrest, importe )

    L Una descomposicin descuidada puede conducir a otro diseo incorrecto, debido a la prdida de informacin

    8.1 MotivacinDificultades en el diseo de esquemas relacionales (y 11)

    18Tema 8. Teora de la normalizacin

    Para crear buenos esquemas de relacin, o para medir su calidad...Seguir pautas informales de diseoEmplear una tcnica formal: normalizacin

    Se minimizar la aparicin de las propiedades no deseables

    8.1 MotivacinObtencin de esquemas relacionales de calidad

  • 10

    19Tema 8. Teora de la normalizacin

    Semntica de los atributos de un esquema de relacin

    PAUTA 1: Disear esquemas de relacin con significado fcil de entender. Evitar combinar atributos de mltiples tipos de entidad e interrelacin en una relacin. Si una relacin proviene de un nico tipo de entidad o interrelacin suele tener un significado claro; en caso contrario suele ser una mezcla ambigua.

    Reduccin de valores redundantes en las tuplas minimizar espacio de almacenamiento ocupado por las relaciones base evitar anomalas de actualizacin

    PAUTA 2: Disear esquemas de relaciones base sin anomalas de actualizacin. Si para incrementar la eficiencia, se permite la posibilidad de anomalas, indicarlas claramente para su tratamiento correcto por parte de las aplicaciones con acceso a los datos (aunque, normalmente, se crearn vistas para las consultas ms frecuentes).

    8.1 MotivacinObtencin de esquemas relacionales de calidad (2)Pautas de diseo de esquemas de relacin

    20Tema 8. Teora de la normalizacin

    Reduccin de nulos en las tuplas NULL tiene mltiples significados, lo que dificulta...

    El entendimiento de la semntica de los atributos y La especificacin 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 slo a casos excepcionales y no a la mayora delas tuplas.

    Evitar la prdida de informacin: tuplas falsas (espurias) Esta pauta puede expresada de manera ms formal

    (Propiedad de Reunin sin Prdida --se ver)

    PAUTA 4: Disear 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 MotivacinObtencin de esquemas relacionales de calidad (3)Pautas de diseo de esquemas de relacin

  • 11

    21Tema 8. Teora de la normalizacin

    Proceso de normalizacin Mtodo 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 relacin 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 especfica, para evitar propiedades no deseables

    Formas normales Basadas en dependencias funcionales entre los atributos de una relacin: 1FN, 2FN, 3FN FNBC (R. Boyce y Codd, 1974) definicin ms fuerte de la 3FN

    4FN, 5FN (Fagin, 1977, 1979)

    8.1 MotivacinObtencin de esquemas relacionales de calidad (y 4)Normalizacin de esquemas de relacin

    22Tema 8. Teora de la normalizacin

    Sea R un esquema de relacin, cuyos atributos son a1, a2, ...an En general, una dependencia funcional a b es una...

    Restriccin entre dos conjuntos de atributos (descriptores) a y bPropiedad inherente al contenido semntico de los datos, que

    se debe cumplir para cualquier extensin de una relacin r con esquema de relacin R

    Una dependencia funcional... Describe un esquema de relacin R, mediante la especificacin de

    restricciones (sobre atributos) que deben cumplirse siempre Es definida por alguien que conoce (bien) la semntica de los atributos del

    esquema de relacin R

    El concepto de dependencia funcional es esencial para el diseo de esquemas de base de datos sin redundancia

    8.2 Dependencias funcionales

  • 12

    23Tema 8. Teora de la normalizacin

    Sea R un esquema de relacin, cuyo conjunto de atributos es A, ysean los descriptores a y b, donde a A, b A, se dice que

    aa bbsi "" t1, t2 r(R) y t1[aa]=t2[aa]

    entonces t1[bb]=t2[bb]

    Es decir, bb depende funcionalmente de aa si para cualesquiera dos tuplas t1y t2 (de la extensin de una relacin r(R) cualquiera) que tengan los mismos valores en los atributos que forman a, tambin tienen los mismos valores para los atributos que forman b

    Tambin se dice que a determina funcionalmente a b Que a b no significa que dado a pueda deducirse el valor de b Si a b , no sabemos nada acerca de si b a o no

    8.2 Dependencias funcionalesDefinicin formal

    24Tema 8. Teora de la normalizacin

    Son propiedades de la semntica de los atributos Una dependencia funcional (en adelante, df) no puede ser demostrada,

    pero s afirmada por observacin de la realidad

    Son propiedades del esquema de relacin (intensin) y no delcontenido (extensin)

    A partir de la observacin de una extensin concreta de una relacin rcon esquema R, r(R), slo se puede deducir que no existe (no se cumple) cierta dependencia funcional

    Extensiones permitidas (vlidas) y no permitidas Si cierta df es cierta para un esquema de relacin R, entonces cualquier

    extensin de una relacin r(R) que no cumple dicha df, ser una extensin no permitida (no vlida)

    8.2 Dependencias funcionales

  • 13

    25Tema 8. Teora de la normalizacin

    Dado un conjunto de dependencias funcionales DF que R satisface, podemos deducir que R cumple otras dfs

    Sern dfs implicadas lgicamente por DF No es necesario conocer la extensin de ninguna relacin r(R)

    Sea R(A, DF) donde A={a, b, c} y DF={a b, b c}, entonces la df a c tambin se satisface en R

    Normalmente, en DF slo se especifican las dfs obvias para un esquema de relacin R: las determinadas sin dificultad a partir de la semntica 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 diseo de buenos esquemas de relacin

    8.2 Dependencias funcionalesReglas de inferencia

    26Tema 8. Teora de la normalizacin

    Sean los descriptores a, b, g, d, todos subconjuntos de A Regla de reflexividad

    Si b a entonces a b

    Regla de aditividad (de aumentatividad)Si a b entonces ag bg

    Regla de transitividadSi a b y b g entonces a g

    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. Teora de la normalizacin

    ... deducibles a partir de los Axiomas de Armstrong

    Regla de pseudotransitividadSi a b y gb d entonces ag d

    Regla de unin (aditiva)Si a b y a g entonces a bg

    Regla de descomposicin (de proyectividad)Si a bg entonces a b y a g

    8.2 Dependencias funcionalesOtras reglas de inferencia

    N slo para laparte derecha

    de una df!!

    28Tema 8. Teora de la normalizacin

    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 a b se infiere de un conjunto de dfs DF de R si toda extensin de r(R) que cumple DF, tambin cumple a b

    Decir que una df aa bb DF+ significa que se deriva o es inferiblea partir de las dfs contenidas en DF

    El clculo de DF+ suele tener un coste computacional excesivo...

    8.2 Dependencias funcionalesCierre de un conjunto de dependencias funcionales

  • 15

    29Tema 8. Teora de la normalizacin

    ... por eso su obtencin sigue los siguientes pasos:

    1. Establecer los conjuntos de atributos a que son determinantes(implicantes o parte izquierda) de una df de DF

    2. Para cada a aplicar los Axiomas de Armstrong para determinarlos atributos que dependen funcionalmente de a

    El paso 2 es el clculo del cierre de un descriptor a sobre un conjunto de dependencias funcionales DF, denotado por aa+DF

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

    30Tema 8. Teora de la normalizacin

    a+ = aREPETIR HASTA QUE a+ NO CAMBIE

    PARA CADA b d EN DFSI b a+ Y d a+

    ENTONCES a+= a+ d

    Sea R(A, DF), donde A={a,b,c,g,h,i} y DF={ab, ac, cgh, cgi, bh}Calcule {ag}+DF

    Sea R(A, DF), donde A={a,b,c,d,e,f} y DF={abc, bcad, de, cfb}Calcule {ab}+DF

    8.2 Dependencias funcionales

    Clculo del cierre de un descriptor aa+DF

    Cierre de un conjunto de dependenc. funcionales (3)

  • 16

    31Tema 8. Teora de la normalizacin

    La dependencia funcional aa bb se cumple en un conjunto DF de dependencias funcionales si aa bb DF+

    a b DF+ si y slo si bb aa+DF

    Comprobar que a b se cumple en DF es ver si bb depende funcionalmente de aa con base en las dependencias funcionales de DF

    Como a+DF contiene todo atributo que depende funcionalmente de a con base en DF, slo habr que comprobar si entre ellos est b

    Sea R(A, DF), donde A={a,b,c,d,e,f} y DF={abc, bcad, de, cfb}Compruebe si se cumplen estas dependencias funcionales: ab d d a

    8.2 Dependencias funcionales

    Comprobacin del cumplimiento de una df en DF

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

    32Tema 8. Teora de la normalizacin

    Hasta ahora hemos estudiado el concepto intuitivo de (super)clave descriptor que identifica unvocamente cada tupla en una relacin

    Definicin formal de clave un descriptor es clave si todos los atributos de la relacin 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

    Determinacin del conjunto K de (super)claves de R(A, DF)K = A PARA CADA a EN K (todos los subconjuntos posibles de A)

    SI ( K-a )+DF = A , ENTONCES K = K - a Tras esto, puede aplicarse el algoritmo siguiente (a partir del paso 3), para

    ver cules de las claves encontradas son claves candidatas (mnimas) en R

    8.2 Dependencias funcionalesDeterminacin de claves de un esquema de relacin

  • 17

    33Tema 8. Teora de la normalizacin

    Algoritmo para determinar si aa es clave candidata de R(A, DF)1. CALCULAR a+DF2. SI a+ DF = A , ENTONCES a es superclave,

    SI NO, a no es clave3. SI a es superclave, ENTONCES

    calcular todos los subconjuntos a de aREPETIR PARA CADA a

    SI a+DF = A , ENTONCES a no es claveSI ninguna a cumple lo anterior, a es clave candidata

    Sea PRESTAMO (nsocio, nomsocio, codlibro, fecha, editorial, pas),donde DF={ nsocio nomsocio,

    nomsocio nsocio, Es clave {nomsocio, codlibro}?codlibro editorial, editorial pas, {nsocio,codlibro} fecha}

    8.2 Dependencias funcionalesDeterminacin de si un descriptor es clave

    34Tema 8. Teora de la normalizacin

    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 extensin de R que satisface toda df de DF1, tambin

    cumple toda df de DF2, o lo que es lo mismo: si cada df en DF2 tambin 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. Teora de la normalizacin

    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 relacin con dicho esquema

    Esas maneras sern 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. Teora de la normalizacin

    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 DF22. Comprobar si DF2 recubre a DF1si 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 a b en DF2 tambin est en DF1+, es decir

    a. Calcular a+DF1 para cada a b en DF2b. Ver si b a+DF1si 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. Teora de la normalizacin

    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 extraos: no se puede quitar un atributo de una df en DFmy obtener un conjunto de dfs equivalente a DFm

    Atributo extrao en una dependencia funcional de DF Sea una df a b en DF,

    aa es un atributo extrao si (aa - a) bb DF+

    El atributo a puede ser eliminado sin modificar el cierre de DF

    Dependencia funcional redundante de DF La df a b es redundante si puede derivarse de G={DF (aa bb)}

    es decir, si bb aa +G La df d puede ser eliminada sin modificar el cierre de DF

    8.2 Dependencias funcionalesRecubrimiento cannico o minimal

    38Tema 8. Teora de la normalizacin

    Es interesante utilizar el recubrimiento minimal de un conjunto de dependencias funcionales porque...

    Toda dependencia funcional es una restriccin de integridad(semntica). Si no hay dfs redundantes, se minimiza el coste de mantenimiento de la integridad de la BD sin disminuir la semntica

    DFm se utiliza para normalizar una relacin y para calcular las claves, as que se disminuye el coste de los algoritmos empleados para ello

    Dependencia funcional completa a b es completa si la parte derecha b no depende de ningn

    subconjunto de la parte izquierda a (b depende de a en su conjunto)

    8.2 Dependencias funcionalesRecubrimiento cannico o minimal (2)

  • 20

    39Tema 8. Teora de la normalizacin

    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 extraosREPETIR PARA CADA a b EN DF

    L = aREPETIR POR CADA ATRIBUTO a DE a

    SI b (a - a)+DF ENTONCES L= L - aREEMPLAZAR a b POR L b en DF

    2. Eliminar dependencias funcionales redundantesH = DFREPETIR PARA CADA a b EN DF

    G = H - {a b} SI b a+G ENTONCES H= G

    3. DFm = H

    8.2 Dependencias funcionalesRecubrimiento cannico o minimal (3)

    40Tema 8. Teora de la normalizacin

    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 cannico o minimal (y 4)

  • 21

    41Tema 8. Teora de la normalizacin

    Uso de un conjunto de dependencias funcionales para diseo correcto de esquemas de relacin

    Definicin de formas normales que representan buenos diseos Sea R(A, DF) mal diseado

    Contiene redundancias: desperdicio de espacio y posibilidad de propiedades no deseables (anomalas de actualizacin, etc.)

    Ser necesario descomponer R en un conjunto de n esquemasde relacin

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

    Conservacin de la informacin Conservacin de las dependencias Mnima redundancia de datos (normalizacin de relaciones)

    8.3 Formas normalesNormalizacin usando dependencias funcionales

    42Tema 8. Teora de la normalizacin

    Sea PRESTAMO(idsuc, ciudsuc, activo, nomcli, numprest, importe), donde DF={ idsuc activo ciudsuc, numprest importe idsuc nomcli }La siguiente descomposicin 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 informacin ni dependencias funcionales Se minimiza (o elimina) la redundancia de datos

    8.3 Formas normalesNormalizacin usando dependencias funcionales (2)

  • 22

    43Tema 8. Teora de la normalizacin

    La informacin contenida en R(A, DF) debe ser la misma que la contenida en las Ri(Ai, DFi); para ello, debe conseguirse...

    Conservacin de los atributos Ai = A Conservacin del contenido (tuplas o extensin) *ri = r "" r, extensin de R, la reunin natural de extensiones ri de las Ri, ha

    de producir la r de origen: reconstruccin de la extensin original Si no se conserva el contenido, aparecen tuplas falsas

    Una descomposicin de reunin con prdida 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 informacin

    Descomposicin en proyecciones independientes (se ver)

    8.3 Formas normalesNormalizacin usando dependencias funcionales (3)Conservacin de la informacin

    44Tema 8. Teora de la normalizacin

    La descomposicin de R en los Ri debe conservar el conjunto de dependencias funcionales DF de R, pues cada dependencia funcional es una restriccin de integridadque refleja semntica del mundo real

    (DFi )+= DF+

    El conjunto de dependencias de origen es equivalente a la unin de los conjuntos de dependencias de los esquemas resultantes

    De este modo se consigue que cualquier actualizacin de la base de datos obtenga siempre una relacin legal (cuya extensin tras la actualizacin cumple todas las dependencias funcionales dadas)

    8.3 Formas normalesNormalizacin usando dependencias funcionales (4)Conservacin de las dependencias funcionales

  • 23

    45Tema 8. Teora de la normalizacin

    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 anomalas de actualizacin incapacidad para representar cierta informacin, ...

    Formas normales basadas en dependencias funcionales1FN2FN3FN, FNBC

    8.3 Formas normalesNormalizacin usando dependencias funcionales (5)Minimizacin de la redundancia

    46Tema 8. Teora de la normalizacin

    R est en 1FN si ningn atributo toma un valor compuesto(dominio no atmico), ni multivalorado (ms de un valor a la vez)

    Inherente al modelo relacional de datos

    LIBRO (esquema incorrecto: no est en 1FN)cdigo ttulo autor |9090 Fundamentos de sistemas de bases de datos Elmasri , Navathe8070 Diseo de bases de datos relacionales de Miguel , Piattini, Marcos

    8.3 Formas normalesNormalizacin usando dependencias funcionales (6)Minimizacin de la redundancia: Primera Forma Normal

    Multivalorado

    LIBRO (esquema en 1FN)cdigo ttulo autor |9090 Fundamentos de sistemas de bases de datos Elmasri9090 Fundamentos de sistemas de bases de datos Navathe8070 Diseo de bases de datos relacionales de Miguel8070 Diseo de bases de datos relacionales Piattini8070 Diseo de bases de datos relacionales Marcos

    Redundancia

  • 24

    47Tema 8. Teora de la normalizacin

    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, nmero, pgina, editorial) DF={ articulo, revista, nmero pgina,

    revista editorial } PUBLICA no est en 2FN, por qu?

    8.3 Formas normalesNormalizacin usando dependencias funcionales (7)Minimizacin de la redundancia: Segunda Forma Normal

    48Tema 8. Teora de la normalizacin

    q Varias definiciones equivalentes entre s:

    R est en 3FN si todo atributo no principal slo tiene dependencia funcional respecto de las claves

    Ningn 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 normalesNormalizacin usando dependencias funcionales (8)Minimizacin de la redundancia: Tercera Forma Normal

  • 25

    49Tema 8. Teora de la normalizacin

    q Definicin formalR(A, DF) est en 3FN respecto a DF si para toda dependencia funcional ab en DF+ (aA, bA), se cumple al menos una de las siguientes condiciones: a b es una dependencia funcional trivial, es decir, bb aa a es una superclave del esquema R, es decir aa+ = A Cada atributo a en bb -aa es principal (est contenido en alguna clave

    candidata de R)

    SOCIO (dni, ciudad, pas) DF = { dni ciudad, dni pais, ciudad pas }La relacin SOCIO no est en 3FN, por qu?

    8.3 Formas normalesNormalizacin usando dependencias funcionales (9)Minimizacin de la redundancia: Tercera Forma Normal (y 2)

    50Tema 8. Teora de la normalizacin

    i Nota: un determinante es el implicante o parte izquierda de una df

    La FNBC es una definicin ms estricta de la 3FN

    R(A,DF) est en FNBC respecto a DF si para toda dependencia funcional a b en DF+ (aA, bA), se cumple al menos una de estas condiciones: a b es una dependencia funcional trivial, es decir, bb aa a es una superclave del esquema R, es decir aa + = A

    Es decir, R est en FNBC si todo determinante contiene una clave

    8.3 Formas normalesNormalizacin usando dependencias funcionales (10)Minimizacin de redundancia: Forma Normal de Boyce-Codd

  • 26

    51Tema 8. Teora de la normalizacin

    La FNBC no requiere que todas las claves aparezcan como determinantes

    Si R est en 3FN y slo 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 (vase siguiente ejemplo)

    8.3 Formas normalesNormalizacin usando dependencias funcionales (11)Minimizacin de redundancia: FN de Boyce-Codd (2)

    52Tema 8. Teora de la normalizacin

    ARTICULO1 (codart, ttulo, revista, nmero, pgina) DF = { codart ttulo, Un ttulo nunca se repite en una misma revista

    titulo codart, Un artculo puede publicarse en varias revistascodart revista nmero pgina;ttulo revista nmero pgina; pgina revista nmero codart, ttulo }

    Est en 3FN, pero no en FNBC

    ARTICULO2 (codart, revista, nmero, pgina) DF = { codart, revista, nmero pgina;

    pgina, revista, nmero codart }Est en 3FN, y tambin en FNBC

    8.3 Formas normalesNormalizacin usando dependencias funcionales (12)Minimizacin de redundancia: FN de Boyce-Codd (y 3)

    Claves de ARTICULO1:CK1= { revista, nmero, codart } CK2= { revista, nmero, ttulo } CK3= { revista, nmero, pgina }

    Claves de ARTICULO2:CK1 = { revista, nmero, codart }CK2 = { revista, nmero, pgina }

  • 27

    53Tema 8. Teora de la normalizacin

    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 slo 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 ms correcto es tener los esquemas de relacin en FNBC, pero si no es posible, basta con llegar a la 3FN

    1FN y 2FN no son buenos diseos sino escalones para llegar a 3FN o FNBC El proceso de normalizacin disminuye la redundancia

    y por tanto el desperdicio de espacio y las propiedades no deseables ... pero penaliza las consultas

    pues se necesitarn JOINs, cuyo coste es elevado

    8.3 Formas normalesNormalizacin usando dependencias funcionales( y 13)

    54Tema 8. Teora de la normalizacin

    Se parte del esquema de relacin universal R y de su conjunto de dependencias funcionales, DF

    Se descompone R sucesivamente en proyecciones que conservanla informacinlas dependencias

    Los esquemas resultantes cada vez ...tienen menos atributos (menor grado)estn en formas normales ms avanzadas

    Fin del proceso ...Al llegar a la FN deseada, oSi seguir implica la prdida de dependencias

    Separa informacin referente a conceptos distintos Empleo de rboles de descomposicin

    8.4 Enfoques de diseo relacionalAnlisis o descomposicin: diseo descendente

  • 28

    55Tema 8. Teora de la normalizacin

    Obtiene esquemas de relacin a partir deatributosdependencias funcionales entre dichos atributos

    Agrupa informacin referente a un mismo concepto

    8.4 Enfoques de diseo relacionalSntesis relacional: diseo ascendente

    Comparacin anlisis vs. sntesis Semejanzas

    Tienen el mismo objetivo Basadas en los conceptos de dependencias y recubrimiento minimal

    Diferencias La sntesis slo considera dependencias funcionales El anlisis considera, adems de las dependencias funcionales, las

    dependencias multivaloradas y dependencias de reunin o combinacin

    56Tema 8. Teora de la normalizacin

    Examinar un esquema relacional R para... 1. Determinar su nivel de normalizacin2. si R no est en 3FN ni en FNBC, descomponer R en proyecciones

    sin redundancias ni propiedades no deseables

    1. Determinacin del nivel de normalizacin de R

    Cmo determinar si un esquema de relacin est en 3FNa. Encontrar todas las claves para ...b. Determinar componentes de dichas claves (atributos principales) y c. Comprobar que ningn atributo no principal, depende

    de otro atributo no principal Cmo determinar si un esquema de relacin est en FNBC

    a. Comprobar que todo determinante es clave-- menor coste computacional

    8.4 Enfoques de diseo relacional: Anlisis

  • 29

    57Tema 8. Teora de la normalizacin

    2. Descomposicin 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 descomposicin debe realizarse...

    Sin prdida de informacin:R = R1 *...* Rn , para toda extensin de cualquier relacin r(R)

    Sin prdida de dependencias funcionales( DFi)+ = DF+

    Es decir, debe realizarse una descomposicin sin prdidas: con la que se obtiene proyecciones independientes

    8.4 Enfoques de diseo relacional: Anlisis (2)

    58Tema 8. Teora de la normalizacin

    Sea R una relacin y R1, R2 dos de sus proyecciones, entoncesR1 y R2 son independientes si y slo siSus atributos comunes son la clave primaria de, al menos, una

    de las dos proyeccionesCada dependencia funcional en R puede deducirse de las

    dependencias funcionales de R1 y R2

    PELICULA(titulo, ao, duracin, tipo, estudio, actor), DF={ titulo ao duracin tipo estudio } Redundancia: se repite todo por cada actor participante en la pelcula Causa: transformacin de un atributo multivalorado (actor) No est en FNBC porque (ttulo, ao) no es clave; la clave es (ttulo, ao, actor) Descomposicin en proyecciones independientes:

    R1(ttulo, ao, duracin, tipo, estudio) con DF1={titulo ao duracin tipo estudio}R2(titulo, ao, actor), con DF2 vaco

    8.4 Enfoques de diseo relacional: Anlisis (3)Descomposicin en proyecciones independientes

  • 30

    59Tema 8. Teora de la normalizacin

    Algoritmo de descomposicinTomar a b de DF+ no trivial, donde a no es superclaveObtener dos proyecciones de R(A, DF)

    R1 (aa , bb, DF1) y R2 (A - bb, 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 descomposicin resultante es de reunin sin prdidas, pero no siempre preserva las dependencias (caso FNBC)

    LIBRO ( A={ codlibro, editorial, pas }, DF={ codlibro editorial, editorial pas } )

    otros aa bbR2 R1

    8.4 Enfoques de diseo relacional: Anlisis (4)Descomposicin en proyecciones independientes

    Gua en el proceso de descomposicinen proyecciones independientes:Utilizar las dependencias funcionalesque violen la FN deseada (FNBC, 3FN)

    60Tema 8. Teora de la normalizacin

    Determinacin de las dependencias funcionales que cumple cada proyeccin resultante de una descomposicin

    Sea R(A, DF) y sea R1(A1, DF1) una de las proyecciones de R, DF1? Considerar cada descriptor aa , subconjunto de A1 Calcular aa+, 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 aa + ) a no est contenido en a ( a aa )la dependencia funcional aa se cumple en R1, es decir (aaa) DF1

    (#) No es necesario determinar el cierre de ... todo el conjunto de atributos de R1 (es decir, si a = A1) los a que no contengan la parte izquierda de alguna dependencia los a que contengan un atributo que no sea parte izquierda de alguna dependencia

    8.4 Enfoques de diseo relacional: Anlisis (5)Descomposicin en proyecciones independientes

  • 31

    61Tema 8. Teora de la normalizacin

    Las dos proyecciones independientes resultantes cumplen uno de estos principios de descomposicin sin prdidas:

    R1 R2 R1 - R2 o bienR1 R2 R2 - R1

    Siempre es posible descomponer una relacin en dos proyecciones independientes para llegar a la 3FN

    Esto no siempre es posible para llegar a la FNBC, pues a veces se pierde informacin y/o dependencias funcionales

    1. PROYECTA(pelcula, cine, ciudad), DF = { pelcula ciudad cine, cine ciudad } 2. NOTA(dniProf, nomProf, dniAlu, calific)

    DF= { dniProf nomProf, nomProf dniProf, dniProf dniAlu calific }

    8.4 Enfoques de diseo relacional: Anlisis (6)Descomposicin en proyecciones independientes

    62Tema 8. Teora de la normalizacin

    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 prdidas

    Descomposicin en la FNBC de R(A, DF)

    1. Determinar el recubrimiento minimal DFm2. Determinar las claves de R3. Obtener proyecciones independientes hasta que todo determinante es

    una clave (se ha llegado a la FNBC) o seguir implique prdidas

    R(A, DF), donde A= { a, b, c, d, e, f, g } y DFm = { b ac , ed , df }

    8.4 Enfoques de diseo relacional: Anlisis (7)Proceso de anlisis o descomposicin de R(A,DF)

  • 32

    63Tema 8. Teora de la normalizacin

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

    iteracin 1R1(idsuc, activo, ciudsuc); DF1={idsuc activo ciudsuc}; CK1={idsuc}R2(idsuc, nomcli, codcuenta, saldo); DF2={codcuenta idsuc saldo}; CK2={nomcli, codcuenta}

    iteracin 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}

    iteracin 3R3 y R4 estn en FNBC

    El conjunto de esquemas de relacin resultante es { R1, R3, R4 }, todos en FNBC

    8.4 Enfoques de diseo relacional: Anlisis (8)Proceso de anlisis o descomposicin de R(A,DF)

    64Tema 8. Teora de la normalizacin

    Aplicar el algoritmo al siguiente esquema de relacin 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}

    iteracin 1R1(nombanquero, idsuc); DF1{nombanquero idsuc}; CK1={nombanquero}R2 (nomcli, nombanquero); DF2= ; CK2={nomcli, nombanquero}

    iteracin 2R1 y R2 estn en FNBC

    El conjunto de esquemas resultante es { R1, R2 }, todos en FNBC, pero... slo preserva nombanquero idsuc (adems de las df triviales) y no conserva idsuc nomcli nombanquero

    La violacin de esta df no se detectar, a menos que se calcule la reunin (JOIN)

    8.4 Enfoques de diseo relacional: Anlisis (y 9)Proceso de anlisis o descomposicin de R(A,DF)

  • 33

    65Tema 8. Teora de la normalizacin

    1. Determinar el recubrimiento minimal DFm2. Agrupar las dependencias funcionales de DFm con el mismo determinante

    Es decir, agrupar las aA1 , aA2...aAn , para cada antecedente a3. Formar una Ri para cada grupo, con los atributos que aparecen en el grupo y las

    dependencias funcionales de DFm con a como antecedenteRi (a A1 ... An) con DFi={ a A1, ..., a An }

    4. Si existen atributos que no aparecen en ningn determinante ni implicado,formar una Ri con ellos, sin dependencias funcionales asociadas.

    5. Si ninguna Ri contiene una clave de la R original, aadir una relacin con los atributos que forman tal clave de R

    Obtiene las Ri en 3FN Aplicando sntesis, siempre es posible encontrar una descomposicin de

    reunin sin prdida que preserve las dependencias y est en 3FN

    8.4 Enfoques de diseo relacional: SntesisProceso de sntesis relacional para R(A,DF)

    66Tema 8. Teora de la normalizacin

    Aplicar sntesis al siguiente esquema de relacin 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 3

    R1(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 estn en 3FN

    8.4 Enfoques de diseo relacional: Sntesis (y 2)Proceso de sntesis relacional para R(A,DF)

  • 34

    67Tema 8. Teora de la normalizacin

    Es posible que todava exista redundancia en un esquema de relacin en FNBC

    Una dependencia multivalorada, dmv, proviene de dos o ms atributos multivalorados que son independientes entre s

    ESTUDIANTE_RESIDENTE(dni, estudios, actividad) ACTOR(nomactor, calle, ciudad, titulopeli, aopeli)

    La nica forma de expresar la independencia de los conjuntos de valores ...

    estudios vs. actividades de los estudiantes direcciones de los actores vs. pelculas en las que han participado

    ... es hacer que para cada actor, cada direccin aparezca con cada una de las pelculas, y para cada estudiante, cada valor de estudios aparezca con cada actividad

    Las dmv son una consecuencia de la transformacin de una R en la 1FN, cuando existen varios atributos multivalorados e independientes entre s

    8.5 Dependencias multivaloradas y 4FN

    68Tema 8. Teora de la normalizacin

    Sea el esquema de relacin R(A, D) y dos descriptores a y b,aa bb (aa multidetermina bb) si y slo si,para cada par de tuplas t1 y t2 de r(R) tales que t1[aa ] = t2[aa]es posible encontrar un par de tuplas t3 y t4 en r(R) que cumplent1[a] = t2[a] = t3[a] = t4[a]t3[b] = t1[b] y t4[b] = t2[b]t3[A- a - b] = t2[A- a - b] y t4[A- a - b] = t1[A- a - b]

    Para cada valor de a, existen 0 o ms valores de b, independientemente de los valores del resto de atributos (A- a - b)

    Que se verifique a b slo depende de a y de b, pero que se cumpla a bdepende, adems, del resto de los atributos: las dmv dependen del contexto

    aa bb significa que siempre que aparezcan dos tuplas con distintos valores de bb, pero el mismo en aa, los valores de bb debern repetirse con cada valor distinto de A- aa - bb que ocurra con dicho valor de aa

    Ejemplo: nombreactor calle, ciudad

    8.5 Dependencias multivaloradas y 4FNDefinicin formal de dependencia multivalorada

  • 35

    69Tema 8. Teora de la normalizacin

    Regla de dependencias triviales

    Si R cumple a b entonces cumple ag , donde g b pues se han quitado componentes de b que tambin

    estaban en a

    ad , donde b d pues se han aadido componentes a b que tambin estaban en a, siempre que d - b a

    Regla de aumento

    Si R cumple a b y g d, entonces cumple ad bg

    Regla de transitividad para dmv

    Si R cumple a b y b g, entonces cumple a g-b

    Regla de replicacin

    Si R cumple a b, entonces cumple a b

    8.5 Dependencias multivaloradas y 4FNReglas de inferencia para dmvs

    70Tema 8. Teora de la normalizacin

    Regla de complemento

    Si R cumple a b, tambin cumple a A-a-b Regla de combinacin para dmv y df

    Si R cumple que a b y $ d/ db=, d g y gb, entonces a g

    Dependencia multivalorada trivial

    Sean a = {a1, a2... an}, b = {b1, b2 ... bm} descriptores de R(A, D),

    aa bb es una dmv trivial si y slo si cumple los bi estn entre los ai (es decir ba), o bien todos los atributos de R estn entre los ai y bi (es decir ab=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. Teora de la normalizacin

    Es una generalizacin de la FNBC, que elimina las dmv no triviales R(A, D) est en 4FN si para toda dmv no trivial aa bb,

    se cumple que aa es una superclave de R

    8.5 Dependencias multivaloradas y 4FNCuarta forma normal

    Si R no est en 4FN, por contener una dmv ab, donde a no contiene una clave de R, se debe dividir R en dos esquemas:

    R1, con todos los atributos de a y los de bR2, con todos los atributos de a y el resto de atributos A-a-bN Asignar adecuadamente a cada Ri las dependencias funcionales y multivaloradas

    Cumple los principios de descomposicin sin prdidas puesto queab y aA-a-b

    R1(nombreactor, calle, ciudad)R2(nombreactor, titulopeli, aopeli)

    Descomposicin en la 4FN