You are on page 1of 16

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Ej.1.Sea la relacin R = (A, B, C, D, E, F) y el conjunto de dependencias funcionales FD1: {ABD, BCD, ACE} FD2: {ABD, BCD, ACE, CA} FD3: {ABD, BACD, ACE, CB}

Cul es la clausura de A, B y C respecto de F1?


A+FD1? X0 = A X1 = ABD X2 = ABDC X3 = ABDCE X4 = ABDCE B+ FD1? X0 = B X1 = BCD X2 = BCD C+ FD1? X0 = C X1 = C Como X0 = X1, terminamos el algoritmo y tenemos que C+ FD1 = C por BCD Como X1 = X2, terminamos el algoritmo, y tenemos que B+ FD1 = BCD por ABD por BCD por ACE Como X3 = X4, terminamos el algoritmo, y tenemos que A+ FD1 = ABCDE

Notar que de lo anterior se desprende que ni A, ni B, ni C son superclaves de la relacin, ya que la clausura de ninguno de ellos es todo R. Pregunta: Si tenemos calculada X1+ y X2+... Podemos decir que (X1X2)+ = X1+ U X2+?

Son equivalentes FD1 y FD2?


(Equivalentes: FD1+ = FD2+) Hay que verificar que todas las DF de FD1 se infieren de FD2 (FD2 cubre a FD1) y que todas las de FD2 se infieren de FD1 (FD1 cubre a FD2). O lo que es lo mismo, que para cada DF XY de FD1, entonces Y pertenece a X+FD2, y que para cada DF XY de FD2, entonces Y pertenece a X+FD1. Para las dependencias que estn en la interseccin de FD1 y FD2 esto se cumple trivialmente slo queda por analizar las dependencias que no pertenecen a la interseccin.

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Como FD1 est incluido en FD2, entonces FD2 cubre a FD1. Para ver que todas las DF de FD2 se infieren de FD1, nos falta analizar la nica dependencia que pertenece a FD2-FD1: CA se infiere de FD1? O lo que es lo mismo A pertenece a C+ FD1? Como lo habamos calculado anteriormente, C+ FD1 = C. Como A no pertenece a C+ FD1, CA no se infiere de FD1 y por lo tanto FD1 no cubre a FD2. Por lo tanto, FD1 y FD2 no son equivalentes. (Notar que con encontrar una DF que no se infiera alcanza para decir que los conjuntos de DF no son equivalentes, no hace falta encontrar todas las que no se infieran)

Son equivalentes FD2 y FD3?


Procediendo igual que antes, hay que verificar que todas las DF de FD3-FD2 se infieren de FD2 y que todas las de FD2-FD3 se infieren de FD3. FD2-FD3: {CA} FD3-FD2: {BA, CB} FD2-FD3 se infiere de FD3? Hay que verificar CA respecto de FD3 Recordemos que FD3: {ABD, BACD, ACE, CB} A est en C+FD3? X0 = C X1 = CB X2 = CBAD Luego, FD2-FD3 se infiere de FD3. FD3-FD2 se infiere de FD2? Hay que verificar BA y CB respecto de FD2 Recordemos que FD2: {ABD, BCD, ACE, CA} A est en B+FD2? X0 = B X1 = BCD X2 = BCDA por BCD por CA por CB por BACD

Podemos detener el clculo ac, ya que encontramos A en C+ FD3 (CA pertenece a FD3+)

Podemos detener el clculo ac, ya que encontramos A en B+ FD2 B est en C+FD2? X0 = C X1 = CA X2 = CABD por CA por ABD Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Podemos detener el clculo ac, ya que encontramos B en C+ FD2 Luego, FD3-FD2 se infiere de FD2. Por lo tanto, FD2 y FD3 son equivalentes.

Cul es el cubrimiento minimal de FD1?


El algoritmo dice: 1. Descomponer todas las DF en dependencias normalizadas (lado derecho con un nico atributo) 2. Eliminar todos los atributos redundantes del lado izquierdo. 3. Eliminar todas las dependencias funcionales redundantes. Recordemos FD1: {ABD, BCD, ACE}

