24
29/11/2014 1 Dependencias Funcionales Las dependencias funcionales son reglas independientes del tiempo que verifican los atributos en un contexto determinado DEFINICIÓN En un esquema R { A, DF} Se dice que Y depende funcionalmente de X, que se representa por: X Y si y solo si, cada valor de X tiene asociado en todo momento un único valor de Y. Descriptores Equivalentes Se dice que X e Y son equivalentes cuando: X Y Y X Y se representa: X Y Ejemplo: docIdentidad codLaboral 29/11/2014 1 Bases de Datos I - Mauricio E. Fernández N Dependencias Funcionales Dependencias Transitivas Sea la relación R (A, DF) y X, Y dos descriptores sobre A. Entre los descriptores X e Y se presenta una dependencia transitiva si se cumple: a) X Y= b) Existe un descriptor Z A tal que Z X= yZ Y= c) X Y, Y Z, X Z Dependencias Parciales Se dice que X Y es una dependencia parcial cuando existe un descriptor X’ X tal que X’ Y. Si no existe tal descriptor X’ X tal que X’ Y, se dice que la dependencia es total. 29/11/2014 2 Bases de Datos I - Mauricio E. Fernández N

Dependencias Funcionales - Univalle€¦ · descomposición de relaciones sin pérdida de dependencias. 29/11/2014 Bases de Datos I - Mauricio E. Fernández N 7 Las Formas Normales

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

29/11/2014

1

Dependencias FuncionalesLas dependencias funcionales son reglas independientes deltiempo que verifican los atributos en un contexto determinado

DEFINICIÓN En un esquema R { A, DF} Se dice que Y dependefuncionalmente de X, que se representa por: X Y si y solosi, cada valor de X tiene asociado en todo momento un únicovalor de Y.

Descriptores EquivalentesSe dice que X e Y son equivalentes cuando:

X Y Y X

Y se representa: X Y

Ejemplo: docIdentidad codLaboral

29/11/2014 1Bases de Datos I - Mauricio E. Fernández N

Dependencias FuncionalesDependencias TransitivasSea la relación R (A, DF) y X, Y dos descriptores sobre A.Entre los descriptores X e Y se presenta una dependenciatransitiva si se cumple:

a) X Y =

b) Existe un descriptor Z A tal que Z X = y Z Y =

c) X Y, Y Z, X Z

Dependencias ParcialesSe dice que X Y es una dependencia parcial cuandoexiste un descriptor X’ X tal que X’ Y.

Si no existe tal descriptor X’ X tal que X’ Y, se diceque la dependencia es total.

29/11/2014 2Bases de Datos I - Mauricio E. Fernández N

29/11/2014

2

Dependencias FuncionalesGRAFO DE DEPENDENCIAS FUNCIONALESEs un diagrama (grafo) que representa el contexto semánticoobservado en determinado universo, donde los nodos son atributosy los arcos representan dependencias entre nodos o agrupaciones(burbujas) de nodos.

Sean los atributos {ccNro, nombre, pais, ciudad, codProducto,descripProd, color, peso, canti} y las dependencias funcionales:

