Introducci´
on
La forma aceptada de eliminar la redundancia es la descomposici´on de relaciones.
Dada una relaci´on R (A1,A2, ...An), se puede descomponerR en dos
relaciones S(B1,B2, ...,Bi) y T(C1,C2, ...,Cj) tales que: 1 {A1,A2, ...,An}={B1,B2, ...,Bi} ∪ {C1,C2, ...,Cj}
2 Las tuplas en la relaci´on S son la proyecci´on sobre {B1,B2, ...,Bi}de
las tuplas en R.
3 De manera similar, las tuplas en T son la proyecci´on de {C1,C2, ...,Cj}sobre R.
nombreSuc delegaci´on activo nombreCte nPr´estamo importe
Centro Cuauht´emoc 1,800 M Santos P-17 200,000
Copilco Coyoac´an 420 M G´omez P-23 400,000
Viveros Coyoac´an 340 M L´opez P-15 300,000
Centro Cuauht´emoc 1,800 M Toledo P-14 300,000
Eugenia Benito Ju´arez 80 M Santos P-93 100,000
Zapata Benito Ju´arez 1,600 M Abril P-11 180,000
San ´Angel Alvaro Obreg´on 60 M V´azquez P-29 240,000
Tlalpan Tlalpan 740 M L´opez P-16 260,000
Centro Cuauht´emoc 1,800 M Gonz´alez P-23 400,000
Viveros Coyoac´an 340 M Rodr´ıguez P-25 500,000
Las Fuentes Tlalpan 1,420 M Amor P-10 440,000
Si se descompone la relaci´on en
Una relaci´onSucursal (nombreSuc, delegaci´on, activo,
nombreCliente): y
nombreSuc delegaci´on activo nombre cliente
Centro Cuauht´emoc 1,800,000,000 Santos
Copilco Coyoac´an 420,000,000 G´omez
Viveros Coyoac´an 340,000,000 L´opez
Centro Cuauht´emoc 1,800,000,000 Toledo
Eugenia Benito Ju´arez 80,000,000 Santos
Zapata Benito Ju´arez 1,600,000,000 Abril San ´Angel Alvaro Obreg´on 60,000,000 V´azquez
Tlalpan Tlalpan 740,000,000 L´opez
Centro Cuauht´emoc 1,800,000,000 Gonz´alez
Viveros Coyoac´an 340,000,000 Rodr´ıguez
Las Fuentes Tlalpan 1,420,000,000 Amor
nombre cliente numPr´estamo importe
Santos P-17 200,000 G´omez P-23 400,000 L´opez P-15 300,000 Toledo P-14 300,000 Santos P-93 100,000 Abril P-11 180,000 V´azquez P-29 240,000 L´opez P-16 260,000 Gonz´alez P-23 400,000 Rodr´ıguez P-25 500,000 Amor P-10 440,000
Encontrar todas las sucursales tales que tienen pr´estamos con importe menor a 200,000 pesos.
Con el esquema original. Eugenia y Zapata.
Con el esquema fraccionado.Eugenia, Zapata y Centro.
Indicar los pr´estamos que se tienen en cada sucursal: Sucursal ./Prestamos´olo para Santos dar´ıa
Centro Cuauhtemoc Santos P-17 200 Centro Cuauhtemoc Santos P-93 100 Eugenia Coyoacan Santos P-17 200 Eugenia Coyoacan Santos P-93 100
Ambas relaciones tienen a NombreClienteen com´un, as´ı que para
juntarlas se usa este atributo que no es adecuado puesto que cliente puede tener varios pr´estamos no necesariamente en la misma sucursal.
Requisitos
Para la normalizaci´on se desea:
Eliminar la duplicidad de informaci´on.
Que las relaciones fraccionadas tengan un join sin p´erdida. Conservar las dependencias funcionales.
Forma Normal de Boyce-Codd
Una relaci´on R est´a en BCNF si y s´olo si en toda DF no trivial
A1A2...An→B para R, se tiene que {A1,A2, ...An} es superllave de
R. Ejemplos:
La relaci´onC (Nombre, Calle, Ciudad) con DF ={Nombre →
Calle Ciudad}
La relaci´onS(Nombre, No pr´estamo)con DF ={Nombre →
No pr´estamo}
La relaci´onP(nombreSuc, Nombre cliente, No pr´estamo,
Cualquier relaci´on de dos atributos, A y B, est´a en BCNF:
1 Si no hay DF no-triviales entonces se mantiene la condici´on de BCNF,
debido a que s´olo una DF no trivial puede violar esta condici´on. Incidentalmente notar que{A,B} es la ´unica llave.
2 Si se tiene A→B, pero no B →A, entonces A es la ´unica llave y
cada dependencia no trivial contiene A en la izquierda, por tanto no hay violaci´on a la condici´on BCNF.
3 Si B→A y ni se tieneA→B es un caso sim´etrico al anterior.
4 Si se tienenA→B yB →A. Entonces tanto A como B son llaves, y
cualquier dependencia tiene al menos uno de ellos en su lado izquierdo, por tanto no puede haber violaci´on de la norma BCNF.
Descomposici´
on para lograr la BCNF
Es posible dividir cualquier relaci´on en otras con las sigtes propiedades: Son esquemas de relaciones en BCNF.
Los datos en la relaci´on original se representan fielmente por las relaciones que son el resultado de la descomposici´on.
La estrategia a seguir es:
1 Buscar una DF no trivial X → B que viole BCNF.
2 Calcular X+.
3 Fraccionar R en R1(X+) y R2( (R-X+) ∪X).
Otros X X+
4 Encontrar las DFs para las nuevas relaciones.
Ejemplo
La relaci´onP(nombreSuc, Nombre cliente, No pr´estamo, Importe)
con
DF = {No pr´estamo → Importe nombreSuc}
Se descompone en:
P1(No pr´estamo, Importe, nombreSuc) P2(Nombre cliente, No pr´estamo)
Sea R una relaci´on descompuesta en S y otra m´as. Sea F el conjunto de DFs para R. Para calcular las DF mantenidas en S hacer:
1 Para cada conjunto X de atributos contenidos en S calcularX+.
2 Para cada atributo B tal que
B es un atributo de S, B no est´a en X, y B est´a enX+
se tiene la dependencia funcional X →B en S.
Ejemplo
Sean R(A, B, C, D), y F = {A→ B, B→ C}
Si se tiene una subrelaci´on S(A, C) ¿cu´ales DF’s se cumplen en S? Calcular la cerradura de cada subconjunto de {A, C}:
{A}+ = {A, B, C}. El punto 2 del algoritmo s´olo se cumple para C,
por tanto en S se mantiene la dependencia A →C.
{C}+ ={C}porque no est´a en el lado izquierdo de ninguna DF.
En general un conjunto que no contiene al menos un lado izquierdo de una DF no puede tener dependencias para S.
{A,C}+ = {A, B, C}. Esto no agrega ninguna nueva dependencia
para S.
Otro ejemplo
Sean R(A, B, C, D, E) y F {A→ D, B→ E, DE → C}
Determinar las DF’s que se cumplen en S(A, B, C)
1 {A}+ ={A, D}, como D no est´a en el esquema de S, no hay DF aqu´ı. 2 {B}+ = {B, E}, no hay DF
3 {C}+ ={C}, no hay DF
4 {A,B}+ ={A, B, C, D, E}, con lo cual se obtiene la dependencia
funcional AB→C para S.
5 Ning´un otro par de atributos agrega nada nuevo.
6 El conjunto de{A, B, C}no da dependencias no triviales para S.
Por tanto, la ´unica dependencia para S es AB→ C.
Recuperaci´
on de la informaci´
on a partir de una
descomposici´
on
Interesa que la descomposici´on preserve la informaci´on contenida en la relaci´on original.
Consideremos R(A, B, C) con B →C que suponemos es una violaci´on a la
BCNF,
Al descomponer R obtenemos S(B, C) y T=(A, B). Sea t= (a,b,c) una tupla de R.
Al proyectarla en la descomposici´on se obtienen (a,b) para T, y (b,c) para S.
Al hacer un joinsobre el atributo com´un, en este caso B, obtenemos nuevamente t.
Sin embargo regresar a las tuplas iniciales no es suficiente para asegurar que la relaci´on original est´a realmente representada por la descomposici´on.
Ejemplo
Si se tiene la relaci´on con la siguiente extensi´on: R =
A B C
a b c
d b e
´
esta se descompone en las dos siguientes con su respectiva proyecci´on: S = A B a b d b T = B C b c b e S ./T = A B C a b c a b e d b c d b e 6 = R
¿son correctas las proyecciones?
La justificaci´on de la no-p´erdida ni ganancia de informaci´on es debido a que se est´a considerando a las DFs.
Tercera Forma Normal
En ocasiones se puede encontrar que un esquema de relaci´on y sus dependencias no est´an en BCNF pero no se desea descomponer m´as. Ejemplo:
Reservaciones (pel´ıcula, cine, ciudad)con las dependencias funcionales
{cine → ciudad, pel´ıcula ciudad → cine}
Ning´un atributo por s´ı solo es una llave.
Por otro lado, las parejas {pel´ıcula, ciudad}y {cine, pel´ıcula} s´ı son llaves.
Si normalizamos esta relaci´on obtenemos: S =
cine ciudad
Real Cinema Cd. M´exico
Linterna M´agica Cd. M´exico T =
cine pel´ıcula
Real Cinema La vida es bella
Linterna M´agica La vida es bella
estas son permisibles de acuerdo a las DFs de cada relaci´on, pero al unirlas obtenemos
S ./T =
cine ciudad pel´ıcula
Real Cinema Cd. M´exico La vida es bella
Linterna M´agica Cd. M´exico La vida es bella
que viola la dependencia pel´ıcula ciudad → cine.
La soluci´on al problema anterior es relajar la condici´on para la BCNF.
Una relaci´on R est´a en tercera forma normal 3NFcon respecto a F, si para toda dependencia no trivial A1,A2, ..,An→B, se tiene que:
el lado izquierdo (A1,A2, ..,An) es una superllave o bien
el lado derecho,B, es miembro de alguna llave.
El segundo punto, es el que permite una dependencia como cine →
ciudaddel ejemplo anterior, porque ciudades miembro de una llave. Siempre es posible descomponer un esquema de relaci´on sin perdida de informaci´on en esquemas que est´an en 3FN y permiten que se verifiquen todas la DF.
Si estas relaciones no est´an en BCNF, se tendr´a un poco de redundancia en el esquema.
Conceptos
1 Atributos superfluos.
2 Conjuntos equivalentes de DFs.
3 Conjunto m´ınimo de DFs.
A es un atributo superfluo si se puede eliminar de la DF sin que se altere la cerradura de F.
Sean α→β una DF en F y A un atributo, A es superfluo si
1 Si A est´a en α. Sea γ =α− {A} si F|=γ →β.
2 Si A est´a en β. Sea F’ = (F -{α→β})∪ {α→(β−A)}, si F’ |=α→ A.
Ejemplos:
1 Determinar los atributos superfluos de F ={AB→ C, A→ C}
¿A es superfluo en AB→C?. ¿B es superfluo en AB→C?.
Equivalencia entre conjuntos de DF’s
Dos conjuntos de DF, F1 y F2 son equivalentessi F1 |= F2 y F2|= F1. Ejemplos:
Sean F ={A→ B, B→ C, AC → D}
Si F1 = {A→ B, B→ C, A → D}es equivalente a F.
Si F2 = {A→ B, B→ C, C →D} no es equivalente a F.
Conjunto m´ınimo
Un conjunto F de DFs es m´ınimosi
No tiene atributos superfluos.
Cada lado izquierdo de las DF de F es ´unico, es decir no existen
α1→β1, α2 →β2 tales queα1 =α2.
Algoritmo para calcular el conjunto F’ equivalente a F que sea m´ınimo: Repetir
1 Aplicar la regla de la uni´on a relacion tales queα1→β1, α1 →β2
para obtenerα1 →β1β2 y sustituir con esta ´ultima las DF’s con igual
lado izquierdo.
2 Eliminar los atributos superfluos de las DFs.
Ejemplo: Sea R(A,B,C) y F = { A→ BC, B →C, A → B, AB→ C }
determinar si F es m´ınimo y si no es as´ı encontrar el m´ınimo.
1 Unir A→ BC y A→ B, con lo cual se obtiene A→ BC. F ={A →
BC, B → C, AB→ C }
2 A es superfluo en AB→C, al eliminarlo F = {A→ BC, B→C, B →
C } ={A→ BC, B → C}
3 C es superfluo en la primera DF.
Por tanto el conjunto m´ınimo es {A → B, B→ C}
Unicidad del conjunto m´ınimo
Este conjunto m´ınimo puede no ser ´unico.
F ={A→ BC, B→ AC, C → AB}
Como no hay lados izquierdo en com´un, se empieza por determinar atributos superfluos.
Ver si B es superfluo en A → BC, es decir verificar que A→ C se
deriva de F’. Si lo es, por tanto F ={A → C, B→ AC, C → AB}.
Ver si A es superfluo en B → AC. Si lo es.
F= {A→ C, B → C, C→ AB}
Ver si A es superfluo en C→ AB. No lo es.
Ver si B es superfluo en C→ AB. No lo es.
Por tanto, el conjunto m´ınimo es: {A →C, B → C, C→ AB}
Por otro lado podr´ıamos llegar a:
{A→ C, B →A, C → AB}
etc.
Algoritmo de s´ıntesis
Su objetivo es descomponer R, conn DF’s F, en relaciones que satisfagan la 3NF.
1 Hacer F m´ınimo.
2 Para toda DF en Fm
1 Crear una relaci´on que contenga s´olo los atributos de la DF. 2 Eliminar un esquema si es un subconjunto de otro.
3 Si no existe esquema que contenga llaves candidatas crear una
relaci´on con esos atributos.
Ejemplo de normalizaci´
on
Sea R(A,B,C,D) y F ={A→ B, B→ C, AC → D}
1 Encontrar un m´ınimo equivalente a F: Fm ={A→ B, B→ C, A →
D}
2 Fm ={A →BD, B →C}.
3 Dividir. Se obtienen dos esquemas: R1(A,B,D) y R2(B,C), en el cual
Dependencias Multivaluadas
Sea R(nombre, direcci´on, tel´efono, afici´on) connombre → direcci´on.
nombre dir tel afici´on
n1 d1 t1 h1 n1 d1 t1 h2 n1 d1 t1 h3 n1 d1 t2 h1 n1 d1 t2 h2 n1 d1 t2 h3
Llave: nombre tel´efono afici´on.
Una violaci´on a BCNF:nombre → direcci´on.
Dividir en R1(nombre, direcci´on) R2(nombre, tel´efono,
afici´on).
Ambas est´an en BCNF.
Veamos R1: nombre direcci´on
n1 d1
Veamos R2:
nombre tel afici´on
n1 t1 h1 n1 t1 h2 n1 t1 h3 n1 t2 h1 n1 t2 h2 n1 t2 h3
Los tel´efonos y aficiones est´an repetidos
Si n1 tiene n tel´efonos y m aficiones, habr´a n*m tuplas para n1, cuando se podr´ıan tener s´olo el max(n,m).
Definici´
on
Existe una dependencia multivaluada (DMV)A1A2...AnB1B2...Bm
si para cada par de tuplas t1 yt2 de la relaci´on R que coinciden en todos
los valores de las A’s podemos encontrar una tuplat3 tal que coincida con: 1 t1 yt2 en las A’s,
2 t1 en las B’s, y
3 t2 en todos los atributos de R que no est´an ni el A’s ni en las B’s
00000 00000 00000 00000 11111 11111 11111 11111 00000 00000 00000 00000 11111 11111 11111 11111 00000 00000 00000 00000 11111 11111 11111 11111 00000 00000 00000 00000 11111 11111 11111 11111 00000 00000 00000 00000 11111 11111 11111 11111 0000000000 0000000000 0000000000 1111111111 1111111111 1111111111 0000000000 0000000000 0000000000 1111111111 1111111111 1111111111 A’s t1 t2 t3 B’s Otros
Es posible intercambiar la t1 con la t2 e inferir la existencia de una cuarta
tuplat4 que coincide cont2 en las B’s y cont1 en los otros atributos.
Como consecuencia de esto, para un valor fijo de las A’s los valores asociados de las B’s y los otros atributos aparece en todas las posibles combinaciones en diferentes tuplas.
En otras palabras si para cada par de tuplas de R que coinciden en los atributos de A, se puede intercambiar los atributos de B y conseguir dos nuevas tuplas para R.
Comparaci´
on entre DF y DMV
Las DFs excluyen ciertas tuplas de una relaci´on, si A→B entonces no puede haber dos tuplas con el mismo valor de A y diferente de B.
Las DMVs requieren que otras tuplas de una cierta forma se presenten en la relaci´on.
Ejemplo
BC
pr´estamo nombre cliente calleNum ciudad
P23 G´omez Llavel 25-A-201 Cuernavaca
P23 G´omez Insurgentes 4141 M´exico D.F.
P93 P´erez Ju´arez 85 Oaxaca
Si el cliente G´omez obtuviera otro pr´estamo, digamos el P27, se tendr´ıan que agregar dos tuplas:
pr´estamo nombre cliente calleNum ciudad
P23 G´omez Clavel 25-A-201 Cuernavaca
P23 G´omez Insurgentes 4141 M´exico D.F.
P27 G´omez Clavel 25-A-201 Cuernavaca
P27 G´omez Insurgentes 4141 M´exico D.F.
P93 P´erez Ju´arez 85 Oaxaca
Se requiere que esta relaci´on tenga la DMVnombre calleNum
ciudad
Se debe verificar est´a condici´on para TODOS los pares de tuplas que coincidan con elnombre, no s´olo con un par.
Reglas para las DMV
Sean A={A1A2...An},B ={B1B2...Bm}conjuntos de atributos de una
relaci´on R. Las DMVs satisfacen las siguientes reglas:
1 Complemento. Si se tiene que AB para alguna relaci´on, entonces
se debe tenerAC , donde C son todos atributos de R que no son
ni As, ni Bs.
2 Transitividad. Si se tienen las DMVsAB,B C entonces
tambi´en se tiene queAC −B
3 Replicaci´on. Toda DF es una DMV.
El rev´es de esta regla no es cierto.
4 Las DMV no obedecen las reglas de divisi´on/combinaci´on.
Ejemplo
Sea R = (A,B,C,G,H,I) y DMV = A B, B HI, CG H
Aplicando las reglas se puede obtener:
A CGHI; por la regla de la complemento.
A HI; por la regla de transitividad aplicada a la primera y segunda dependencias.
¿ B H, B I?
Una DMV A1A2...AnB1B2...Bm esno-trivial si:
Ninguna de las B’s est´a contenida en las A’s. R tiene m´as atributos que las A’s y las B’s. Una relaci´on R est´a en 4NF si en toda DMV no-trivial
A1A2...AnB1B2...Bm se tiene que {A1A2...An} es una superllave.
Notar que las nociones de llaves y superllaves dependen s´olo de las DFs.
La 4NF es una generalizaci´on a la BCNF debido a que toda DF es una
DMV.
Algoritmo para convertir a 4FN
Objetivo: Eliminar redundancia debida al efecto multiplicativo de las DMVs.
1 Encontrar una violaci´on a la 4NF, es decir,A1A2...AnB1B2...Bm
donde el conjunto de las A’s no forma una superllave.
2 Dividir la relaci´on en dos esquemas: El que contiene las A’s y las B’s
El que contiene las A’s y los atributos de R que no est´an entre las B’s. 3 Si alguno de los esquemas no estuviera en 4NF ir al paso 1.
En este caso no hay pruebas anal´ogas a las de la cerradura de atributos para las DFs.
Ejemplo
Sea BC(prest´amo, nombre, calleNum, ciudad)con la dependencias
{nombre → pr´estamo, nombre calleNum ciudad}
Se tiene que la DMV viola la 4NF. Aplicando el algoritmo se tienen: En cada esquema no hay DMV no-triviales ni DFs no-triviales, por tanto est´a en 4NF.
Otro ejemplo
Sea R(A,B,C,D,E,F), con {A→ B, A CD, A EF}
Llave:
Al dividir llegamos a:
Relaci´
on entre las formas normales
4NF BCNF 3NF
Propiedad 3NF BCNF 4NF
Elimina redundancia por DF’s La mayor´ıa S´ı S´ı
Elimina redundancia por DMV’s No No S´ı
Conserva DF’s S´ı Quiz´a Quiz´a
Ejemplo
Sup´on que tiene una relaci´on R como sigue, para registrar a personas con sus hijos y autos.
R(nombre, curp, fechaNac, nombreHijo, curpHijo, fechaNacHijo, motor, marca)
Define las dependencias que se deber´ıan esperar para esta relaci´on y normaliza si es necesario.