Introducción. las tuplas en R. {C 1, C 2,..., C j } sobre R. 1 {A 1, A 2,..., A n } = {B 1, B 2,..., B i } {C 1, C 2,..., C j }

Texto completo

(1)

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.

(2)

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

(3)

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

(4)

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.

(5)

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.

(6)

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,

(7)

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 BA y ni se tieneAB 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.

(8)

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.

(9)

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.

(10)

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.

(11)

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.

(12)

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.

(13)

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.

(14)

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.

(15)

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.

(16)

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.

(17)

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.

(18)

Ejemplos:

1 Determinar los atributos superfluos de F ={AB→ C, A→ C}

¿A es superfluo en AB→C?. ¿B es superfluo en AB→C?.

(19)

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.

(20)

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.

(21)

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}

(22)

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.

(23)

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.

(24)

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

(25)

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.

(26)

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).

(27)

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

(28)

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.

(29)

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.

(30)

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.

(31)

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.

(32)

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.

(33)

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.

(34)

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.

(35)

Otro ejemplo

Sea R(A,B,C,D,E,F), con {A→ B, A CD, A EF}

Llave:

Al dividir llegamos a:

(36)

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

(37)

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.

Figure

Actualización...

Referencias

Actualización...

Related subjects :