ccNro nombreccNro paisccNro ciudadcodProducto descripProdcodProducto colorcodProducto peso(ccNro , codProducto canti

canti

ccNro

codProducto

Nombre

Pais

ciudad

descripProd

Color

peso

29/11/2014 3Bases de Datos I - Mauricio E. Fernández N

Axiomas de ArmstrongDe un esquema R(A, DF) es posible deducir (o inferir) nuevasdependencias funcionales. Las nuevas dependencias f que secumplen para cualquier extensión r de R, son consecuencialógica de DF.

1. REFLEXIVIDAD: Si X Y, entonces X Y2. AUMENTATIVIDAD: Si X Y y W Z,

entonces XW YZ3. TRANSITIVIDAD: Si X Y y Y Z entonces X Z4. PSEUDOTRANSITIVIDAD: Si X Y y W Z,

entonces XW Z5. UNION: Si X Y y X Z entonces X YZ6. DESCOMPOSICION: Si X YZ, entonces X Y y X Z

29/11/2014 4Bases de Datos I - Mauricio E. Fernández N

29/11/2014

3

Enfoque de DescomposiciónEl enfoque de descomposición de relaciones parte de asumir la existencia de la instancia Universal

Dado un conjunto de atributos A={A1, A2,…, An} y el conjunto de dependencias representado por DF sobre los atributos de A, la relación Universal U={A1, A2,…, An} se denomina relación universal y suextensión, la instancia universal {R1, R2,…, Rn} tendrá relaciones tales que cualquier tupla de una relación puede obtenerse mediante unaproyección de la instancia universal.

Se parte de la R.U. y aplica las reglas de descomposición para cadaForma Normal. El mayor inconveniente el calculo de las claves.

Paso 0: Asumiendo la existencia de U={A1, A2,…, An} calcular las claves {Ku} de U.

Paso 1: Descomponer relaciones que no estén en 1FN

Paso 2: Descomponer relaciones que tengan dependencias incompletas (2FN), recalculando claves para las nuevas relaciones.

Paso 3: Descomponer relaciones con dependencias transitivas (3FN)

29/11/2014 5Bases de Datos I - Mauricio E. Fernández N

Dependencias FuncionalesPrimera Forma Normal (1FN)

Un esquema R(A, DF) está en primera forma normal cuando todassus entradas son simples (no existen grupos repetitivos).

Segunda Forma Normal (2FN)

Un esquema R (A, DF) está en 2FN si ya está en 1FN y todos susatributos no-principales tienen dep. funcional total respecto de cadauna de las claves. (No existen dependencias parciales).

Ejemplo: La relación Publicacion (artículo, revista, númeroRevista,página, editorial) y las siguientes dependencias:

Artículo, Revista, Número-revista Página //Clave

Revista Editorial. // No esta en 2FN

29/11/2014 6Bases de Datos I - Mauricio E. Fernández N

29/11/2014

4

Las Formas NormalesForma Normal Boyce Codd (BCFN)

Un esquema R (A, DF) se dice que está en la forma normalBoyce-Codd (FNBC) si siempre que X A se satisface en R yA no está en X, entonces X es una superclave para R; es decir,X es una clave o contiene una clave

Las únicas dependencias no triviales son aquellas en las cuales unaclave determina funcionalmente uno o más atributos diferentes (unatabla está en FNBC si está en 3FN y los únicos determinantes sonclaves candidatas.).

La forma normal Boyce-Codd aborda el tratamiento de redundanciasen casos de claves alternativas, acotando el umbral de ladescomposición de relaciones sin pérdida de dependencias.

29/11/2014 7Bases de Datos I - Mauricio E. Fernández N

Las Formas NormalesTercera Forma Normal (3FN)

DEFINICION: Se dice que un atributo A en un esquema R esun atributo primo si A es miembro de alguna llave de R.

Si A no es miembro de ninguna llave se denomina no-primo.

Un esquema R esta en Tercera Forma Normal si siempreque X A se satisface en R y A no está en X, entonces X esuna superclave para R, (o A es primo). De otra forma, ningúnatributo no primo depende transitivamente de ninguna clave.

La 3FN evitará redundancias por mezcla de propiedades de dosentidades en la misma relación cuando existen dependenciastransitivas.

29/11/2014 8Bases de Datos I - Mauricio E. Fernández N

29/11/2014

5

Ejemplo de NormalizaciónORDEN DE COMPRACliente Nro: 001964 Número Orden: 00012345Nombre: Marcos Caballero Fecha Orden: 14-Nov-2014Dirección: Carrera 24 #9C-48

29/11/2014 9Bases de Datos I - Mauricio E. Fernández N

Nro Producto Descripción Precio Unit. Cantidad Valor

T5060 Tuerca 2 ⅛ 300 200 60.000

P6231 Puntilla 1 ⅜ 150 100 15.000

KA2 Llave de Allen 1/2 2.000 20 40.000

S2489 Serrucho 7.000 5 35.000

Total Orden $200.000

gcgfcsOrdenCompra (orderNro, fechaOrd, clienteNo, nombreCli, direccionCli, (prodNno, descripPrd, precioUnPrd, cantidadOrdPrd, valorOrdPrd)*, totalOrd)

* = grupos de datos que se repiten

Ejemplo de NormalizaciónPrimera Forma Normal (1FN)

Definición: Una relación está (o satisface) la 1NF, sii, todos sus atributos

son atómicos.

Entonces OrdenCompra no esta en 1FN pues tiene datos que se repiten

29/11/2014 10Bases de Datos I - Mauricio E. Fernández N

OrdenItem (orderNro, prodNno, descripPrd, precioUnPrd, cantidadOrdPrd, valorOrdPrd)

OrdenCompra1 (orderNro, fechaOrd, clienteNo, nombreCli, direccionCli, totalOrd)

Pasos para convertir una relación en 1NF: Crea una nueva relación con el grupo que se repite Añadir a la nueva relación la clave primaria de la relación que la contenía Darle un nombre a la nueva entidad Determina la clave primaria de la nueva entidad Repetir hasta que no queden más atributos no atómicos

29/11/2014

6

Ejemplo de NormalizaciónSegunda Forma Normal (2FN)

Definición: Una relación está (o satisface) la 2NF, sii, satisface la1NF y todo

atributo que no forma parte de la clave primaria depende TOTALMENTE de la

clave.

OrdenItem no esta en 2FN pues tiene dependencias funcionales parciales

29/11/2014 11Bases de Datos I - Mauricio E. Fernández N

Producto2 (prodNno, descripPrd, precioUnPrd)

OrdenItem2 (orderNro, prodNno, cantidadOrdPrd, valorOrdPrd)

Pasos para convertir una relación 1NF a 2FN: Elimina los atributos que dependen parcialmente de la clave primaria y crea con ellos

una nueva relación. Añade a esta relación una copia del atributo/s del cual dependen (será la clave

primaria de la nueva relación) Nombra a la nueva entidad (añade un 2 para indicar 2NF) Renombra a la entidad original (añade un 2 para indicar 2NF)

Ejemplo de NormalizaciónTercera Forma Normal (3FN)

Definición: Una relación está (o satisface) la 3NF, sii, en esta en 2NF y todos

los atributos que no son clave primaria depende completamente de la clave

primaria. (NO hay dependencias funcionales transitivas)

OrdenCompra1 no esta en 3FN pues tiene depend. funcionales Transitivas

29/11/2014 12Bases de Datos I - Mauricio E. Fernández N

Cliente3 (clienteNo, nombreCli, direccionCli)

OrdenCompra3 (orderNro, fechaOrd, clienteNo, totalOrd)

Pasos para convertir una relación 2NF a 3FN: Elimina los atributos que presentan dependencias transitivas y crea una nueva

relación con ellos Añade a esta nueva relación una copia de los atributos con los que están

relacionados (determinantes) los atributos eliminados, ellos serán la clave primaria dela nueva relación.

Nombra a la nueva entidad (añade un 3 para indicar 3NF) Renombra a la entidad original (añade un 3 para indicar 3NF)

29/11/2014

7

Lema 1: Suponga R un esquema con dependencias funcionalesDF, sea ρ una descomposición de R con la propiedad LJ conrespecto a DF: ρ = {R1, R2,..., Rk} y sea σ = (S1, S2) unadescomposición LJ de R1, con respecto a

R1(DF). Entonces

la descomposición de R en (S1, S2, R2, ..., Rk) también tiene lapropiedad LJ con respecto a DF.

Lemas en la Normalización

Prueba: [Se halla en ULL88 pp 404].…

Lema 2: a) Cada esquema de dos atributos está en BCFN.

