Dependencias Funcionales

Anuncio
29/11/2014
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
Bases de Datos I - Mauricio E. Fernández N
1
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 =  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. Fernández N
2
1
29/11/2014
Dependencias Funcionales
GRAFO DE DEPENDENCIAS FUNCIONALES
Es un diagrama (grafo) que representa el contexto semántico
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
ccNro  pais
ccNro  ciudad
codProducto  descripProd
codProducto  color
codProducto  peso
(ccNro , codProducto  canti
29/11/2014
ccNro
Nombre
Pais
ciudad
canti
codProducto
descripProd
Color
peso
Bases de Datos I - Mauricio E. Fernández 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 extensión r de R, son consecuencia
lógica 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. Fernández N
4
2
29/11/2014
Enfoque de Descomposición
El 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 su
extensión, la instancia universal {R1, R2,…, Rn} tendrá relaciones tales
que cualquier tupla de una relación puede obtenerse mediante una
proyección de la instancia universal.
Se parte de la R.U. y aplica las reglas de descomposición 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 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
Bases de Datos I - Mauricio E. Fernández 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 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
Bases de Datos I - Mauricio E. Fernández 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 más 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
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
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, ningún
atributo no primo depende transitivamente de ninguna clave.
La 3FN evitará redundancias por mezcla de propiedades de dos
entidades en la misma relación cuando existen dependencias
transitivas.
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
8
4
29/11/2014
Ejemplo de Normalización
ORDEN DE COMPRA
Cliente Nro: 001964
Nombre: Marcos Caballero
Dirección: Carrera 24 #9C-48
Número Orden: 00012345
Fecha Orden: 14-Nov-2014
Nro Producto
Descripción
T5060
Tuerca 2 ⅛
Precio Unit. Cantidad Valor
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. Fernández N
9
Ejemplo de Normalización
Primera 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
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
OrdenItem
(orderNro, prodNno, descripPrd, precioUnPrd,
cantidadOrdPrd, valorOrdPrd)
OrdenCompra1 (orderNro, fechaOrd, clienteNo, nombreCli,
direccionCli, totalOrd)
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
10
5
29/11/2014
Ejemplo de Normalización
Segunda 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
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)
Producto2
(prodNno, descripPrd, precioUnPrd)
OrdenItem2 (orderNro, prodNno, cantidadOrdPrd, valorOrdPrd)
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
11
Ejemplo de Normalización
Tercera 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
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 de
la 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)
Cliente3 (clienteNo, nombreCli, direccionCli)
OrdenCompra3 (orderNro, fechaOrd, clienteNo, totalOrd)
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
12
6
29/11/2014
Lemas en la Normalización
Lema 1: Suponga R un esquema con dependencias funcionales
DF, sea ρ una descomposición de R con la propiedad LJ con
respecto a DF: ρ = {R1, R2,..., Rk} y sea σ = (S1, S2) una
descomposición LJ de R1, con respecto a R1(DF). Entonces
la descomposición de R en (S1, S2, R2, ..., Rk) también 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. También puede presentarse el
caso que (R - AB)  B.
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
13
Lemas en la Normalización
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. Fernández N
14
7
29/11/2014
Algoritmo de Descomposición 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 descomposición Z - A e Y;
/* Y es para nuestro caso XA en el programa principal */
END;
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
15
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
Bases de Datos I - Mauricio E. Fernández 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
HS  C
HP  S
CE  N
HE  S
//Cada curso tiene un solo profesor.
//Sólo se puede dictar un curso a una hora y en un salón.
//A una hora, un profesor ocupa un salón.
//Un estudiante tiene una nota por cada curso que toma.
//Un estudiante puede estar en un solo salón 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. Fernández 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 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
Bases de Datos I - Mauricio E. Fernández 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 más 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. Fernández 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 más atributos de Y porque falla la prueba del lema 2b. Por lo
tanto, 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 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. Fernández 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 más 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 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
Bases de Datos I - Mauricio E. Fernández 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 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
Bases de Datos I - Mauricio E. Fernández N
22
11
29/11/2014
Descomposición en 3FN
Preservando Dependencias
No siempre es posible descomponer una relación 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 relación resultante
se 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 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 diseño conserva las dep.
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
23
Descomposición en 3FN Preservando
Depend. y verificando Propiedad LJ
Como hemos visto, podemos descomponer cualquier relación 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).
También 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 simultáneamente con las
propiedades LJ y preserv. de dep., si adjuntamos a σ un esquema X
que es la llave de Ri.
TEOREMA: Sea σ la descomposición en 3FN de R, y sea X una llave
para R. Entonces τ = σ  {X} es una descomposición de R con todos
sus esquemas en 3FN; la descomposición preserva dependencias y
cumple la propiedad LJ.
Prueba: [Se halla en ULL88 pp 411]
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
24
12
29/11/2014
Descomposición en 3FN Preservando
Depend. y verificando Propiedad LJ
Ejemplo: Consideremos el ejemplo anterior:
Debemos entonces tomar la unión de los esquemas producidos
para CPHSEN con la llave EH, para obtener una
descomposición 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 algún 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. Fernández N
25
Algoritmo de Síntesis de Bernstein
A 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
Bases de Datos I - Mauricio E. Fernández N
26
13
29/11/2014
Algoritmo de Síntesis 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, 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
Bases de Datos I - Mauricio E. Fernández N
27
Algoritmo de Síntesis 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 mínimo 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 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
Bases de Datos I - Mauricio E. Fernández N
28
14
29/11/2014
Algoritmo de Síntesis de Bernstein
DM  P
Bi = D : M+=M  D no es extraño
Bi = M : D+=DMKLP  M no es extraño
• PR  S
Bi = P : R+=R  D no es extraño
Bi = R : P+=P  R no es extraño
• PQR  S
Bi = P : (QR)+=QR  P no es extraño
Bi = Q : (PR)+=PRS  Q si es extraño: PR  S (que ya existe)
• PQR  T
Bi = P : (QR)+=QR  P no es extraño
Bi = Q : (PR)+=PRS  Q no es extraño
Bi = R : (PQ)+=PQ  R no es extraño
(2)
DF = 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
Bases de Datos I - Mauricio E. Fernández N
29
Algoritmo de Síntesis de Bernstein
c) Eliminar dependencias redundantes:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
AB  C : (AB)+= ABDEFGJIPMNL
A  D : (A)+= AEFGDJIPMKLN
A  E : (A)+= ADFGJINPMKL
A  F : (A)+= AGEFDPMKLN
A  G : (A)+= AFDJPMKL
E  G : (E)+= E
F  D : (F)+= FJ
F  J : (F)+= FDPMKLN
G  D : (G)+= GI
G  I : (G)+= GDPMKLN
DM  N : (D)+= DMNKL
DM  P : (D)+= DMNKL
D  M : (D)+= DPKL
L  D : (L)+= L
PR  S : (PR)+= PR
PQR  T : (PQR)+= PQRS
D  K : (D)+= DLPMN
D  L : (D)+= DPMNK
: C  (AB)+
 no redundante
