Sei sulla pagina 1di 24

29/11/2014

Dependencias Funcionales
Las dependencias funcionales son reglas independientes del
tiempo que verifican los atributos en un contexto determinado
DEFINICIN 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 Bases de Datos I - Mauricio E. Fernndez N 1

Dependencias Funcionales
Dependencias Transitivas
Sea la relacin 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 = y Z 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 Bases de Datos I - Mauricio E. Fernndez N 2

1
29/11/2014

Dependencias Funcionales
GRAFO DE DEPENDENCIAS FUNCIONALES
Es un diagrama (grafo) que representa el contexto semntico
observado en determinado universo, donde los nodos son atributos
y 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 nombre Nombre
ccNro pais ccNro Pais
ccNro ciudad ciudad
codProducto descripProd canti
codProducto color codProducto
descripProd
codProducto peso Color
(ccNro , codProducto canti peso

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 3

Axiomas de Armstrong
De un esquema R(A, DF) es posible deducir (o inferir) nuevas
dependencias funcionales. Las nuevas dependencias f que se
cumplen para cualquier extensin r de R, son consecuencia
lgica de DF.
1. REFLEXIVIDAD: Si X Y, entonces X Y
2. AUMENTATIVIDAD: Si X Y y W Z,
entonces XW YZ
3. TRANSITIVIDAD: Si X Y y Y Z entonces X Z
4. PSEUDOTRANSITIVIDAD: Si X Y y W Z,
entonces XW Z
5. UNION: Si X Y y X Z entonces X YZ
6. DESCOMPOSICION: Si X YZ, entonces X Y y X Z

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 4

2
29/11/2014

Enfoque de Descomposicin
El enfoque de descomposicin 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
relacin Universal U={A1, A2,, An} se denomina relacin universal y su
extensin, la instancia universal {R1, R2,, Rn} tendr relaciones tales
que cualquier tupla de una relacin puede obtenerse mediante una
proyeccin de la instancia universal.
Se parte de la R.U. y aplica las reglas de descomposicin para cada
Forma 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 estn 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 Bases de Datos I - Mauricio E. Fernndez N 5

Dependencias Funcionales
Primera Forma Normal (1FN)
Un esquema R(A, DF) est en primera forma normal cuando todas
sus 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 sus
atributos no-principales tienen dep. funcional total respecto de cada
una de las claves. (No existen dependencias parciales).

Ejemplo: La relacin Publicacion (artculo, revista, nmeroRevista,


pgina, editorial) y las siguientes dependencias:
Artculo, Revista, Nmero-revista Pgina //Clave
Revista Editorial. // No esta en 2FN

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 6

3
29/11/2014

Las Formas Normales


Forma Normal Boyce Codd (BCFN)
Un esquema R (A, DF) se dice que est en la forma normal
Boyce-Codd (FNBC) si siempre que X A se satisface en R y
A 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 una


clave determina funcionalmente uno o ms atributos diferentes (una
tabla est en FNBC si est en 3FN y los nicos determinantes son
claves candidatas.).

La forma normal Boyce-Codd aborda el tratamiento de redundancias


en casos de claves alternativas, acotando el umbral de la
descomposicin de relaciones sin prdida de dependencias.
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 7

Las Formas Normales


Tercera Forma Normal (3FN)
DEFINICION: Se dice que un atributo A en un esquema R es
un 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 siempre
que X A se satisface en R y A no est en X, entonces X es
una superclave para R, (o A es primo). De otra forma, ningn
atributo no primo depende transitivamente de ninguna clave.
La 3FN evitar redundancias por mezcla de propiedades de dos
entidades en la misma relacin cuando existen dependencias
transitivas.

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 8

4
29/11/2014

Ejemplo de Normalizacin
ORDEN DE COMPRA
Cliente Nro: 001964 Nmero Orden: 00012345
Nombre: Marcos Caballero Fecha Orden: 14-Nov-2014
Direccin: Carrera 24 #9C-48

Nro Producto Descripcin 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

OrdenCompra
gcgfcs (orderNro, fechaOrd, clienteNo, nombreCli,
direccionCli, (prodNno, descripPrd, precioUnPrd,
cantidadOrdPrd, valorOrdPrd)*, totalOrd)
* = grupos de datos que se repiten

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 9

Ejemplo de Normalizacin
Primera Forma Normal (1FN)
Definicin: Una relacin est (o satisface) la 1NF, sii, todos sus atributos
son atmicos.
Entonces OrdenCompra no esta en 1FN pues tiene datos que se repiten

Pasos para convertir una relacin en 1NF:


Crea una nueva relacin con el grupo que se repite
Aadir a la nueva relacin la clave primaria de la relacin que la contena
Darle un nombre a la nueva entidad
Determina la clave primaria de la nueva entidad
Repetir hasta que no queden ms atributos no atmicos

OrdenItem (orderNro, prodNno, descripPrd, precioUnPrd,


cantidadOrdPrd, valorOrdPrd)
OrdenCompra1 (orderNro, fechaOrd, clienteNo, nombreCli,
direccionCli, totalOrd)
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 10

5
29/11/2014

Ejemplo de Normalizacin
Segunda Forma Normal (2FN)
Definicin: Una relacin 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

Pasos para convertir una relacin 1NF a 2FN:


Elimina los atributos que dependen parcialmente de la clave primaria y crea con ellos
una nueva relacin.
Aade a esta relacin una copia del atributo/s del cual dependen (ser la clave
primaria de la nueva relacin)
Nombra a la nueva entidad (aade un 2 para indicar 2NF)
Renombra a la entidad original (aade un 2 para indicar 2NF)

Producto2 (prodNno, descripPrd, precioUnPrd)


OrdenItem2 (orderNro, prodNno, cantidadOrdPrd, valorOrdPrd)

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 11

Ejemplo de Normalizacin
Tercera Forma Normal (3FN)
Definicin: Una relacin 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
Pasos para convertir una relacin 2NF a 3FN:
Elimina los atributos que presentan dependencias transitivas y crea una nueva
relacin con ellos
Aade a esta nueva relacin una copia de los atributos con los que estn
relacionados (determinantes) los atributos eliminados, ellos sern la clave primaria de
la nueva relacin.
Nombra a la nueva entidad (aade un 3 para indicar 3NF)
Renombra a la entidad original (aade un 3 para indicar 3NF)
Cliente3 (clienteNo, nombreCli, direccionCli)
OrdenCompra3 (orderNro, fechaOrd, clienteNo, totalOrd)

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 12

6
29/11/2014

Lemas en la Normalizacin
Lema 1: Suponga R un esquema con dependencias funcionales
DF, sea una descomposicin de R con la propiedad LJ con
respecto a DF: = {R1, R2,..., Rk} y sea = (S1, S2) una
descomposicin LJ de R1, con respecto a R1(DF). Entonces
la descomposicin de R en (S1, S2, R2, ..., Rk) tambin tiene la
propiedad LJ con respecto a DF.

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 A
y B en R tal que (R - AB) A. Tambin puede presentarse el
caso que (R - AB) B.

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 13

Lemas en la Normalizacin
Lema 3: Si tenemos un conjunto de dependencias DF
sobre R y luego los proyectamos sobre R1 R para
obtener 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 de
dependencias para R1, aunque DF presumiblemente
menciona atributos que no se encuentran en R1.

Prueba: [Se halla en ULL88 pp 405].

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 14

7
29/11/2014

Algoritmo de Descomposicin en
la Forma Normal
Boyce-Codd con la Propiedad LJ
IF 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 descomposicin Z - A e Y;
/* Y es para nuestro caso XA en el programa principal */
END;

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 15

Algoritmo de Descomposicin en
la BCFN con la Propiedad LJ
Programa Principal del Algoritmo
Z := R; /* En todo momento, Z es el esquema de la
descomposicin que podra 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 descomposicin;
Z := Z - A;
UNTIL Z no pueda ser descompuesta por el lema 2b;
Adicione Z a la descomposicin.

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 16

8
29/11/2014

Ejemplo Alg. de Descomp. En BCFN


Ejemplo: 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 //Slo se puede dictar un curso a una hora y en un saln.
HP S //A una hora, un profesor ocupa un saln.
CE N //Un estudiante tiene una nota por cada curso que toma.
HE S //Un estudiante puede estar en un solo saln a una hora.
Z := CPHSEN
Se 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 Bases de Datos I - Mauricio E. Fernndez N 17

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 se
pueden eliminar ms atributos de Y porque falla la prueba del lema 2b. Por lo tanto, Z
(CPHSEN) no se puede descomponer.
Que pasa con la particin 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 estn 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 Bases de Datos I - Mauricio E. Fernndez N 18

9
29/11/2014

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 ms atributos porque la prueba del lema 2b falla
para 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 Bases de Datos I - Mauricio E. Fernndez N 19

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, no
se puede eliminar ms atributos de Y porque falla la prueba del lema 2b. Por lo
tanto, Y (CHE) no se puede descomponer.
Que pasa con la particin 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 estn 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 particin Y = HEN se observa que no contiene ninguna dependencia
X 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 Bases de Datos I - Mauricio E. Fernndez N 20

10
29/11/2014

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 ms atributos porque la prueba del lema 2b
falla 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 particin 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 particin CPH no contiene dependencias X A. Se descarta.
Sigue

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 21

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 descomposicin: 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 Bases de Datos I - Mauricio E. Fernndez N 22

11
29/11/2014

Descomposicin en 3FN
Preservando Dependencias
No siempre es posible descomponer una relacin en BCFN y preservar las
depend., aunque si es posible hallar una descomp. en 3FN que preserve las
depenc., como se muestra en el siguiente algoritmo:
ENTRADA: El esquema R (A, DF) donde se puede asumir que DF es un
recubrimiento minimal no redundante.
SALIDA: Una descomp. de R preserv. dep. tal que cada relacin resultante
se halle en 3FN con respecto a la proyeccin de DF sobre este esquema.
METODO: Si algn atributo de R no aparece en ninguna depend. (izquierda o
derecha), entonces tal atributo puede eliminarse de R, constituyendo un
esquema aparte. Si una de las depend. en DF incluye todos los atributos de
A, 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 diseo conserva las dep.

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 23

Descomposicin en 3FN Preservando


Depend. y verificando Propiedad LJ
Como hemos visto, podemos descomponer cualquier relacin R en un
conjunto de esquemas = (R1, ..., Rn) tal que verifique la
propiedad LJ y cada esquema Ri esta en BCFN (y por lo tanto en
3FN).
Tambin podemos descomponer R en = (S1,..., Sn) tal que
preserve el conjunto de dep. DF, y cada Sj esta en 3FN. Podemos
hallar una descomp. en 3FN que cumpla simultneamente con las
propiedades LJ y preserv. de dep., si adjuntamos a un esquema X
que es la llave de Ri.
TEOREMA: Sea la descomposicin en 3FN de R, y sea X una llave
para R. Entonces = {X} es una descomposicin de R con todos
sus esquemas en 3FN; la descomposicin preserva dependencias y
cumple la propiedad LJ.
Prueba: [Se halla en ULL88 pp 411]
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 24

12
29/11/2014

Descomposicin en 3FN Preservando


Depend. y verificando Propiedad LJ
Ejemplo: Consideremos el ejemplo anterior:
Debemos entonces tomar la unin de los esquemas producidos
para CPHSEN con la llave EH, para obtener una
descomposicin que cumple la propiedad LJ y preserva
dependencias.
Pero EH es un subconjunto de HES, que ya es uno de los
esquemas obtenidos. Entonces EH puede eliminarse y el
esquema ser: { CP, HSC, HPS, CEN, HES }
Aunque algn subconjunto de estas relaciones cumple con la
propiedad LJ, se puede verificar que las dependencias
proyectadas para cualquiera cuatro de ellas no implican el
conjunto completo de dependencias DF.
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 25

Algoritmo de Sntesis de Bernstein


A continuacin se presenta el algoritmo bsico 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 particin 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 particin.
4. Si existen atributos que no son determinantes, ni implicados
en DF*, se forma un esquema de relacin con ellos, sin
ninguna dependencia funcional.

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 26

13
29/11/2014

Algoritmo de Sntesis de Bernstein


Ejemplo 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, direccin, ciudad, codPostal,
departamento, pais, aficion, tipoAficin, grado , y
DF = (direccin , 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) (tipoAficin, grado), aficion tipoAficin

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 27

Algoritmo de Sntesis de Bernstein


Ejemplo 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 mnimo para DF
a) 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 extraos:
AB C
Bi = A : B+=B A no es extrao
Bi = B : A+=ADEFGIJMNPKL B no es extrao
DM N
Bi = D : M+=M D no es extrao
Bi = M : D+=DMKLP M no es extrao:
Sigue

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 28

14
29/11/2014

Algoritmo de Sntesis de Bernstein


DM P
Bi = D : M+=M D no es extrao
Bi = M : D+=DMKLP M no es extrao
PR S
Bi = P : R+=R D no es extrao
Bi = R : P+=P R no es extrao
PQR S
Bi = P : (QR)+=QR P no es extrao
Bi = Q : (PR)+=PRS Q si es extrao: PR S (que ya existe)
PQR T
Bi = P : (QR)+=QR P no es extrao
Bi = Q : (PR)+=PRS Q no es extrao
Bi = R : (PQ)+=PQ R no es extrao
DF = AB C, A D, A E, A F, A G, E G, F D,
(2)

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 Bases de Datos I - Mauricio E. Fernndez N 29

Algoritmo de Sntesis de Bernstein


c) 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 L
Sigue
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 30

15
29/11/2014

Algoritmo de Sntesis de Bernstein


DF* = 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 Relacin por cada particin Pi : Llave primaria el
determinante y atributos el resto de la dependencia funcional
Sigue
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 31

Algoritmo de Sntesis de Bernstein


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

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*
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 32

16
29/11/2014

Algoritmo de Sntesis de Bernstein


Ejemplo 2:
Dados los atributos A = cc, nombre, apellido, direccin, ciudad, codPostal,
departamento, pais, aficion, tipoAficin, grado , y
DF = (direccin , ciudad) codPostal, codPostal ciudad,
ciudad (departamento, pais), departamento pais,
cc (nombre, apellido, direccion), cc (ciudad, codPostal, departamento, pais),
(nombre, apellido) (cc, codPostal), (cc, aficion) (tipoAficin, grado),
aficion tipoAficin
1. Se busca recubrimiento mnimo para DF
a) Segundos miembros simples:
DF(1) = (direccin, 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) tipoAficin, (cc, aficion) grado, aficion tipoAficin
Sigue

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 33

Algoritmo de Sntesis de Bernstein


b) Eliminar atributos extraos:
(direccin, ciudad) codPostal
Bi = direccin : ciudad+=departamento, pas, ciudad direccin No extrao
Bi = ciudad : direccin+=direccin ciudad No extrao
(nombre, apellido) cc
Bi = nombre : apellido+=apellido nombre No extrao
Bi = apellido : nombre+=nombre apellido No extrao
(nombre, apellido) codPostal
Bi = nombre : apellido+=apellido nombre No extrao
Bi = apellido : nombre+=nombre apellido No extrao
(cc, aficion) tipoAficin
Bi = cc: aficion+=aficin, tipoAficion cc Si extrao: aficiontipoAficin (ya existe)
(cc, aficion) grado
Bi = cc : aficion+=aficin, tipoAficion cc No extrao
Bi = aficion : cc+=cc, nombre, apellido, direccin, ciudad, departamento, pas,
direccion, codPostal aficin No extrao
Sigue

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 34

17
29/11/2014

Algoritmo de Sntesis de Bernstein


DF(2) = (direccin, 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 tipoAficin
c) Eliminar dependencias redundantes:
(direccin, ciudad) codPostal :
(direccin, ciudad)+= direccin, ciudad, departamento, pais no redundante
codPostal ciudad : (codPostal )+= codPostal no redundante
ciudad departamento : (ciudad)+= ciudad, pais no redundante
ciudad pais : (ciudad)+= ciudad, departamento, pas redundante se elimina
departamento pais : (departamento )+= departamento no redundante
cc nombre : (cc)+= cc,apellido,direccion,codPostal,departamento,pas,ciudad
no redundante
cc apellido : (cc)+= cc,nombre,apellido,direccion,ciudad,codPostal, departamento, pas
no redundante
cc direccion : (cc)+= cc, nombre, apellido,codPostal,ciudad,departamento,pas
no redundante
Sigue
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 35

Algoritmo de Sntesis de Bernstein


cc departamento :
(cc)+= cc,nombre,apellido,direccion,codPostal,ciudad,departamento,pas
Si redundante se elimina
cc pas :
+
(cc) = cc,nombre,apellido,direccion,ciudad,codPostal, departamento, pas
Si redundante se elimina
(nombre, apellido) cc :
(nombre, apellido)+= nombre,apellido,codPostal,ciudad,departamento,pas,
no redundante
(nombre, apellido) codPostal :
(nombre, apellido)+= nombre,apellido,cc,direccion,codPostal,ciudad,departamento,pas
Si redundante se elimina
(cc, aficion) grado :
(cc, aficion)+= cc,aficion,nombre,apellido,direccion, codPostal,ciudad,departamento,
pas,tipoAficin no redundante
aficion tipoAficion : (aficion)+= aficion no redundante
DF(3) = (direccin, ciudad) codPostal, codPostal ciudad, ciudad departamento,
departamento pais, cc nombre, cc apellido, cc direccion, cc codPostal,
(nombre, apellido) cc, (cc, aficion) grado, aficion tipoAficin

Sigue

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 36

18
29/11/2014

Algoritmo de Sntesis de Bernstein


DF* = (direccin, ciudad) codPostal, codPostal ciudad, ciudad departamento,
departamento pais, cc nombre, cc apellido, cc direccion,
cc codPostal, (nombre, apellido) cc, (cc, aficion) grado, aficion tipoAficin

2. Dividimos DF* en particiones con igual determinante


Debemos partir DF en tablas, tales que todas las dependencias con el mismo
lado izquierdo estn en una tabla:
NOTA: Las tablas creadas en este paso deben entregar una solucin en 3FN, pero no
necesariamente minimal.
P1 : {(direccin, 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 tipoAficin }
Sigue

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 37

Algoritmo de Sntesis de Bernstein


3. Creamos una Relacin por cada particin Pi : Llave primaria el
determinante y atributos el resto de la dependencia funcional
Relacin Pk Ak DF
R1 : {direccion, ciudad, ciudad,
codPostal (direccin, ciudad) codPostal,
codPostal} direccin
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, nombre, apellido, cc (nombre, apellido),
cc
direccion, codPostal} direccion, codPostal cc direccion, codPostal
R6 : {cc, aficion, grado} cc, aficion grado {(cc, aficion) grado}
R7 : {aficion, tipoAficin} aficion tipoAficin {aficion tipoAficin}

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*
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 38

19
29/11/2014

Dependencias Multivaluadas
Empleado nombreEmp nombProyecto nombFamiliar
Silva X Juan
Silva Y Ana
Silva X Ana
Silva Y Juan

DMV: nombreEmp nombProyecto, nombreEmp nombFamiliar


Una dependencia multivaluada X Y especificada sobre R, donde X
y Y son subconjuntos de R, especifica la siguiente restriccin sobre
cualquier relacin r de R:
si existen las tuplas t1 y t2 en r tales que t1[X] = t2[X], entonces deben existir
tambin 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)]

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 39

Dependencias Multivaluadas
Siempre que XY se cumple en R, tambin 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 XY Z

Una DMV XY en R se denomina DMV trivial si:


a) Y es un subconjunto de X O
b) XY = R

Empleados se halla en BCFN porque no hay ninguna DF que


se cumpla en Empleados.

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 40

20
29/11/2014

Cuarta Forma Normal (4FN)


La 4FN se viola cuando una relacin tiene dependencias
multivaluadas indeseables y que, por tanto, pueden usarse
para identificar y descomponer tales relaciones. Un esquema
R est en 4FN respecto a un conjunto de dependencias F si,
para cada dependencia multivaluada NO TRIVIAL X Y en
F+, 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 Bases de Datos I - Mauricio E. Fernndez N 41

Ejemplo de la 4FN
Empleado
nombreEmp nombProyecto nombFamiliar ProyectoEmpleado
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 FamiliarEmpleado
Bravo X Paola nombreEmp nombFamiliar
Bravo Y Paola Silva Juan
Bravo Z Paola Silva Ana
Bravo W Ivn Bravo Jaime
Bravo X Ivn Bravo Paola
Bravo Y Ivn Bravo Ivn
Bravo Z Ivn Proyeccin de Empleados sobre
Empleados con tuplas adicionales ProyectosEmpleado y FamiliaresEmpleado

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 42

21
29/11/2014

Descomposicin con Reunin sin


Prdida para Generar Relaciones 4FN
Siempre que se descompone un esquema R, en R1 = (X U Y)
y R2 = (R Y) con base en una DMV X Y que se cumple
en R, la descomposicin posee la propiedad LJ.

PROPIEDAD LJ
Los esquemas R1 y R2 forman una descomposicin con
reunin sin prdida, si y solo si (R1 R2) (R1 - R2) (
o por simetra, si y solo si (R1 R2) (R2 - R1) )

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 43

Algoritmo de Descomposicin sin


Prdida para Generar Relaciones
en 4FN
Hacer Z= { R } //Esquema que posiblemente no este en 4FN
MIENTRAS Haya una relacin 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 Bases de Datos I - Mauricio E. Fernndez N 44

22
29/11/2014

Quinta Forma Normal (5FN)


Tambin llamada de Proyeccin-Unin (PJFN), se puede
definir as: Un esquema R est en 5FN respecto de un
conjunto F de dependencias (funcionales, multivaluadas y de
reunin) si, para cada dependencia de unin NO TRIVIAL
DU(R1, R2,..., Rk) en F+, toda Ri es una superclave de R. Ej:
Suministros NomProveedor Componente NomProyecto
Silva 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

Su descomposicin a la 5FN ser:

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 45

Quinta Forma Normal (5FN)


RelacionA RelacionB
NomProveedor Componente NomProveedor NomProyecto
Silva Perno Silva Proy X
Silva Tuerca Silva Proy Y
Aldana Perno Aldana Proy Y
Aldana Clavo Aldana Proy X
Velasco Tuerca Velasco Proy Z

RelacionC
Componente NomProyecto
Perno Proy X
Tuerca Proy Y
Perno Proy Y
Clavo Proy X
Tuerca Proy Z

29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 46

23
29/11/2014

QUIZ #3
Consideremos 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 (da). 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 da.
Se adicionan las siguientes dependencias funcionales:
N T, V NC y ND PV.
Hallar una descomposicin en BCFN que cumpla la
propiedad LJ.
29/11/2014 Bases de Datos I - Mauricio E. Fernndez N 47

24

Potrebbero piacerti anche