b) Si R no está en BCFN, entonces podemos hallar atributos Ay B en R tal que (R - AB) A. También puede presentarse elcaso que (R - AB) B.

29/11/2014 13Bases de Datos I - Mauricio E. Fernández N

Lemas en la Normalización

Lema 3: Si tenemos un conjunto de dependencias DF

sobre R y luego los proyectamos sobre R1 ⊆ R paraobtener DF1, y luego proyectamos DF1 sobre R2 ⊆ R1

para obtener DF2, entonces DF2 =R2

(DF).

Es decir, se puede asumir que DF era el conjunto dedependencias para R1, aunque DF presumiblementemenciona atributos que no se encuentran en R1.

Prueba: [Se halla en ULL88 pp 405].…

29/11/2014 14Bases de Datos I - Mauricio E. Fernández N

29/11/2014

8

Algoritmo de Descomposición en la Forma Normal

Boyce-Codd con la Propiedad LJIF Z contiene A y B tal que A no esté en ( Z - AB )+ THEN

/* Recuerde que las clausuras se toman con respecto a DF */

RETURN: Z está en BCFN y no se puede descomponer

ELSE

BEGIN

Hallar un A y un B; Y := Z - B;

WHILE (Y contenga A y B tal que (Y - AB)+ A ) DO

Y := Y - B;

RETURN: La descomposición Z - A e Y;

/* Y es para nuestro caso XA en el programa principal */

END;

29/11/2014 15Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Descomposición en la BCFN con la Propiedad LJ

Programa Principal del Algoritmo

Z := R; /* En todo momento, Z es el esquema de la

descomposición que podría no estar en BCFN */

REPEAT

Descomponga Z en Z - A y XA, donde

XA está en BCFN y X A; /* Usar subroutine (a) */

Adicione XA a la descomposición;

Z := Z - A;

UNTIL Z no pueda ser descompuesta por el lema 2b;

Adicione Z a la descomposición.

29/11/2014 16Bases de Datos I - Mauricio E. Fernández N

29/11/2014

9

Ejemplo Alg. de Descomp. En BCFNEjemplo: Sea el esquema R (A, DF) donde:

A = C (curso), P(profesor), H(hora), S(aula de clase), E (estudiante), N (nota).

DF: C P //Cada curso tiene un solo profesor.HS C //Sólo se puede dictar un curso a una hora y en un salón.HP S //A una hora, un profesor ocupa un salón.CE N //Un estudiante tiene una nota por cada curso que toma.HE S //Un estudiante puede estar en un solo salón a una hora.

Z := CPHSENSe descompone Z en Z - A y XA : Usamos la subroutina:• A = C, B = P (Z-AB)+= (HSENCP CP )+=(HSEN)+ = HSENCP C (y P). Y:= Y - B = CPHSEN - P = CHSEN {A, B} = {C H}: (Y-AB)+= (CHSEN-CP)+ = (SEN)+= SEN que ⊉ C {A, B} = {C S}: (Y-AB)+= (CHSEN-CS)+= (HEN)+=HENSCP C Sirve {A, B} Y:= Y - B = CHSEN - S = CHEN

Mientras haya A y B continuamos con el ciclo: {A, B} = {C H}: (Y-AB)+= (EN)+= EN que ⊉ C {A, B} = {C E}: (Y-AB)+= (HN)+= HN que ⊉ C

Sigue…

29/11/2014 17Bases de Datos I - Mauricio E. Fernández N

Ejemplo Alg. de Descomp. En BCFN {A, B} = {C N}: (Y-AB)+= (HE)+= HESCPN que C Sirve {A, B}

Y:= Y - B = CHE – N = CHE

Mientras haya A y B continuamos con el ciclo:

▪ {A, B} = {C H}: (Y-AB)+= (E)+= E que ⊉ C

▪ {A, B} = {C E}: (Y-AB)+= (H)+= H que ⊉ C

▪ {A, B} = {H E}: (Y-AB)+= (C)+= CP que ⊉ C

CONCLUSION: No existen pares {A, B} por lo cual salimos del ciclo. Entonces, no sepueden eliminar más atributos de Y porque falla la prueba del lema 2b. Por lo tanto, Z(CPHSEN) no se puede descomponer.

Que pasa con la partición CHE?: Que no contiene ninguna dependencia X A.

Volvamos a retomar intentando con la pareja {C, S} :

{A, B} = {C, S}: (Y-AB)+=(CHSEN-CS)+=(HEN)+=HENSCP C Sirve {A, B}

Como C y S están contenidos en el cierre, ambos sirven como {A, B}

Mientras Y contenga A y B tal que (Y - AB) + A Hacer Y = Y- B;

Y:= Y - B = CHSEN – C = HSE ... Y regresamos al ciclo WHILE:

{A, B} = {H S} : (Y-AB)+= (EN)+= EN que ⊉ H (ni S)

{A, B} = {H E} : (Y-AB)+= (SN)+= SN que ⊉ H (ni E)

Sigue…

29/11/2014 18Bases de Datos I - Mauricio E. Fernández N

29/11/2014

10