Paso 1: Dejar todos los lados derechos con un nico atributo Hay que descomponer dos DF: ABD, BCD. Queda as: CubMin = {AB, AD, BC, BD, ACE} Paso 2: Eliminar todos los atributos redundantes del lado izquierdo. Hay que analizar solamente la DF que tiene lado izquierdo compuesto: ACE C es redundante en ACE? Hay que verificar si E est en A+FD1 Como habamos calculado antes, A+ FD1 = ABCDE. Como E est en A+FD1, entonces C es redundante en ACE y podemos reemplazar esta DF por AE Si el primer atributo que analizamos no fuese redundante, hay que seguir analizando uno a uno el resto de los atributos del lado izquierdo hasta encontrar uno redundante y proceder como hicimos ac. Si no encontramos ningn atributo redundante del lado izquierdo, la dependencia tiene que quedar sin modificaciones en CubMin. Ojo, podra pasar que ms de un atributo sea redundante. En ese caso hay que quitar slo uno de ellos y volver a verificar de nuevo la redundancia para esa dependencia (si el lado izquierdo qued compuesto). CubMin = {AB, AD, BC, BD, AE} Paso 3: Eliminar todas las dependencias funcionales redundantes. Hay que revisar una por una todas las DF. En caso de que una sea redundante, se la elimina de CubMin y se sigue analizando el resto tomando como referencia el nuevo CubMin. AB es redundante en CubMin? Hay que verificar si B est en A+CubMin-{AB} Tenemos que CubMin - {AB} = {AD, BC, BD, AE}. A+CubMin-{AB} = ADE. Luego AB no es redundante. CubMin queda igual. AD es redundante en CubMin? Hay que verificar si D est en A+CubMin-{AD}

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Tenemos que CubMin - {AD} = {AB, BC, BD, AE}. A+CubMin-{AD} = ABECD. Luego AD es redundante. La eliminamos de CubMin. El nuevo CubMin queda {AB, BC, BD, AE} BC es redundante en CubMin? Hay que verificar si C est en B+CubMin-{BC} Tenemos que CubMin - {BC} = {AB, BD, AE}. B+CubMin-{BC} = BD. Luego BC no es redundante. CubMin queda igual. BD es redundante en CubMin? Hay que verificar si D est en B+CubMin-{BD} Tenemos que CubMin - {BD} = {AB, BC, AE}. B+CubMin-{BD} = BC. Luego BD no es redundante. CubMin queda igual. AE es redundante en CubMin? Hay que verificar si E est en A+CubMin-{AE} Tenemos que CubMin - {AE} = {AB, BC, BD}. A+CubMin-{AE} = ABCD. Luego AE no es redundante. CubMin queda igual. No quedan ms DF por analizar. Por lo tanto, tenemos que {AB, BC, BD, AE} es un cubrimiento minimal de FD1 Comparando los diagramas, se puede apreciar intuitivamente lo que pas

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Muy importante!!! No alterar el orden de los pasos en el algoritmo, podra no alcanzarse un cubrimiento minimal Por ejemplo, supongamos que tenemos R=ABCD y F = {ABC, ABCD y DC} y apliquemos el algoritmo intercambiando los pasos 2 y 3 (no lo haremos en detalle, slo mostramos aspectos relevantes queda como ejercicio verificar las afirmaciones de este ejemplo) Paso 1.- Como todas las partes derechas tienen un nico elemento, FMin = F Paso 3.- Eliminar dependencias redundantes No hay. FMin no cambia Paso 2.- Eliminamos atributos redundantes de partes izquierdas En ABC no hay atributos redundantes En ABCD, el atributo C es redundante (verificar!), por lo cual lo eliminamos, dejando la dependencia como ABD DC trivialmente no tiene atributos redundantes en la parte izquierda

Habiendo realizado los 3 pasos, el conjunto de dependencias obtenido es {ABC, ABD, DC}, y claramente no es un cubrimiento minimal, ya que la dependencia ABC es redundante !!! Ejercicios para pensar: Calcular un cubrimiento minimal de FD2 Se pueden obtener distintos cubrimientos minimales aplicando el algoritmo? (Pista: tomar F={AB, BA, ABC}) Sean FD4 = {AB, BC, CA} y FD5 = {AC, CB, BA}. Es FD5 en cubrimiento minimal de FD4?

Es ACF una clave de la relacin R respecto de FD1?