: D  (A)+
 Si redundante se elimina
+
: E  (A)
 no redundante
: F  (A)+
 Si redundante se elimina
: G  (A)+
 no redundante
: G  (E)+
 no redundante
+
: D  (F)
 no redundante
: J  (F)+
 no redundante
: D  (G)+
 no redundante
: I  (G)+
 no redundante
: N  (D)+
 no redundante
+
: P  (D)
 no redundante
: M  (D)+
 no redundante
: D  (L)+
 no redundante
: S  (PR)+
 no redundante
+
: T  (PQR)  no redundante
: K  (D)+
 no redundante
: 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. Fernández N
30
15
29/11/2014
Algoritmo de Síntesis 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 Relación por cada partición Pi : Llave primaria el
determinante y atributos el resto de la dependencia funcional
Sigue…
Bases de Datos I - Mauricio E. Fernández N
29/11/2014
31
Algoritmo de Síntesis de Bernstein
Relación
Pk
Ak
R1 : {ABC}
AB
C
DF
R2 : {AEG}
A
EG
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
{AB → C}
{A → E, A → G}
{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. Fernández N
32
16
29/11/2014
Algoritmo de Síntesis de Bernstein
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, codPostal), (cc, aficion)  (tipoAfición, grado),
aficion  tipoAfición
1. Se busca recubrimiento mínimo para DF
a) 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
Bases de Datos I - Mauricio E. Fernández N
33
Algoritmo de Síntesis de Bernstein
b) 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: aficiontipoAfició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
Bases de Datos I - Mauricio E. Fernández N
34
17
29/11/2014
Algoritmo de Síntesis de Bernstein
DF(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 redundante
Sigue…
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
35
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
Bases de Datos I - Mauricio E. Fernández N
36
18
29/11/2014
Algoritmo de Síntesis de Bernstein
DF* = (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 determinante
Debemos 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
Bases de Datos I - Mauricio E. Fernández N
37
Algoritmo de Síntesis de Bernstein
3. Creamos una Relación por cada partición Pi : Llave primaria el
determinante y atributos el resto de la dependencia funcional
Relación
Pk
Ak
R1 : {direccion, ciudad,
codPostal}
ciudad,
dirección
codPostal
R2 : {ciudad, codPostal}
codPostal,
ciudad
ciudad
departamento
R3 : {ciudad, departamento}
R4 : {departamento, pais}
R5 : {cc, nombre, apellido,
direccion, codPostal}
R6 : {cc, aficion, grado}
R7 : {aficion, tipoAfición}
departamento
pais
cc
nombre, apellido,
direccion, codPostal
DF
(dirección, ciudad) → codPostal,
codPostal → ciudad
Ciudad → departamento
Departamento → pais
cc → (nombre, apellido),
cc → direccion, codPostal
cc, aficion
grado
{(cc, aficion) → grado}
aficion
tipoAfición
{aficion → tipoAfición}
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. Fernández N
38
19
29/11/2014
Dependencias Multivaluadas
Empleado
nombreEmp
Silva
Silva
Silva
Silva
nombProyecto
X
Y
X
Y
nombFamiliar
Juan
Ana
Ana
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 restricción sobre
cualquier relación r de R:
si existen las tuplas t1 y t2 en r tales que t1[X] = t2[X], entonces deben existir
tambié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)]
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
39
Dependencias Multivaluadas
Siempre 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
Bases de Datos I - Mauricio E. Fernández N
40
20
29/11/2014
Cuarta Forma Normal (4FN)
La 4FN se viola cuando una relación 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. Fernández N
41
Ejemplo de la 4FN
Empleado
nombreEmp
Silva
Silva
Silva
Silva
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
Bravo
nombProyecto
X
Y
X
Y
W
X
Y
Z
W
X
Y
Z
W
X
Y
Z
nombFamiliar
Juan
Ana
Ana
Juan
Jaime
Jaime
Jaime
Jaime
Paola
Paola
Paola
Paola
Iván
Iván
Iván
Iván
Empleados con tuplas adicionales
29/11/2014
ProyectoEmpleado
nombreEmp nombProyecto
Silva
X
Silva
Y
Bravo
W
Bravo
X
Bravo
Y
Bravo
Z
FamiliarEmpleado
nombreEmp
nombFamiliar
Silva
Juan
Silva
Ana
Bravo
Jaime
Bravo
Paola
Bravo
Iván
Proyección de Empleados sobre
ProyectosEmpleado y FamiliaresEmpleado
Bases de Datos I - Mauricio E. Fernández N
42
21
29/11/2014
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 R2 = (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 con
reunión sin pérdida, si y solo si (R1 ∩ R2) →→ (R1 - R2) (
o por simetría, si y solo si (R1 ∩ R2) →→ (R2 - R1) )
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
43
Algoritmo de Descomposición sin
Pérdida para Generar Relaciones
en 4FN
Hacer 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
Bases de Datos I - Mauricio E. Fernández N
44
22
29/11/2014
Quinta Forma Normal (5FN)
También llamada de Proyección-Unión (PJFN), se puede
definir 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(R1, R2,..., Rk) en F+, toda Ri es una superclave de R. Ej:
Suministros
NomProveedor
Componente
NomProyecto
Silva
Silva
Aldana
Velasco
Aldana
Aldana
Silva
Perno
Tuerca
Perno
Tuerca
Clavo
Perno
Perno
Proy X
Proy Y
Proy Y
Proy Z
Proy X
Proy X
Proy Y
Su descomposición a la 5FN será:
29/11/2014
Bases de Datos I - Mauricio E. Fernández N
45
Quinta Forma Normal (5FN)
RelacionA
RelacionB
NomProveedor
Componente
NomProveedor
NomProyecto
Silva
Silva
Aldana
Aldana
Velasco
Perno
Tuerca
Perno
Clavo
Tuerca
Silva
Silva
Aldana
Aldana
Velasco
Proy X
Proy Y
Proy Y
Proy X
Proy Z
RelacionC
Componente
NomProyecto
Perno
Tuerca
Perno
Clavo
Tuerca
Proy X
Proy Y
Proy Y
Proy X
Proy Z
29/11/2014
Bases de Datos I - Mauricio E. Fernández 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 (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
Bases de Datos I - Mauricio E. Fernández N
47
24
Descargar