Ejemplo Alg. De Descomp. En BCFN {A, B} = {H N} : (Y-AB)+= (SE)+= SE que ⊉ H (ni N

{A, B} = {S E} : (Y-AB)+= (HN)+= HN que ⊉ S (ni E)

{A, B} = {S N} : (Y-AB)+= (HE)+= HESCPN S (y N)

Y:= Y - B := HSE ... Y regresamos al ciclo WHILE:

{A, B} = {H S}: (Y-AB)+= (E)+= E que ⊉ H (ni S)

{A, B} = {H E}: (Y-AB)+= (S)+= S que ⊉ H (ni E)

{A, B} = {S E}: (Y-AB)+= (H)+= H que ⊉ S (ni E)

En este punto no se puede eliminar más atributos porque la prueba del lema 2b fallapara cada pareja. Entonces el esquema CPHSEN se puede descomponer en:

i. HSE, que asume el papel de XA con X = HE y A = S ( HE S )

ii. Z = Z - A = CPHSEN - S Z = CPHEN, valor de Z para volver a iniciar.

Se descompone Z en Z - A y XA: Usamos la subrutina: Z= CPHEN{A, B} = {C P}: (Z-AB)+= (HEN)+= HENSCP C (y P) Sirve el par {A, B} Y= Z - B = (CPHEN – P) = CHEN{A, B} = {C H}: (Y-AB)+= (EN)+= EN que ⊉ C (ni H){A, B} = {C E}: (Y-AB)+= (HN)+= HN que ⊉ C (ni E){A, B} = {C N}: (Y-AB)+= (HE)+= HESCPN C (y N) Sirve el par {A, B} Y= Z - B = CHEN – N = CHE

Sigue…

29/11/2014 19Bases de Datos I - Mauricio E. Fernández N

Ejemplo Alg. de Desc. en BCFN{A, B} = {C H}: (Y-AB)+= (E)+= E que ⊉ C (ni H){A, B}= {C E}: (Y-AB)+= (H)+= H que ⊉ C (ni E){A, B}= {H E}: (Y-AB)+= (C)+= CP que ⊉ H (ni E)

CONCLUSION: No existen pares {A, B} por lo cual salimos del ciclo. Entonces, nose puede eliminar más atributos de Y porque falla la prueba del lema 2b. Por lotanto, Y (CHE) no se puede descomponer.

Que pasa con la partición CHE?: Que no contiene ninguna dependencia X A.

Volvamos a empezar intentando con la pareja {C N}:

{A, B} = {N, C}: (Y-AB)+= (HE)+= HESCPN N Sirve el par {A, B}Como C y N están contenidos en el cierre, ambos elementos sirven como {A, B}

Mientras Y contenga A y B tal que (Y - AB) + A Hacer Y = Y- B; Y:= Y - B = CHEN – C = HEN

Examinando la partición Y = HEN se observa que no contiene ninguna dependenciaX A. Por lo cual podemos descartarla y continuamos con otra pareja {A, B}{A, B} = {H, E}: (Y-AB)+= (CN)+= CNP que ⊉ H (ni E){A, B} = {H, N}: (Y-AB)+= (CE)+= CENP que ⊉ H (pero sí N)

Por lo observado en el paso anterior podemos intentar con {N, H} como pareja {A, B}{A, B} = {N, H}: (Y-AB)+= (CE)+= CENP N (pero no H) Hacemos Y= Y- B Y:= Y - B = CHEN – H = CEN

Sigue…

29/11/2014 20Bases de Datos I - Mauricio E. Fernández N

29/11/2014

11

Ejemplo Alg. de Descomp. en BCFN{A, B} = {C, E}: (Y-AB)+= (N)+= N que ⊉ C (ni E)

{A, B} = {C, N}: (Y-AB)+= (E)+= E que ⊉ C (ni N)

{A, B} = {E, N}: (Y-AB)+= (C)+= CP que ⊉ E (ni N)

En este punto no se puede eliminar más atributos porque la prueba del lema 2bfalla para cada pareja. Entonces el esquema CPHEN se puede descomponer en:

i. CEN, que asume el papel de XA con X = CE y A = N ( CE N )

ii. Z = Z - A = CPHEN - N Z = CPHE, valor de Z para volver a iniciar.

Z = CPHE

{A, B} = {C, P}: (Z-AB)+= (HE)+= HESCPN C (y P) Sirve el par {A, B}

Y= Z - B = (CPHE – P) = CHE : CHE no contiene dependencia X A. Se descarta.

{A, B} = {P, C}: (Z-AB)+= (HE)+= HESCPN P (y C) Sirve el par {A, B}

Y= Z - B = (CPHE – C) = PHE

La partición PHE no contiene dependencia X A. Podemos descartarla.

{A, B} = {C, H}: (Z-AB)+= (PE)+= PE que ⊉ C (y H)

{A, B} = {C, E}: (Z-AB)+= (PH)+= PHSC C (pero no E) Sirve el par {A, B}

Y= Z - B = (CPHE – E) = CPH

La partición CPH no contiene dependencias X A. Se descarta.

Sigue…

29/11/2014 21Bases de Datos I - Mauricio E. Fernández N

Ejemplo Alg. de Desc. en BCFN{A, B} = {P, H}: (Z-AB)+= (CE)+= CEPN P (pero no H) Sirve el par {A, B} Y= Z - B = (CPHE – H) = CPE{A, B} = {C, P}: (Y-AB)+= (E)+= E que ⊉ C (ni P) {A, B} = {C, E}: (Y-AB)+= (P)+= P que ⊉ C (ni E) {A, B} = {P, E}: (Y-AB)+= (C)+= CP P (pero no E) Sirve el par {A, B} Y= Y - B = CPE – E = CP

Con absoluta seguridad CP está en BCFN por el lema 2a. Debemos por lo tanto,agregar CP a la descomposición: CPHEN se puede descomponer en:

i. CP, que asume el papel de XA con X = C y A = P (C P)

ii. Z = Z - A = CPHE - P Z = CHE, valor de Z para volver a iniciar.

Z= CHE• {A, B} = {C, H}: (Y-AB)+= (E)+= E Que no contiene C (ni H)• {A, B} = {C, E}: (Y-AB)+= (H)+= H Que no contiene C (ni E)• {A, B} = {H, E}: (Y-AB)+= (C)+= CP Que no contiene H (ni E)

Entonces el esquema no se puede descomponer porque falla la prueba del lema 2b.

Por lo tanto, Z (CHE) esta en BCFN.

Descomposiciones (CHE, CP, CEN, HSE) cumpliendo con la propiedad LJ.

29/11/2014 22Bases de Datos I - Mauricio E. Fernández N

29/11/2014

12

Descomposición en 3FN Preservando Dependencias

No siempre es posible descomponer una relación en BCFN y preservar lasdepend., aunque si es posible hallar una descomp. en 3FN que preserve lasdepenc., como se muestra en el siguiente algoritmo:

ENTRADA: El esquema R (A, DF) donde se puede asumir que DF es unrecubrimiento minimal no redundante.

SALIDA: Una descomp. de R preserv. dep. tal que cada relación resultantese halle en 3FN con respecto a la proyección de DF sobre este esquema.

METODO: Si algún atributo de R no aparece en ninguna depend. (izquierda oderecha), entonces tal atributo puede eliminarse de R, constituyendo unesquema aparte. Si una de las depend. en DF incluye todos los atributos deA, entonces la salida es R, que estará en 3FN. Si esto no es así, la descomp.ρ a la salida consiste del esquema XA por cada dep. X → A en DF.

Es evidente que (Uki=1

DFi) = DF, de modo que el diseño conserva las dep.

29/11/2014 23Bases de Datos I - Mauricio E. Fernández N

Descomposición en 3FN Preservando Depend. y verificando Propiedad LJComo hemos visto, podemos descomponer cualquier relación R en unconjunto de esquemas ρ = (R1, ..., Rn) tal que ρ verifique lapropiedad LJ y cada esquema Ri esta en BCFN (y por lo tanto en3FN).

También podemos descomponer R en σ = (S1,..., Sn) tal que σpreserve el conjunto de dep. DF, y cada Sj esta en 3FN. Podemoshallar una descomp. en 3FN que cumpla simultáneamente con laspropiedades LJ y preserv. de dep., si adjuntamos a σ un esquema Xque es la llave de Ri.

TEOREMA: Sea σ la descomposición en 3FN de R, y sea X una llavepara R. Entonces τ = σ {X} es una descomposición de R con todossus esquemas en 3FN; la descomposición preserva dependencias ycumple la propiedad LJ.

Prueba: [Se halla en ULL88 pp 411]

29/11/2014 24Bases de Datos I - Mauricio E. Fernández N

29/11/2014

13

Descomposición en 3FN Preservando Depend. y verificando Propiedad LJEjemplo: Consideremos el ejemplo anterior:

Debemos entonces tomar la unión de los esquemas producidospara CPHSEN con la llave EH, para obtener unadescomposición que cumple la propiedad LJ y preservadependencias.

Pero EH es un subconjunto de HES, que ya es uno de losesquemas obtenidos. Entonces EH puede eliminarse y elesquema será: { CP, HSC, HPS, CEN, HES }

Aunque algún subconjunto de estas relaciones cumple con lapropiedad LJ, se puede verificar que las dependenciasproyectadas para cualquiera cuatro de ellas no implican elconjunto completo de dependencias DF.

29/11/2014 25Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de BernsteinA continuación se presenta el algoritmo básico de Bernstein:

1. Calcular el recubrimiento minimal DF* del conjunto de dependencias funcionales originales DF.

2. Agrupar dependencias de DF* en particiones que tengan el mismo determinante.

3. Para cada partición se genera un esquema Ri, el cual tendrá como clave primaria el determinante y como atributos el resto de los que aparezcan en las dependencias funcionales de la partición.

4. Si existen atributos que no son determinantes, ni implicados en DF*, se forma un esquema de relación con ellos, sin ninguna dependencia funcional.

29/11/2014 26Bases de Datos I - Mauricio E. Fernández N

29/11/2014

14

Algoritmo de Síntesis de BernsteinEjemplo 1:

Sea el esquema R (A, DF) con

A = A, B, C, D, E, F, G, I, J, K, L, M, N, P, Q, R, S, T, y

DF = AB C, A DEFG, E G, F DJ, G DI, DM NP, D M,

L D, PR S, PQR ST, D KL

Ejemplo 2:

Dados los atributos A = cc, nombre, apellido, dirección, ciudad, codPostal, departamento, pais, aficion, tipoAfición, grado , y

DF = (dirección , ciudad) codPostal, codPostal ciudad,

ciudad (departamento, pais), departamento pais,

cc (nombre, apellido, direccion),

cc (ciudad, codPostal, departamento, pais),

(nombre, apellido) (cc, cod, Postal),

(cc, aficion) (tipoAfición, grado), aficion tipoAfición

29/11/2014 27Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de BernsteinEjemplo 1:

A = A, B, C, D, E, F, G, I, J, K, L, M, N, P, Q, R, S, T, y

DF = AB C, A DEFG, E G, F DJ, G DI, DM NP, D M,

L D, PR S, PQR ST, D KL

1. Se busca recubrimiento mínimo para DFa) Segundos miembros simples: DF(1) = AB C, A D, A E, A F,