Para ello, debera cumplirse que ACF es superclave y adems es minimal. Veamos si es superclave Hay que verificar si ACF+ FD1=R Recordemos que FD1: {ABD, BCD, ACE} ACF+ FD1? X0 = ACF X1 = ACFBDE por ABC y ADE Como X1 = R, entonces ACF es superclave Veamos si es minimal Hay que verificar minimal que no existe ningn subconjunto estricto de ADF que determine funcionalmente a todo R. Probemos por ejemplo con AF AF+FD1? X0 = AF X1 = AFBD X2 = AFBDC X3 = AFBDCE por ABD por BCD por ACE

Como X3 = R, entonces AF es superclave

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Como ACF es superclave pero no es minimal, entonces podemos afirmar que ADF no es una clave de la relacin R respecto de FD1 Si quisiramos encontrar todas las claves, podramos probar este procedimiento con las diferentes combinaciones de atributos, aunque claramente no sera eficiente Ms adelante veremos el algoritmo para encontrar claves de una relacin respecto de un conjunto de dependencias funcionales, que evita probar con todas las combinaciones.

La descomposicin de R en R1=(A, D, E, F) y R2= (B, C, D) es SPI respecto de FD1?


(Repasando SPI = ) Recordemos que FD1: {ABD, BCD, ACE} Como la descomposicin es binaria, para saber si es SPI basta con verificar si R1R2 R1-R2 o R1R2 R2-R1. Si alguna de las dos dependencias se cumple, entonces es SPI. Instanciando, tenemos que R1R2 = D, R1-R2 = AEF y R2-R1=BC. Como D+FD1=D, vemos que no se cumplen ni DAEF ni DBC . Por lo tanto, esta descomposicin no es SPI. Tarea: encontrar un ejemplo que permita mostrar que la descomposicin anterior no es SPI.

La descomposicin de R en R1=(A, E, F) y R2= (A, B, C, D) es SPI respecto de FD1?


Recordemos que FD1: {ABD, BCD, ACE} Igual que antes, basta con verificar si R1R2 R1-R2 o R1R2 R2-R1. Si alguna de las dos dependencias se cumple, entonces es SPI. Instanciando, tenemos que R1R2 = A, R1-R2 = EF y R2-R1=BCD. Como A+FD1=ABCDE, vemos que se cumple que ABCD. Por lo tanto, esta descomposicin es SPI.

La descomposicin de R en R1=(A, E, F), R2= (A, B, C) y R3= (B, D) es SPI respecto de FD1?
Recordemos que FD1: {ABD, BCD, ACE} Al ser una descomposicin en ms de dos relaciones, tenemos que aplicar el Algoritmo del Tableaux. Se arma una matriz con las relaciones en las filas y los atributos en las columnas. Cada elemento (i,j) tendr valor aj si el atributo de la columna j est en la relacin de la fila i, En caso contrario, tendr valor bij. Luego se realizan iteraciones aplicando las siguientes transformaciones: Para cada DF XY, si varias filas tienen idntico valor en la columnas correspondientes a los atributos X, igualar para esas filas las columnas correspondientes a los atributos Y, de acuerdo a lo siguiente: si alguno de ellos es aj , todos los de esa columna quedarn con valor aj para las filas mencionadas. Si ninguno es aj , todos se igualarn con alguno de los bij. La iteracin termina cuando se pas por todas las DF, o cuando alguna fila tiene todos valores ai. Si luego de la iteracin no se logr esta condicin se deben volver a realizar iteraciones hasta encontrar todos valores ai en una fila o hasta que una iteracin completa no modifique la matriz. Si se encontr una fila con ai, la descomposcin es SPI, si no, no lo es.

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Apliquemos el algoritmo: Inicio:


R1 = AEF R2 = ABC

A a1 a1 b31

B b12 a2 a2

C b13 a3 b33

D b14 b24 a4

E a5 b25 b35

F a6 b26 b36

R3 = BD Iteracin 1: ABD
R1 = AEF R2 = ABC

A a1 a1 b31 A
R1 = AEF R2 = ABC

B a2 a2 a2 B a2 a2 a2

C b13 a3 b33 C a3 a3 a3

D b14 b14 a4 D a4 a4 a4

E a5 b25 b35 E a5 b25 b35

F a6 b26 b36 F a6 b26 b36

R3 = BD BCD

a1 a1 b31

R3 = BD ACE

No hace falta seguir, la primer fila tiene todos ai !! Por lo tanto, la descomposicin es SPI

Pregunta: si hubisemos elegido las DF en otro orden (por ej a la inversa) hubisemos obtenido el mismo resultado? Hubiese podido terminar el algoritmo en la primera iteracin?

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

La descomposicin de R en R1=(A, B,C, D) y R2= (A, E, F) es SPDF respecto de FD1?


(Repasando SPDF = ) El algoritmo para determinar si una descomposicin es SPDF es el siguiente: Para toda df XY en el conjunto DF hacer Si todos los atributos de df pertenecen a una de las relaciones ri , esa dependencia se conserva trivialmente. Si no pasa lo anterior, verificar si df se conserva mediante el siguiente mtodo Z := X Repetir Para cada relacin Ri Z := Z U ((ZRi)+ Ri) Hasta que Z no cambie luego de una iteracin o hasta que Z incluya a Y. Si Z incluye a Y, la dependencia se conserva. Vemoslo en el ejercicio Recordemos que R1 = (A, B, C, D), R2 = (A, E, F) y FD1: {ABD, BCD, ACE} Las dependencias ABD y BCD se preservan trivialmente ya que estn incluidas en r1 Resta verificar la dependencia ACE Aplicando el algoritmo queda Z:= AC Iteracin 1 (tomando R1) Z = AC U ((AC ABCD)+ ABCD) = AC U ( AC+ ABCD) = AC U ( ACEBD * ABCD) = AC U ABCD = ABCD (tomando R2) Z = ABCD U ((ABCD AEF)+ AEF) = ABCD U ( A+ AEF) = ABCD U ( ABDCE AEF) = ABCD U AE = ABCDE Como Z incluye a E, la dependencia se conserva, (y el algoritmo termina) Como todas las dependencias se conservan , la descomposicin es SPDF

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Pregunta si una descomposicin es SPI necesariamente tiene que ser SPDF? y a la inversa? Veamos los siguientes ejemplos Sea R = (ABC), F={AB}. La descomposicin R1=(AB) y R2=(BC), es SPDF pero no es SPI. Sea R = (ABC), F={ABC, CA}. La descomposicin R1=(BC) y R2=(CA), es SPI pero no es SPDF. Queda como ejercicio la verificacin de las afirmaciones anteriores.

Cuales son todas las claves de la relacin R respecto de FD1?


Algoritmo para bsqueda de todas las claves. Paso 1.- Obtener el conjunto S de atributos que no figuran en un lado derecho de una DF Paso 2.- Verificar si ese conjunto es superclave. Si lo es, es clave UNICA! Paso3.- Si no lo era, agregar paulatinamente a S todas las combinaciones posibles de subconjuntos de R-S (todos los de cardinalidad 1, luego de los de 2, etc) (llammoslo S) y verificar si cada uno de esos conjuntos es superclave. En este paso se deben obviar todos aquellos S que contienen una superclave ya calculada, ya que no van a ser minimales. Todos los conjuntos de atributos obtenidos que determinaban a todo R son las claves. Vemoslo en el ejercicio Recordemos que R = (A, B, C, D, E, F) y FD1: {ABD, BCD, ACE} S = AF AF+FD1? AF+ = AFBDCE. Como es igual a R, es CLAVE UNICA !!! (y el algoritmo termina)

Cuales son todas las claves de la relacin R respecto de FD2?


Recordemos que R = (A, B, C, D, E, F) y FD2: {ABD, BCD, ACE, CA} S=F F+FD1? FA+FD4? FB+FD4? FC+FD4? FD+FD4? FE+FD4? F+ = F. Como no es igual a R, no es clave FA+ = FABDCE. Como es igual a R, es clave !! Igual hay que seguir buscando ms FB+ = FBCDAE Como es igual a R, es clave !! Igual hay que seguir buscando ms FC+ = FCABDE Como es igual a R, es clave !! Igual hay que seguir buscando ms FD+ = FD. Como no es R, no es clave FE+ = FE. Como no es R, no es clave

Verificando con 1 atributo adicional