A G, E G, F D, F J, G D, G I, DM N, DM P, D M,

L D, PR S, PQR S, PQR T, D K, D L

b) Eliminar atributos extraños:

• AB C

Bi = A : B+=B A no es extraño

Bi = B : A+=ADEFGIJMNPKL B no es extraño

• DM N

Bi = D : M+=M D no es extraño

Bi = M : D+=DMKLP M no es extraño:

Sigue…

29/11/2014 28Bases de Datos I - Mauricio E. Fernández N

29/11/2014

15

Algoritmo de Síntesis de Bernstein• DM P

Bi = D : M+=M D no es extrañoBi = M : D+=DMKLP M no es extraño

• PR SBi = P : R+=R D no es extrañoBi = R : P+=P R no es extraño

• PQR SBi = P : (QR)+=QR P no es extrañoBi = Q : (PR)+=PRS Q si es extraño: PR S (que ya existe)

• PQR TBi = P : (QR)+=QR P no es extrañoBi = Q : (PR)+=PRS Q no es extrañoBi = R : (PQ)+=PQ R no es extraño

DF(2) = AB C, A D, A E, A F, A G, E G, F D,

F J, G D, G I, DM N, DM P, D M, L D,

PR S, PQR T, D K, D L

Sigue…

29/11/2014 29Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de Bernsteinc) Eliminar dependencias redundantes: • AB C : (AB)+= ABDEFGJIPMNL : C (AB)+ no redundante