Verificando con un atributo adicional sobre los anteriores que no eran clave. Notar que no tiene sentido agregarle A, B o C a FD o FE, ya que sera superclave (no minimal) slo tenemos que considerar entonces a D y F (cuando corresponda)

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

FDE+FD4?

FDE+ = FDE. Como no es R, no es clave

El caso faltante FED en realidad es el mismo que FDE, ya que se trata de conjuntos. Al no haber ms combinaciones por probar, el algoritmo termina. Las claves son FA, FB y FC IMPORTANTE! Un error comn es pensar que una clave minimal es la clave que tiene menos atributos es decir que si por ej, tengo una clave minimal de 2 atributos, las claves de 3 atributos no son minimales este razonamiento no es correcto!!! Puede haber claves minimales con diferente cantidad de atributos para una misma relacin y conjunto de dependencias funcionales. Una clave es minimal si ningn subconjunto de ella es clave (y no tiene nada que ver con el tamao de las otras claves). Por ejemplo, supongamos que tenemos R=ABCD y F={ABCD, CAB} Calculemos sus claves aplicando el algoritmo: Como todos los atributos figuran en la parte de alguna dependencia, partimos de S=vaco Seguimos agregando atributos de a 1, 2, etc y vemos si son clave A+F= A. B+F = B. C+F=CABD. D+F=D. A no es clave B no es clave C es clave! D no es clave

Por lo que decamos antes, aqu no hay que frenar aunque hayamos encontrado una clave de 1 atributo, tenemos que seguir buscando si hay claves con ms atributos, siguiendo el algoritmo AB+F=ABCD. AD F=AD. BD F=BD.
+ +

AB Es clave! AD no es clave BD no es clave

No se puede seguir ms Si quisiramos agregarle atributos a AD o BD, tendramos superclaves Por lo tanto, todas las claves de R respecto de F son C y AB

10

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Ej.2.Sea la relacin R2 = (A, B, C, D) y los siguientes conjuntos de dependencias funcionales: FD4 = {ABC, CA, CD} FD5 = {ABC, CD} FD6 = {ABC, ABD, CA} FD7 = {ABD, AC, CA} FD8 = {ABC, ABD}

En qu forma normal est R2 respecto de FD4?


Recordemos Sean X un conjunto de atributos incluido en R y A un atributo simple perteneciente a R BCNF: En toda dependencia no trivial XA perteneciente a F, el lado izquierdo es siempre una superclave. 3FN: En toda dependencia no trivial XA perteneciente a F, el lado izquierdo es siempre una superclave o Y es atributo primo. 2FN: Ningn atributo no primo depende parcialmente de alguna clave. Vayamos al ejercicio Tenamos que FD4 = {ABC, CA, CD} Calculemos la clave arrancamos con B, ya que es el nico atributo que no figura de un lado derecho B+FD4 = B no es clave Agregando 1 atributo BA+FD4 = BACD por lo tanto BA es clave BC+FD4 = BCAD por lo tanto BC es clave BD+FD4 = BD no es clave No podemos agregar ms atributos, (agregando A o C se convertira siempre en superclave) Las claves respecto de FD4 son BA y BC Los atributos primos son A, B y C, en tanto que D es el nico atributo no primo. Veamos ahora la forma normal: Est en BCNF? No, porque CA y CD violan BCNF, ya que C no es superclave Est en 3FN? No, porque CD viola 3FN, ya que C no es superclave y D no es primo Est en 2FN? No, porque CD viola 2FN, ya que D no es primo y depende parcialmente de la clave BC. Por lo tanto, la relacin R2 est en 1FN respecto de FD4

11

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

En qu forma normal est R2 respecto de FD5?