• A D : (A)+= AEFGDJIPMKLN : D (A)+ Si redundante se elimina

• A E : (A)+= ADFGJINPMKL : E (A)+ no redundante

• A F : (A)+= AGEFDPMKLN : F (A)+ Si redundante se elimina

• A G : (A)+= AFDJPMKL : G (A)+ no redundante

• E G : (E)+= E : G (E)+ no redundante

• F D : (F)+= FJ : D (F)+ no redundante

• F J : (F)+= FDPMKLN : J (F)+ no redundante

• G D : (G)+= GI : D (G)+ no redundante

• G I : (G)+= GDPMKLN : I (G)+ no redundante

• DM N : (D)+= DMNKL : N (D)+ no redundante

• DM P : (D)+= DMNKL : P (D)+ no redundante

• D M : (D)+= DPKL : M (D)+ no redundante

• L D : (L)+= L : D (L)+ no redundante

• PR S : (PR)+= PR : S (PR)+ no redundante

• PQR T : (PQR)+= PQRS : T (PQR)+ no redundante

• D K : (D)+= DLPMN : K (D)+ no redundante

• D L : (D)+= DPMNK : L (D)+ no redundante

DF(3) = AB C, A E, A G, E G, F D, F J, G D, G I, DM N, DM P,

D M, L D, PR S, PQR T, D K, D LSigue…

29/11/2014 30Bases de Datos I - Mauricio E. Fernández N

29/11/2014

16

Algoritmo de Síntesis de BernsteinDF* = AB C, A E, A G, E G, F D, F J, G D, G I,

DM N, DM P, PR S, PQR T, D M, D K, D L, L D

2. Dividimos DF* en particiones con igual determinante

P1 : {AB C}

P2 : {A E, A G}

P3 : {E G}

P4 : {F D, F J}

P5 : {G D, G I}

P6 : {DM N, DM P}

P7 : {PR S}

P8 : {PQR T}

P9 : {D M, D K, D L, L D }

3. Creamos una Relación por cada partición Pi : Llave primaria el

determinante y atributos el resto de la dependencia funcional

Sigue…

29/11/2014 31Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de Bernstein

4. Si existen atributos que NO son determinantes ni implicados en DF*, se forma Esquema sin dependencias funcionales

No aplica. No existen atributos que NO sean determinantes ni implicados en

DF*

Relación Pk Ak DF

R1 : {ABC} AB C {AB → C}

R2 : {AEG} A EG {A → E, A → G}

R3 : {EG} E G {E → G}

R4 : {FDJ} F DJ {F → D, F → J}

R5 : {GDI} G DI {G → D, G → I}

R6 : {DMNP} DM NP {DM N, DM P }

R7 : {PRS} PR S {PR → S}

R8 : {PQRT} PQR T {PQR → T}

R9 : {DMKL} D MKL {D → M, D → K, D → L, L → D }

29/11/2014 32Bases de Datos I - Mauricio E. Fernández N

29/11/2014

17

Algoritmo de Síntesis de BernsteinEjemplo 2:

Dados los atributos A = cc, nombre, apellido, dirección, ciudad, codPostal,

departamento, pais, aficion, tipoAfición, grado , y

DF = (dirección , ciudad) codPostal, codPostal ciudad,

ciudad (departamento, pais), departamento pais,

cc (nombre, apellido, direccion), cc (ciudad, codPostal, departamento, pais),

(nombre, apellido) (cc, codPostal), (cc, aficion) (tipoAfición, grado),

aficion tipoAfición

1. Se busca recubrimiento mínimo para DFa) Segundos miembros simples:

DF(1) = (dirección, ciudad) codPostal, codPostal ciudad,

ciudad departamento, ciudad pais, departamento pais,

cc nombre, cc apellido, cc direccion, cc ciudad, cc codPostal,

cc departamento, cc pais, (nombre, apellido) cc,

(nombre, apellido) codPostal,

(cc, aficion) tipoAfición, (cc, aficion) grado, aficion tipoAfición Sigue…

29/11/2014 33Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de Bernsteinb) Eliminar atributos extraños: • (dirección, ciudad) codPostal

Bi = dirección : ciudad+=departamento, país, ciudad dirección No extraño

Bi = ciudad : dirección+=dirección ciudad No extraño

• (nombre, apellido) cc

Bi = nombre : apellido+=apellido nombre No extraño

Bi = apellido : nombre+=nombre apellido No extraño

• (nombre, apellido) codPostal

Bi = nombre : apellido+=apellido nombre No extraño

Bi = apellido : nombre+=nombre apellido No extraño

• (cc, aficion) tipoAfición

Bi = cc: aficion+=afición, tipoAficion cc Si extraño: aficiontipoAfición (ya existe)

• (cc, aficion) grado

Bi = cc : aficion+=afición, tipoAficion cc No extraño

Bi = aficion : cc+=cc, nombre, apellido, dirección, ciudad, departamento, país,

direccion, codPostal afición No extraño

Sigue…

29/11/2014 34Bases de Datos I - Mauricio E. Fernández N

29/11/2014

18

Algoritmo de Síntesis de BernsteinDF(2) = (dirección, ciudad) codPostal, codPostal ciudad,

ciudad departamento, ciudad pais, departamento pais, cc nombre, cc apellido, cc direccion, cc ciudad, cc codPostal, cc departamento, cc pais, (nombre, apellido) cc, (nombre, apellido) Postal, (cc, aficion) grado, aficion tipoAfición

c) Eliminar dependencias redundantes: • (dirección, ciudad) codPostal :

(dirección, ciudad)+= dirección, ciudad, departamento, pais no redundante

• codPostal ciudad : (codPostal )+= codPostal no redundante

• ciudad departamento : (ciudad)+= ciudad, pais no redundante

• ciudad pais : (ciudad)+= ciudad, departamento, país redundante se elimina

• departamento pais : (departamento )+= departamento no redundante

• cc nombre : (cc)+= cc,apellido,direccion,codPostal,departamento,país,ciudad

no redundante

• cc apellido : (cc)+= cc,nombre,apellido,direccion,ciudad,codPostal, departamento, país

no redundante

• cc direccion : (cc)+= cc, nombre, apellido,codPostal,ciudad,departamento,país

no redundanteSigue…

29/11/2014 35Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de Bernstein• cc departamento :

(cc)+= cc,nombre,apellido,direccion,codPostal,ciudad,departamento,país Si redundante se elimina

• cc país : (cc)+= cc,nombre,apellido,direccion,ciudad,codPostal, departamento, país

Si redundante se elimina• (nombre, apellido) cc :

(nombre, apellido)+= nombre,apellido,codPostal,ciudad,departamento,país, no redundante

• (nombre, apellido) codPostal : (nombre, apellido)+= nombre,apellido,cc,direccion,codPostal,ciudad,departamento,país

Si redundante se elimina• (cc, aficion) grado :

(cc, aficion)+= cc,aficion,nombre,apellido,direccion, codPostal,ciudad,departamento,país,tipoAfición no redundante

• aficion tipoAficion : (aficion)+= aficion no redundante

DF(3) = (dirección, ciudad) codPostal, codPostal ciudad, ciudad departamento,

departamento pais, cc nombre, cc apellido, cc direccion, cc codPostal,

(nombre, apellido) cc, (cc, aficion) grado, aficion tipoAfición

Sigue…

29/11/2014 36Bases de Datos I - Mauricio E. Fernández N

29/11/2014

19

Algoritmo de Síntesis de BernsteinDF* = (dirección, ciudad) codPostal, codPostal ciudad, ciudad departamento,

departamento pais, cc nombre, cc apellido, cc direccion, cc codPostal, (nombre, apellido) cc, (cc, aficion) grado, aficion tipoAfición

2. Dividimos DF* en particiones con igual determinanteDebemos partir DF en tablas, tales que todas las dependencias con el mismo

lado izquierdo estén en una tabla:

NOTA: Las tablas creadas en este paso deben entregar una solución en 3FN, pero no necesariamente minimal.

P1 : {(dirección, ciudad) codPostal}

P2 : {codPostal ciudad}

P3 : {ciudad departamento}

P4 : {departamento pais}

P5 : {cc (nombre, apellido), cc direccion, cc codPostal }

P6 : {(cc, aficion) grado}

P7 : {aficion tipoAfición }

Sigue…

29/11/2014 37Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Síntesis de Bernstein3. Creamos una Relación por cada partición Pi : Llave primaria el

determinante y atributos el resto de la dependencia funcional

4. Si existen atributos que NO son determinantes ni implicados en DF*, se forma Esquema sin dependencias funcionales

No aplica. No existen atributos que NO sean determinantes ni implicados en

DF*

Relación Pk Ak DF

R1 : {direccion, ciudad, codPostal}

ciudad, dirección

codPostal (dirección, ciudad) → codPostal,

R2 : {ciudad, codPostal} codPostal, ciudad codPostal → ciudad

R3 : {ciudad, departamento} ciudad departamento Ciudad → departamento

R4 : {departamento, pais} departamento pais Departamento → pais

R5 : {cc, nombre, apellido, direccion, codPostal}

ccnombre, apellido,

direccion, codPostalcc → (nombre, apellido), cc → direccion, codPostal

R6 : {cc, aficion, grado} cc, aficion grado {(cc, aficion) → grado}

R7 : {aficion, tipoAfición} aficion tipoAfición {aficion → tipoAfición}

29/11/2014 38Bases de Datos I - Mauricio E. Fernández N

29/11/2014

20

Dependencias Multivaluadas

DMV: nombreEmp →→ nombProyecto, nombreEmp →→ nombFamiliar

Una dependencia multivaluada X →→ Y especificada sobre R, donde Xy Y son subconjuntos de R, especifica la siguiente restricción sobrecualquier relación r de R:

si existen las tuplas t1 y t2 en r tales que t1[X] = t2[X], entonces deben existirtambién dos tuplas t3 y t4 en r con las siguientes propiedades:

i) t1[X] = t2 [X] = t3[X] = t4[X]

ii) t1[Y] = t3[Y] y t2 [Y] = t4[Y]

iii) t3[R-(XY)] = t2[R-(XY)] y t1[R-(XY)] = t4[R-(XY)]

Silva Juan

Silva Y Ana