Recordemos que FD5 = {ABC, CD} Calculemos la clave arrancamos con AB, ya que son los atributos que no figuran de un lado derecho AB+FD5 = ABCD Por lo tanto AB es CLAVE UNICA (la unicidad se da porque ningn atributo de la clave figura del lado derecho de un dependencia Los atributos primos son A y B, en tanto que los no primos son C y D Veamos ahora la forma normal: Est en BCNF? No, porque CD viola BCNF, ya que C no es superclave Est en 3FN? No, porque CD viola 3FN, ya que C no es superclave y D no es primo Est en 2FN? S, porque tanto C como D (los atributos no primos) dependen totalmente de todas las claves (en este caso hay clave nica) Por lo tanto, la relacin R2 est en 2FN respecto de FD5

En qu forma normal est R2 respecto de FD6?


Recordemos que FD6 = {ABC, ABD, CA} Calculemos la clave arrancamos con B, ya que es el atributo que no figura de un lado derecho B+FD6 = B Por lo tanto no es clave Agregando 1 atributo BA+FD4 = BACD por lo tanto BA es clave BC+FD4 = BCAD por lo tanto BC es clave BD+FD4 = BD no es clave No podemos agregar ms atributos, (agregando A o C se convertirta siempre en superclave) Las claves respecto de FD4 son BA y BC Los atributos primos son A, B y C, en tanto que D es el nico atributo no primo Veamos ahora la forma normal: Est en BCNF? No, porque CA viola BCNF, ya que C no es superclave Est en 3FN? S, porque ABD (la nica DF con un atributo no primo del lado derecho) tiene una superclave en el lado izquierdo. Esto es vlido para F+ Por lo tanto, la relacin R2 est en 3FN respecto de FD6

12

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

En qu forma normal est R2 respecto de FD7?


Recordemos que FD7 = {ABD, AC, CA} Calculemos la clave arrancamos con B, ya que es el atributo que no figura de un lado derecho B+FD6 = B Por lo tanto no es clave Agregando 1 atributo BA+FD4 = BACD por lo tanto BA es clave BC+FD4 = BCAD por lo tanto BC es clave BD+FD4 = BD no es clave No podemos agregar ms atributos, (agregando A o C se convertirta siempre en superclave Las claves respecto de FD7 son BA y BC Los atributos primos son A, B y C, en tanto que D es el nico atributo no primo Veamos ahora la forma normal: Recordemos que FD7 = {ABD, AC, CA} Est en BCNF? No, porque CA y AC violan BCNF, ya que ni C ni A son superclaves Est en 3FN? S, porque ABD (la nica DF con trivial on un atributo no primo del lado derecho) tiene una superclave en el lado izquierdo. Esto es vlido para F+ Por lo tanto, la relacin R2 est en 3FN respecto de FD7

En qu forma normal est R2 respecto de FD8?


Recordemos que FD8 = {ABC, ABD} Calculemos la clave arrancamos con AB, ya que es el atributo que no figura de un lado derecho AB+FD8 = ABCD Por lo tanto AB es CLAVE UNICA (la unicidad se da porque ningn atributo de la clave figura del lado derecho de un dependencia Los atributos primos son A y B, en tanto que los no primos son C y D Veamos ahora la forma normal: Est en BCNF? S, porque todas las DF tienen una superclave del lado izquierdo

13

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Ej.3.Sea la relacin R3 = (A, B, C, D, E, F, G) y el siguiente conjunto de dependencias funcionales: FD9: {ABD, BCD, ACE, BFG, GB }.

En qu forma normal est R3 respecto de FD9?


Para esto calcularemos la clave y un cubrimiento minimal (esto ltimo nos permite trabajar a partir de F en lugar de F+). La clave de este esquema respecto de FD9 es AF (clave nica). Los atributos primos son AF y los no primos son BCDEG. Se puede apreciar fcilmente que no est en BCNF ni en 3FN. Igualmente lo veremos en forma detallada. Si calculamos el cubrimiento minimal obtenemos: FD9min: {AB, AE, BC, BD, BFG, GB }. Est en BCNF? No, porque todas las df (son todas no triviales) violan BCNF, ya que no tienen superclave del lado izquierdo. Est en 3FN? No, porque todas las df (son todas no triviales) violan BCNF, ya que no tienen superclave del lado izquierdo ni lado derecho primo. Est en 2FN? No, ya que los atributos B, C, D y E no son primos y dependen parcialmente de la clave AF. Por lo tanto, la relacin R3 est en 1FN respecto de FD9.

Calcular para R3 y DF9 una descomposicin en 3FN SPI SPDF.


El algoritmo es el siguiente: Precondicin: la relacin no est ya en 3FN. 1.- Calcular las claves y un cubrimiento minimal del conjunto de DF (CubMin). 2.- Para cada DF de CubMin, crear un esquema de relacin conteniendo a todos los atributos involucrados en ella. 3.- Si ninguna clave del esquema est en una relacin, agregar un nuevo esquema con los atributos de una de las claves. 4.- Si las df de dos relaciones tienen idntica parte izquierda, unificar esas dos relaciones. Lo mismo se hace si una relacin est incluida en otra. La descomposicin resultante est en 3FN y es SPI y SPDF Vamos al ejercicio Como vimos, la nica clave es AF, y {AB, AE, BC, BD, BFG, GB } es un cubrimiento minimal de FD9. Creamos un esquema de relacin por cada df, a saber AB, AE, BC, BD, BFG y GB.

14

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

Como la clave AF no est en ningn esquema, agregamos uno nuevo que la contenga. Tenemos entonces AB, AE, BC, BD, BFG, GB y AF. Como las dependencias AB y AC tienen la misma parte izquierda, se unifican AB y AE en ABE. Como las dependencias BC y BD tienen la misma parte izquierda, se unifican BC y BD en BCD. Como GB est incluido en BFG, se unifican en BFG. Por lo tanto, nuestra descomposicin 3FN SPI y SPDF queda {ABE, BCD, BFG, AF}

Calcular para R3 y DF9 una descomposicin en BCNF SPI.


El algoritmo es el siguiente: Precondicin: la relacin no est ya en BCNF. 1.- Calcular las claves y un cubrimiento minimal del conjunto de DF (Esto ltimo no es indispensable, pero simplifica el trabajo facilitando el clculo de las DFs que se proyectan sobre los esquemas). 2.- Elegir una DF que viole BCNF, y generar una nueva relacin con todos los atributos de esa DF. Quitar de la relacin original los atributos que estaban en la parte derecha de la DF. Esta descomposicin en SPI por la regla de descomposicin binaria. 3.- Proyectar las DF de F+ sobre las dos relaciones generadas. Si todos los atributos de una DF estn en una relacin, se proyecta trivialmente sobre ella. Como partimos de un cubrimiento minimal, para verificar la proyeccin de F+ alcanza con aplicar transitividad y pseudotransitividad sobre las DF del cubrimiento minimal. 4.- Si alguna de las dos relaciones no qued en BCNF, se debe proseguir con este algoritmo recursivamente hasta que todas cumplan BCNF. Una heurstica interesante es elegir las DF cuyo lado derecho no figure en ningn lado izquierdo de otra DF (o figure en la menor cantidad posible). Esto reduce la necesidad de aplicar transitividad o pseudotransitividad. Tambin es interesante generar esquemas de dos atributos, ya que estos estn siempre en BCNF. Vamos al ejercicio

15

Sergio DArrigo

Clases Prcticas Base de Datos DF y FN 10 y 17/09/2010.

2C.2010

A partir de lo desarrollado, obtenemos una descomposicin BCNF SPI con los siguientes esquemas {AE, BC, BD, AB, BG y BF}. Con la descomposicin anterior podramos dejarlo (de hecho, en la resolucin de ejercicios no exigiremos ms pasos). De todos modos, al igual que en el algoritmo de sntesis, podemos fusionar relaciones resultantes que tengan proyectada dependencias con idntico lado izquierdo. Aplicando lo antedicho, podramos unificar AE con AB, y tambin BC con BD. Con esta mejora, la descomposicin BCNF SPI queda {ABE, BCD, AF, BG, FG}. Comentario: esto es muy importante hacerlo en casos reales, ya que la descomposicin resultante del algoritmo en general estar muy fragmentada, como consecuencia de basarnos en dependencias que siempre tienen un nico elemento en el lado derecho (por pertenecer a un cubrimiento minimal). Notar que si cuando tenamos la relacin ABFG hubisemos elegido para descomponer segn AB, hubiesen quedado los esquemas AB y AFG. Sobre el primero se proyectaba AB, pero BFG y GB se perdan. De todos modos, deberamos proyectar una nueva DF (AFG) sobre AFG , que se obtena aplicando pseudotransitividad sobre AB y BFG. Igualmente no hubiese sido una buena eleccin, ya que nos haca perder dos DF.

16

Sergio DArrigo

You might also like