Silva Ana

Silva Y Juan

nombreEmp nombProyecto nombFamiliar

X

X

Empleado

29/11/2014 39Bases de Datos I - Mauricio E. Fernández N

Dependencias MultivaluadasSiempre que X→→Y se cumple en R, también se cumple

que X →→ { R-(XY) }. Donde R - (XY) es lo mismo que

R-(X ∪ Y) = Z Entonces X →→ Y implica X →→ Z, lo que se

puede escribir como X→→Y │ Z

Una DMV X→→Y en R se denomina DMV trivial si:

a) Y es un subconjunto de X O

b) X∪Y = R

Empleados se halla en BCFN porque no hay ninguna DF que

se cumpla en Empleados.

29/11/2014 40Bases de Datos I - Mauricio E. Fernández N

29/11/2014

21

Cuarta Forma Normal (4FN)La 4FN se viola cuando una relación tiene dependenciasmultivaluadas indeseables y que, por tanto, pueden usarsepara identificar y descomponer tales relaciones. Un esquemaR está en 4FN respecto a un conjunto de dependencias F si,para cada dependencia multivaluada NO TRIVIAL X→→ Y enF+, X es una superclave de R.

Empleados no esta en 4FN porque en las DMV no triviales:

nombreEmp →→ nombProyecto y

nombreEmp →→ nombFamiliar nombreEmp NO ES una superclave de Empleados.

Vemos la 4FN con el siguiente ejemplo:

29/11/2014 41Bases de Datos I - Mauricio E. Fernández N

Ejemplo de la 4FNnombreEmp nombProyecto nombFamiliar

Silva X Juan nombreEmp nombProyecto

Silva Y Ana Silva X

Silva X Ana Silva Y

Silva Y Juan Bravo W

Bravo W Jaime Bravo X

Bravo X Jaime Bravo Y

Bravo Y Jaime Bravo Z

Bravo Z Jaime

Bravo W Paola

Bravo X Paola nombreEmp nombFamiliar

Bravo Y Paola Silva Juan

Bravo Z Paola Silva Ana

Bravo W Iván Bravo Jaime

Bravo X Iván Bravo Paola

Bravo Y Iván Bravo Iván

Bravo Z Iván

ProyectoEmpleado

FamiliarEmpleado

Empleado

Empleados con tuplas adicionales

Proyección de Empleados sobreProyectosEmpleado y FamiliaresEmpleado

29/11/2014 42Bases de Datos I - Mauricio E. Fernández N

29/11/2014

22

Descomposición con Reunión sin Pérdida para Generar Relaciones 4FN

Siempre que se descompone un esquema R, en R1

= (X U Y)y R

2= (R – Y) con base en una DMV X→→ Y que se cumple

en R, la descomposición posee la propiedad LJ.

PROPIEDAD LJ

Los esquemas R1

y R2

forman una descomposición conreunión sin pérdida, si y solo si (R

1∩ R

2) →→ (R

1- R

2) (

o por simetría, si y solo si (R1

∩ R2) →→ (R

2- R

1) )

29/11/2014 43Bases de Datos I - Mauricio E. Fernández N

Algoritmo de Descomposición sinPérdida para Generar Relaciones

en 4FNHacer Z= { R } //Esquema que posiblemente no este en 4FN

MIENTRAS Haya una relación Q en Z que no este en 4FN DO {

IF Existe una DMV NO Trivial X→→ Y que viole la 4FN en Z {

Descomponer Z por dos esquemas (Z – Y) y

(X U Y); //Donde XY está en 4FN

ρ = ρ U Ri(XY);

Z = Z - Y;

}}

ρ= ρ U Z;

// fin

29/11/2014 44Bases de Datos I - Mauricio E. Fernández N

29/11/2014

23

Quinta Forma Normal (5FN)También llamada de Proyección-Unión (PJFN), se puededefinir así: Un esquema R está en 5FN respecto de un conjunto F de dependencias (funcionales, multivaluadas y de reunión) si, para cada dependencia de unión NO TRIVIAL DU(R

1, R

2,..., R

k) en F+, toda R

ies una superclave de R. Ej:

NomProveedor Componente NomProyectoSilva Perno Proy X

Silva Tuerca Proy Y

Aldana Perno Proy Y

Velasco Tuerca Proy Z

Aldana Clavo Proy X

Aldana Perno Proy X

Silva Perno Proy Y

Suministros

Su descomposición a la 5FN será:

29/11/2014 45Bases de Datos I - Mauricio E. Fernández N

Quinta Forma Normal (5FN)RelacionA RelacionB

NomProveedor Componente NomProveedor NomProyectoSilva Perno Silva Proy X

Silva Tuerca Silva Proy Y

Aldana Perno Aldana Proy Y

Aldana Clavo Aldana Proy X

Velasco Tuerca Velasco Proy Z

RelacionCComponente NomProyecto

Perno Proy X

Tuerca Proy Y

Perno Proy Y

Clavo Proy X

Tuerca Proy Z

29/11/2014 46Bases de Datos I - Mauricio E. Fernández N

29/11/2014

24

QUIZ #3Consideremos una base de datos de viajes por barco con los

siguientes atributos: N (nombre del barco), T (tipo de barco),

V (identificador del viaje), C (carga llevada por un barco en un

viaje), P (puerto) y D (día). Asumimos que un viaje consiste

de una secuencia de eventos donde un barco recoge una

carga y la entrega en el puerto siguiente. Un barco puede

visitar solo un puerto en un día.

Se adicionan las siguientes dependencias funcionales:

N → T, V → NC y ND → PV.

Hallar una descomposición en BCFN que cumpla la

propiedad LJ.

29/11/2014 47Bases de Datos I - Mauricio E. Fernández N