Está en la página 1de 18

0

Tema 2 Dependencias funcionales


Tema 4B
Dependencias Funcionales
1
Tema 2 Dependencias funcionales 4B
Introduccin
Definicin de dependencia funcional
Cierre de un conjunto de dependencias funcionales
Clculo de claves candidatas
Equivalencia entre conjuntos de dependencias funcionales
Recubrimiento minimal (o cannico)
Descomposicin de reunin sin prdidas
Descomposicin que preserva las dependencias
ndice del tema
2
Tema 2 Dependencias funcionales 4B
Introduccin
Las conexiones entre atributos definen dependencias.

La mayora de los problemas de diseo se deben
a la aparicin de determinados tipos de dependencias:
interacciones entre atributos que causan anomalas de
insercin, actualizacin o borrado.

Estas anomalas se pueden eliminar descomponiendo las
relaciones problemticas.

La descomposicin se har por proyeccin de tal forma que
se pueda recuperar la relacin original mediante reunin.

Las dependencias existentes nos servirn para determinar
cul debe ser la descomposicin correcta.

3
Tema 2 Dependencias funcionales 4B
Introduccin
Planteamiento general

1. Detectar dependencias (conexiones entre atributos)
A priori:
Hiptesis semnticas
(conocimiento del dominio)
A posteriori:
Hiptesis extradas de bases de datos existentes
(data mining o KDD [Knowledge Discovery in Databases])

OJO! Un esquema define dependencias y todas sus instancias han de
verificarlas. Que una instancia satisfaga una dependencia es una
condicin necesaria pero no suficiente para que la dependencia se
d en el esquema.

2. Descomponer adecuadamente las relaciones problemticas.
4
Tema 2 Dependencias funcionales 4B
Introduccin
Notacin

A, B... Atributos simples
o, |... Conjuntos de atributos o| = o|
R, S... Esquemas de relaciones
r Instancia de una relacin
t Tupla
t[A] Valor del atributo A en la tupla
5
Tema 2 Dependencias funcionales 4B
Definicin de dependencia funcional
Dependencia funcional

o|

Sean un esquema R y dos subconjuntos de atributos, o_R y |_R.

Decimos que o determina funcionalmente a |, o que |
depende funcionalmente de o, lo que notamos por o|, si y
slo si se verifica, que para toda relacin r instancia de ese
esquema:
t
1
,t
2
er ; t
1
[o]=t
2
[o] t
1
[|]=t
2
[|]

6
Tema 2 Dependencias funcionales 4B
Ejemplo
Consideremos la relacin:

PROVEEDOR (s#, nombre, apellidos, ciudad, status)

Si suponemos que la ciudad establece el status de cada proveedor, es decir:
Si est en un pueblo, status=1
Si est en una ciudad de ms de 100.000 habitantes, status=2

entonces:
ciudad status

Si suponemos que (nombre, apellidos) es una clave candidata,
entonces:
(nombre, apellidos) status
Definicin de dependencia funcional
7
Tema 2 Dependencias funcionales 4B
Definicin de dependencia funcional
Consideraciones

Si K es una clave candidata, AeR KA,
ya que t
1
,t
2
er ; AeR ; t
1
[K]=t
2
[K] t
1
[A]=t
2
[A]

En el ejemplo anterior, si suponemos que (nombre,apellidos)
es una clave candidata, entonces:
(nombre, apellidos) Status
(nombre, apellidos) Ciudad
(nombre, apellidos) s#

Existen dependencias triviales: AA, ABA, ABB
En general:
o, | _ R ; o | si | _ o
8
Tema 2 Dependencias funcionales 4B
Definicin de dependencia funcional
Las dependencias funcionales, como elementos de la
definicin del problema que intentamos modelar, deben
actuar como restricciones de integridad y formar parte
del esquema de la base de datos.

Las dependencias funcionales pueden servir para recuperar
informacin perdida. Sean R una relacin y AB una
dependencia funcional definida sobre ella. Supongamos que

- ter / t[A]=a
1
y t[B]=b
1

y aparece una tupla s tal que s[A]=a
1
y s[B]=null.
Para mantener la integridad debe ocurrir que:
s[B]=b
1

9
Tema 2 Dependencias funcionales 4B
Definicin de dependencia funcional
Ejemplo
En el caso anterior,
supongamos que sabemos que se verifica la dependencia funcional
ciudad status

En cuanto encontremos una tupla t tal que
t[ciudad]=Granada y t[status]=4
entonces sabremos que todos los proveedores de Granada tienen
status igual a 4:
s[ciudad]=Granada s[status]=4
10
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Dependencias funcionales lgicamente implicadas

Idea bsica:
Se pueden deducir dependencias funcionales a partir de otras.

Ejemplo: De AB y BC se deduce AC

Demostracin: Sean R y A,B,C e R y supongamos que AB y
BC. Sean r una instancia de R y s,ter tuplas cualesquiera.
Supongamos t[A]=s[A]. Por definicin de dependencia
funcional tenemos t[B]=s[B] y como BC, tenemos que
t[C]=s[C] , luego:
t[A]=s[A] t[C]=s[C] y por tanto AC c.q.d.

11
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Definicin:
F o|

Sean R una relacin y F un conjunto de dependencias funcionales
asociadas a la misma. Sean o,| _ R. Decimos que o| est
determinada lgicamente por F o que F determina lgicamente a
o|, lo que notaremos F o|, si cualquier instancia de R que
satisface el conjunto de dependencias F, satisface tambin o|.

Consecuencias de la definicin
Una dependencia lgicamente implicada por otras es aquella que
se puede deducir matemticamente a partir de las otras.
Dado un esquema de relacin R y un conjunto de dependencias F
detectado en l, las dependencias asociadas a R son realmente
las incluidas en F y las que se pueden deducir de l.
12
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Cierre de un conjunto de dependencias funcionales
Sea R una relacin y F un conjunto de dependencias
asociadas. Llamamos cierre de F y notamos F
+
al conjunto:

F
+
= { o| o,| _ R y F o| }

Ejemplo:
Sea R={ABC} y F={AB, BC}
Para el calculo de F
+
tenemos en cuenta que:
AB y BC AC
AA, BB, CC, ABAB, CBCB, ACAC, ABCABC
ABA, ABB, ABCA, ABCB, ABCC, ABCAB,
ABCAC, ABCCB
CC, CC

13
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Dado un conjunto de dependencias funcionales,
existe una forma de calcular su cierre?

Axiomas de Armstrong (1974)
Conjunto de reglas lgicas para deducir dependencias
funcionales a partir de otras dependencias funcionales

Reglas iniciales:

A1. Reflexividad o,| ; |_o o|

A2. Ampliacin o, |, ; o| o|

A3. Transitividad o, |, , o| y | o

14
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Propiedades de los axiomas de Amstrong

1. Los axiomas de Armstrong son correctos

Dado un conjunto de dependencias, si le aplicamos los
axiomas de Armstrong, no deducimos dependencias
incorrectas.

Demostracin
El axioma de reflexividad: o,|_R ; |_o ; r instancia de R y t,ser
t[o]= s[o] t[|]= s[|]
El axioma de aumento: o,|, _ R tales que o |. Supongamos t,s er
tales que t[o]=s[o], pero t[|]<>s[|]. Como t[]=s[], eso quiere
decir que t[|]<>s[|], lo que contradice la dependencia o |, puesto que
t[]=s[]. Por tanto, o | c.q.d.
El axioma de transitividad se ha probado previamente como ejemplo de
deduccin de reglas.
15
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias

2. Los axiomas de Armstrong son completos.

Dado un conjunto de dependencias funcionales F,
su aplicacin iterativa conduce a la obtencin de F
+
.

-D- Demostracin en el libro de Ullman


16
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Axiomas adicionales:
Se deducen de las reglas iniciales
y permiten el clculo de F
+
mas cmodamente

A4. Unin o,|, ; o| y o o|

A5. Descomposicin o, |, ; o| o| y o

A6. Pseudotransitividad o, |, , o o| y | o o o

Consecuencia:

A B
1
...B
n
A B
1
, A B
2
... A B
n

17
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Ejemplo del clculo de F
+
usando los axiomas de Armstrong

Sea R=(A,B,C,D) y F={AC,BD}
Aplicacin sucesiva de A1: A A, B B, C C, D D AC AC, AC C,
AC A, AB AB, AB B, AB A,BC BC, BC B, BC C, AD AD,
AD D, AD A, BD BD, BD B, BD D, DC D, DC C, ABC ABC,
ABC AB, ABC AC, ABC BC, ABDABD, ABD AB, ABC A, ABC B,
ABC C, ABD AD, ABD BD, BCD BCD, BCD BC, ABD A,
ABD B, ABD D, BCD BCD, BCD BD,BCD BC, BCD CD,
BCD C, BCD B, BCD D, ABCD ABCD, ABCD ABC, ABCD ABD,
ABCD BCD, ABCD AB, ABCD AC, ABCD AD, ABCD BC, ABCD BD,
ABCD CD, ABCD A, ABCD B, ABCD C, ABCD D
Aplicacin sucesiva A2: AC{ABBC , ABABC, ABDBCD, ADDC,
ADADC, ADBABDC} ; BD {ABAD, ABABD, ABCADC, BCDC,
BCBDC, ABCABDC}

Aplicacin sucesiva de A4: ABC, ABDC, ADC, ABD, ABCD ........

18
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Problema: El clculo de F
+
es muy tedioso,
incluso si se aplican los axiomas de Armstrong.
Se pueden evitar las dependencias triviales,
salvo para deducir otras.
Sera deseable trabajar con conjuntos de dependencias lo ms
simples posibles. Por ejemplo:
{A BCD, A BC,A D,A CD}
nos dice lo mismo que {A B, A C, A D}
En cualquier caso si F _ {AB
1
, ...,A B
n
},
entonces F
+
incluye al menos 2
n
dependencias funcionales.
Solucin: Trabajar con cierres parciales de subconjuntos de
atributos con respecto a un conjunto de dependencias funcionales.
19
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Definicin:

Sean R, F y o_ R. Definimos el cierre de o con respecto a F,
o
+
F
, como el conjunto de atributos AeR tales que oA puede
deducirse de F mediante la aplicacin de los axiomas de
Armstrong.

Equivalentemente

o
+
F
= { AeR | oA e F
+
}



20
Tema 2 Dependencias funcionales 4B
Cierre de un conjunto de dependencias
Propiedad:

o,| _ R ; o| e F
+
si y slo si | _ o
+
F

Demostracin:
Sea |=A
1
...A
n
, y supongamos o|e F
+
. Por el axioma de
descomposicin i=1...n, oA
i
e F
+
, luego i=1...n, A
i

eo
+
F
y por tanto |_o
+
F
.
Supongamos ahora |_o
+
F
y que |=A
1
...A
n
. Por definicin
i=1...n, oA
i
e F
+
, y por el axioma de unin o|e F
+
.

Esta propiedad nos permite saber si o|e F
+
calculando o
+
F
21
Tema 2 Dependencias funcionales 4B
Clculo del cierre de un conjunto de atributos:
Dados R y F y o_ R, mediante el siguiente algoritmo
calcularemos una secuencia de conjuntos o
0
, o
1
... hasta
obtener o
+
F
:

o
0
= o
Calcular o
i+1
= o
i
{A | -o e F ; Aeo ; _ o
i
}
mientras o
i+1
o
i

o
+
F
= ltimo o
i
calculado

El algoritmo siempre termina puesto que R es finito
El algoritmo calcula correctamente el cierre
-D- Demostracin en el libro de Ullman
Cierre de un conjunto de dependencias
22
Tema 2 Dependencias funcionales 4B
Clculo de claves candidatas
Ejemplo

Sean: R={A, B, C, H, G, I}
F = {AB, AC, CGH, CGI, BH} ; o={AG}

o
0
={A,G}
o
1
={A,G}{B} (debido a AB) {C} (debido a AC)
o
2
={A,G,B,C}{H} (debido a CGH) {I} (debido a GCI)
o
3
={A,G,B,C,H,I} C
o
2
= o
3
, luego el algoritmo termina

El cierre de {AG} es todo R {AG}R eF+

Es {AG} una clave candidata?
Se pueden calcular claves candidatas por medio de este algoritmo?.
23
Tema 2 Dependencias funcionales 4B
Clculo de claves candidatas
Clculo de claves candidatas
mediante el cierre de un conjunto de atributos:
Propiedad:
Sean R, F conjunto de DFs asociado a R y o_R,

o
+
F
= R o tiene la propiedad de unicidad (es una superclave)

Demostracin:
o
+
F
= R o R e F
+
. Por tanto AeR , r instancia de R y
t
1
,t
2
er se cumple que t
1
[o|= t
2
[o| t
1
[A|= t
2
[A| ; luego si
t
1
[o|= t
2
[o| t
1
= t
2
y como no hay tuplas duplicadas o es
una superclave.
o es una superclave o R e F o
+
F
= R.
Conclusin:
Si o
+
F
= R y o es minimal entonces o es una clave candidata
24
Tema 2 Dependencias funcionales 4B
Clculo de claves candidatas
Algoritmo para el clculo de claves candidatas:
Sean R, F conjunto de DFs asociado a R y n=card(R)

CK=C (CK conjunto de claves candidatas)
Para i = 1 .. n
Para todo o_R tal que card(o)=i y -(|eCK ; |_o)
Calcular o
+
F
;
Si o
+
F
= R, incluir o en CK

25
Tema 2 Dependencias funcionales 4B
Clculo de claves candidatas
Ejemplo del clculo de claves candidatas
mediante el cierre de un conjunto de atributos:
R={A,B,C,D,E} y F = {ABC, BD, CDE, EA} n=5;
i=1
A
+
F
={A,B,C,D,E} ; CK={A}
B
+
F
={B,D} ;
C
+
F
={C} ;
D
+
F
={D}
E
+
F
={A,B,C,D,E} ; CK={A,E}
i=2 (consideramos conjuntos de dos atributos a que no incluyan a A ni a E)
BC
+
F
={A,B,C,D,E}; CK={A,E,BC}
BD
+
F
={B,D}
CD
+
F
={A,B,C,D,E}; CK={A,E,BC,CD}
i=3 (no existen conjuntos de tres atributos que no incluyan a A, E, BC o CD)
i=4 (idem)
i=5 (idem)
CK={A,E,BC,CD}
26
Tema 2 Dependencias funcionales 4B
Equivalencia entre conjuntos de DFs
Sean F y G conjuntos de DFs asociadas a R:

F G si y slo si F
+
=G
+
(de F y de G se pueden deducir las mismas dependencias)

Por definicin, o_R ; si F G o
+
F
=o
+
G

Para probar que F
+
_ G
+
, basta probar que F _ G
+
Sea o| eF
Si F_G
+
, o| puede deducirse de los elementos de F y, por
tanto, de los de G, luego o| eG
+

Para probar que o| e G
+
, basta calcular o
+
G
y ver si | _ o
+
G

27
Tema 2 Dependencias funcionales 4B
Equivalencia entre conjuntos de DFs
Algoritmo de deteccin de conjuntos de DFs equivalentes
F
+
=G
+


F
+
_G
+
y G
+
_F
+

Comprobacin de F
+
_ G
+
Para todo o| eF
Calcular o
+
G

Si | no est incluido en o
+
G
entonces F
+
= G
+
Comprobacin de G
+
_ F
+

Para todo o eG
Calcular
+
F

Si o no est incluido en
+
F
entonces F
+
= G
+


28
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Idea: Si tenemos dos conjuntos de dependencias funcionales
equivalentes F y G, y G tiene dependencias funcionales ms simples
que las de F, por qu no quedarnos slo con G? As slo tendremos
que analizar un conjunto de dependencias ms sencillo.

Sean R un esquema y F un conjunto de DFs asociadas,
F
C
es un recubrimiento cannico (o minimal) de F si verifica:
F
+
C
=F
+
F
C
es minimal
o|e F
C
card(|)=1
(| es monoatributo)
o|e F
C
F
+
C
= (F
C
- {o|})
+

(F
C
es el mnimo conjunto equivalente a F)
o|e F
C
, co F
+
C
= (F
C
- {o|}{ |})
+

(F
C
tiene los antecedentes ms simples posibles).
29
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Ejemplo
R={A,B,C,D,E,G)
F={ABC, CA, BC D, ACDB, D EG, BEC, CGBD, CEAG}.
1.- Descomposicin de consecuentes
F
C
= { ABC, CA, BC D, ACDB, D E, D G, BEC, CGB,CGD,
CEA, CEG }
2.- Eliminacin de DFs derivadas de otras (redundantes):
CEA se deriva de CA (y se elimina)
CGD se deriva de CGB y BC D (y se elimina)
ACDB se deriva de D G, CG B (y se elimina)
F
C
={ABC, CA, BCD, DE, D G, BEC, CG B, CEG}.
3.- Simplificacin de antecedentes
No se puede simplificar
Por tanto,
F
C
={ABC, CA, BCD, DE, D G, BEC, CG B, CEG}.

30
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DEF, CA, BEC, BCD, CFBD, ACDB, CEAF}

Paso 1. Descomposicin de parte derecha
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD,
ACDB, CEA, CEF}

31
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD,
ACDB, CEA, CEF}

Paso 2. Simplificacin en parte izquierda (atributos
raros)
Para una dependencia, oAB, se dice que A es raro con respecto
a o si y solo si A pertenece a o
+
F



32
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD,
ACDB, CEA, CEF}

Paso 2. Simplificacin en parte izquierda (atributos
raros)
ABC,
A
+
={A}, B no pertenece a A
+
luego B no es raro repecto a A
B
+
={B}, A no pertenece a B
+
luego A no es raro respecto a B
luego ABC se queda como est.


33
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD,
ACDB, CEA, CEF}
Paso 2. Simplificacin en parte izquierda (atributos
raros)
ACDB,
{AC}
+
={A, C}, luego D no es raro con respecto a {AC}
{AD}
+
={A, D, E, F}, luego C no es raro con respecto a {AD}
{CD}
+
={C, D, E, F, A, B}, luego A es raro respecto a {CD}
luego ACDB se cambia por CDB, pero hay que seguir
comprobando dentro de {CD}


34
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD, CDB,
CEA, CEF}
Paso 2. Simplificacin en parte izquierda (atributos
raros)
CDB,
C
+
={C, A}, D no pertenece a C
+
luego D no es raro respecto a C
D
+
={D, E, F}, C no pertenece a D
+
luego C no es raro respecto a D
luego CDB queda como est.



35
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD, CDB,
CEA, CEF}
Paso 2. Simplificacin en parte izquierda (atributos
raros)
CDB,
C
+
={C, A}, D no pertenece a C
+
luego D no es raro respecto a C
D
+
={D, E, F}, C no pertenece a D
+
luego C no es raro respecto a D
luego CDB queda como est.



36
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD, CDB,
CEA, CEF}
Paso 3. Eliminar dependencias redundantes
ABC es redundante si C est en {AB}
+
F-{ABC}
{AB}
+
F-{ABC}
={A, B}, C no est en {AB}
+
F-{ABC}
luego no es
redundante y aparece en F
DE es redundante si E est en D
+
F-{DE}

D
+
F-{DE}
={D, F}, E no est en D
+
F-{DE}
luego DE no es
redundante y aparece en F



37
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD, CDB,
CEA, CEF}
Paso 3. Eliminar dependencias redundantes
...

CFB es redundante si B est {CF}
+
F-{CFB}
{CF}
+
F-{CFB}
={C, F, A, D, B, E}, B est en {CF}
+
F-{CFB}
luego CFB es redundante y no aparece en F



38
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal
Otro Ejemplo,
R(A,B,C,D,E,F)
F={ABC, DE, DF, CA, BEC, BCD, CFB, CFD, CDB,
CEA, CEF}
Paso 3. Eliminar dependencias redundantes
...

CEA es redundante si A est en {CE}
+
F-{CEA}
{CE}
+
F-{CEA}
={C, E, A, F, D, B}, A est en {CE}
+
F-{CEA}
luego
CEA es redundante y no aparece en F



39
Tema 2 Dependencias funcionales 4B
Recubrimiento minimal


Conjunto final
F={ABC, DE, DF, CA, BEC, BCD, CFD, CDB, CEF}



40
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Idea

Dado un esquema R de una relacin con problemas,
obtener dos relaciones R
1
y R
2
tales que
R
1
c R y R
2
c R
R
1
y R
2
sin problemas
r instancia de R, si r
1
=H
R1
(R) y r
2
=H
R2
(R): r=r
1
r
2

Podemos sustituir r por r
1
y r
2
y recuperar r a travs de la reunin r
1
r
2

(no se pierde informacin)

41
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Descomposicin:

Dado un esquema de relacin R, llamaremos descomposicin
de R a un conjunto de subesquemas ={R
1
,....,R
k
} tales que:
i={1,...,k} R
i
c R
R= R
1
.... R
k

Notacin:
r instancia de R, notaremos
r
i
= H
Ri
(r)
m(r) = r
1
... r
k
42
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Propiedades

Dados un esquema de relacin R, una descomposicin ={R
1
,....,R
k
} de
R y una instancia r de R, se verifica:

r _ m(r)

i={1,...,k} H
Ri
(m(r)) = r
i


m(m(r)) = m(r)
-D- Demostraciones en el libro de Ullman
43
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Descomposicin de reunin sin prdidas:

Dados R un esquema de relacin,
F un conjunto de dependencias funcionales asociado
y una descomposicin de R, ={R
1
,....,R
k
},
decimos que

es una descomposicin de reunin sin prdidas si y slo si
r instancia de R, que verifique F, si r
i
=H
Ri
(r) entonces
r = m(r) = r
1
... r
k

r es recuperable por reunin a partir de los elementos de .

44
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Una descomposicin sin prdidas garantiza una reunin sin
tuplas espreas.

En una descomposicin | que no sea sin prdidas:

-s, instancia de R tal que s c m| (s)

La recuperacin por reunin en una descomposicin con prdidas
aade tuplas que no pertenecen realmente a la instancia s.

Que una descomposicin sea sin prdidas depende de la
descomposicin y del conjunto de dependencias funcionales.
45
Tema 2 Dependencias funcionales 4B
Ejemplo de descomposicin con prdidas

R = Alumno(DNI, nombre, email, ciudad, curso, asignatura)

= { R
1
(nombre, email, ciudad, DNI),
R
2
(DNI, asignatura),
R
3
(curso, asignatura) }

Instancia r:




245678 Jose pp@ugr.es Almeria 3 BD2
242879 Antonio toni@ugr.es Granada 2 BD2
245678 Jose pp@ugr.es Almeria 3 MABD
242879 Antonio toni@ugr.es Granada 2 BD1
245622 Juan jj@ugr.es Granada 4 MABD

Descomposicin de reunin sin prdidas
46
Tema 2 Dependencias funcionales
2 BD2
3 BD2
3 MABD
2 BD1
4 MABD

Jose pp@ugr.es Almeria 245678
Antonio toni@ugr.es Granada 242879
Juan jj@ugr.es Granada 245622
245678 BD2
242879 BD2
245678 MABD
242879 BD1
245622 MABD
Ejemplo de descomposicin con prdidas

Instancia r:



Proyecciones r
1
:


r
2
: r
3
:
Descomposicin de reunin sin prdidas
245678 Jose pp@ugr.es Almeria 3 BD2
242879 Antonio toni@ugr.es Granada 2 BD2
245678 Jose pp@ugr.es Almeria 3 MABD
242879 Antonio toni@ugr.es Granada 2 BD1
245622 Juan jj@ugr.es Granada 4 MABD

47
Tema 2 Dependencias funcionales
Ejemplo de descomposicin con prdidas



=




r
2
r
3
r
2
r
3



245678 BD2
242879 BD2
245678 MABD
242879 BD1
245622 MABD

245678 2 BD2
245678 3 BD2
242879 2 BD2
242879 3 BD2
245678 3 MABD
245678 4 MABD
242879 2 BD1
245622 3 MABD
245622 4 MABD



2 BD2
3 BD2
3 MABD
2 BD1
4 MABD

Descomposicin de reunin sin prdidas
48
Tema 2 Dependencias funcionales
245678 2 BD2
245678 3 BD2
242879 2 BD2
242879 3 BD2
245678 3 MABD
245678 4 MABD
242879 2 BD1
245622 3 MABD
245622 4 MABD
Ejemplo de descomposicin con prdidas
r
1



r
2
r
3
r
1
(r
2
r
3
)

Descomposicin de reunin sin prdidas
Jose pp@ugr.es Almeria 245678
Antonio toni@ugr.es Granada 242879
Juan jj@ugr.es Granada 245622

245678 Jose pp@ugr.es Almeria 2 BD2
245678 Jose pp@ugr.es Almeria 3 BD2
242879 Antonio toni@ugr.es Granada 2 BD2
242879 Antonio toni@ugr.es Granada 3 BD2
245678 Jose pp@ugr.es Almeria 3 MABD
245678 Jose pp@ugr.es Almeria 4 MABD
242879 Antonio toni@ugr.es Granada 2 BD1
245622 Juan jj@ugr.es Granada 3 MABD
245622 Juan jj@ugr.es Granada 4 MABD

49
Tema 2 Dependencias funcionales
Ejemplo de descomposicin con prdidas

r
1
(r
2
r
3
) r






8 tuplas espreas
Descomposicin de reunin sin prdidas
245678 Jose pp@ugr.es Almeria 2 BD2 8
245678 Jose pp@ugr.es Almeria 3 BD2
242879 Antonio toni@ugr.es Granada 2 BD2
242879 Antonio toni@ugr.es Granada 3 BD2 8
245678 Jose pp@ugr.es Almeria 3 MABD
245678 Jose pp@ugr.es Almeria 4 MABD 8
242879 Antonio toni@ugr.es Granada 2 BD1
245622 Juan jj@ugr.es Granada 3 MABD 8
245622 Juan jj@ugr.es Granada 4 MABD


50
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Cualquier otra instancia de la relacin que incluya la misma
asignatura en distintos cursos tampoco se podr recuperar.

La subrelacin problemtica es R
3
(asignatura, curso)

Si nos fijamos en las dependencias funcionales, vemos que:
R
1
recoge las dependencias DNI(nombre,ciudad,edad)
R
2
no recoge ninguna dependencia
R
3
tampoco recoge ninguna dependencia;
pero parte la dependencia DNIcurso

Si existiese la dependencia asignaturacurso en lugar de
DNIcurso, la descomposicin siempre sera sin prdidas.

51
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Diseo de bases de datos

Cuando se descompone una relacin,
la descomposicin ha de hacerse siempre
segn una descomposicin de reunin sin prdidas.

Las dependencias funcionales del esquema
nos sirven para determinar si una descomposicin es sin prdidas.

Debemos saber
Cundo una descomposicin es sin prdidas.
Cmo construir una descomposicin sin prdidas.


52
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Algoritmo de deteccin de descomposicin sin prdidas

Dados R={A
1
,...,A
n
} un esquema de una relacin,
F el conjunto de dependencias funcionales asociadas a R
y ={R
1
,..,R
k
} un descomposicin de R.

se trata de saber si es una descomposicin sin prdidas.

Descripcin del algoritmo:
El algoritmo se basa en la construccin de una tabla asociada al esquema y
a la descomposicin.
Esta tabla se ir modificando iterativamente a partir del conjunto de
dependencias funcionales.
Si, durante el proceso, se obtiene una fila con un formato determinado, se
concluye que la descomposicin es sin prdidas.
Si llegamos a un punto en el que la tabla no se puede seguir modificando
sin haber encontrado la fila buscada, entonces se deduce que la
descomposicin no es sin prdidas
53
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Algoritmo de deteccin de descomposicin sin prdidas
Construccin de la tabla inicial:

Se construye una tabla T (kn),
k filas asociadas a los subesquemas de y
n columnas asociadas a los atributos de R.

Inicializacin:
T
ij
= a
j
si A
j
eR
i
T
ij
= b
ij
en caso contrario
La fila i corresponde al subesquema R
i
La columna j corresponde al atributo A
j
54
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Algoritmo de deteccin de descomposicin sin prdidas
Proceso de modificacin de la tabla:

Mientras la tabla cambie
y no se obtenga una fila completa igual a (a
1
...a
n
)
Para cada dependencia funcional o| e F
Buscamos filas que coincidan en los valores para o
e igualamos los valores para los atributos de |:
Al igualar los smbolos de una columna en las filas correspondientes al
mismo valor de o, si uno de ellos es a
j
, hacemos los otros igual a a
j
. Si son
b
ij
y b
lj
, entonces elegimos uno al azar y hacemos la sustitucin en todas las
filas cuyos valores coinciden para o.

Si se ha obtenido una fila completa igual a (a
1
...a
n
)
la descomposicin es sin prdidas
si no
la descomposicin no es sin prdidas
55
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Ejemplo
Consideremos el ejemplo anterior:
R = Alumno (DNI, nombre, ciudad, curso, email, asignatura)
F = {DNInombre, DNIciudad, DNIemail, DNIcurso}

1
er
caso: Descomposicin sin prdidas
={R
1
(DNI,nombre,email,ciudad,curso), R
2
(DNI,asignatura)}

Tabla inicial
DNI Nombre Ciudad Curso E-mail Asignatura
R
1
a
1
a
2
a
3
a
4
a
5
b
16

R
2
a
1
b
22
b
23
b
24
b
25
a
6

56
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
1
er
caso: Descomposicin sin prdidas

DNI nombre b
22
= a
2




DNI ciudad b
23
= a
3

DNI Nombre Ciudad Curso E-mail Asignatura
R
1
a
1
a
2
a
3
a
4
a
5
b
16

R
2
a
1
a
2
b
23
b
24
b
25
a
6

DNI Nombre Ciudad Curso E-mail Asignatura
R
1
a
1
a
2
a
3
a
4
a
5
b
16

R
2
a
1
a
2
a
3
b
24
b
25
a
6

57
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
1
er
caso: Descomposicin sin prdidas

DNI curso b
24
=a
4




DNI email b
25
=a
5




Se ha obtenido una fila (a
1
....a
n
),
por lo que la descomposicin es sin prdidas
R
2

R
1

a
6
b
25
a
4
a
3
a
2
a
1

b
16
a
5
a
4
a
3
a
2
a
1

Asignatura E-mail Curso Ciudad Nombre DNI
R
2

R
1

a
6
a
5
a
4
a
3
a
2
a
1

b
16
a
5
a
4
a
3
a
2
a
1

Asignatura E-mail Curso Ciudad Nombre DNI
58
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
2 caso: Descomposicin con prdidas

= { R
1
(DNI, nombre, ciudad, email),
R
2
(DNI, asignatura),
R
3
(asignatura, curso) }

Tabla inicial:
DNI Nombre Ciudad Curso E-mail Asignatura
R
1
a
1
a
2
a
3
b
14
a
5
b
16

R
2
a
1
b
22
b
23
b
24
b
25
a
6

R
2
b
31
b
32
b
33
a
4
b
35
a
6
59
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
2 caso: Descomposicin con prdidas
DNI nombre b
22
=a
2
DNI ciudad b
23
=a
3
DNI curso b
24
=b
14
DNI email b
25
=a
5
Tabla final:






No se puede seguir cambiando la tabla,
por lo que concluimos que no es sin prdidas
DNI Nombre Ciudad Curso E-mail Asignatura
R
1
a
1
a
2
a
3
b
14
a
5
b
16

R
2
a
1
a
2
a
3
b
14
a
5
a
6

R
2
b
31
b
32
b
33
a
4
b
35
a
6
60
Tema 2 Dependencias funcionales 4B
Dado un esquema R y un conjunto de DFs F.
Como encontrar una descomposicin sin prdidas?

Siguiendo un proceso iterativo que garantiza en cada paso que
la descomposicin efectuada es sin prdidas.

Teorema de Heath (1971)

={R
1
,R
2
} es sin prdidas


Corolario
R(o,|,): o| e F
+
={ R
1
(o,|), R
2
(o,)} es sin prdidas
Descomposicin de reunin sin prdidas
R
1
R
2
R
1
- R
2
e F
+
o bien
R
1
R
2
R
2
- R
1
e F
+
61
Tema 2 Dependencias funcionales 4B
Descomposicin de reunin sin prdidas
Teorema
Dadas ={R
1
,...,R
k
} descomposicin sin prdidas de R y
={S
1
,S
2
} descomposicin sin prdidas de R
1
,
se verifica que
={S
1
,S
2
, R
2
,...,R
k
} es una descomposicin sin prdidas de R.

Proceso iterativo para descomponer sin prdidas

Sea R=(o,|,) tal que o|eF
+
,
={R
1
,R
2
}, con R
1
=(o,|) y R
2
=(o,) es sin prdidas.
Si R
1
o R
2
presentan problemas, se descomponen como R,
p.ej. si R
1
=(o,q,), y oeF
+
,
={S
1
,S
2
}, con S
1
=(o,) y S
2
=(o,q), es sin prdidas,
por lo que tambin ={S
1
,S
2
,R
2
} es sin prdidas.
y as sucesivamente.
62
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Planteamiento

Dados un esquema R y un conjunto de dependencias F
asociado a R, si R se descompone en ={R
1
,...,R
k
}

Qu ocurre con las dependencias funcionales de F?

Solucin ideal

Si F genera G a travs de una descomposicin sin prdidas,
entonces sera deseable que
F
+
G
+

63
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Proyeccin de un conjunto de DFs:
Sean R un esquema de relacin y F un conjunto de DFs,
consideremos ScR. Definimos G=t
S
(F), proyeccin de F
sobre S, como el conjunto de dependencias funcionales de
F
+
que slo involucran atributos de S.

Algoritmo para el clculo de G=t
S
(F):
Sean R, F, S y m=card(S)
G=C
Para i = 1 .. m-1
Para todo o_S tal que card(o)=i
Calcular o
+
F
S;
A e o
+
F
S hacer G=G{oA}
64
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Ejemplo
R={A,B,C,D,E}
F={ABD, ACE, BCD, DA, EB}
S={A,B,C}, m=3

G=C

i=1
A
+
F
={A}
B
+
F
={B}
C
+
F
={C}

i=2 (conjuntos de dos atributos)
AB
+
F
={ABD}
AC
+
F
={ABCDE}; G={ACB}
BC
+
F
={ABCDE}; G={ACB, BCA}

65
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Descomposicin que preserva dependencias
Consideremos un esquema R, un conjunto de dependencias F, y
una descomposicin ={R
1
,...,R
k
} de R:

Decimos que preserva las dependencias de F si y slo si









NOTA: La inclusin en el otro sentido siempre se cumple

F siempre implica lgicamente a cualquiera de sus
proyecciones y, por tanto, tambin implica a su unin.
+
=
|
|

\
|
_ ) F ( F
1
Ri
k
i
t

Las dependencias existentes en las relaciones generadas por el proceso de


descomposicin tienen el mismo significado que las existentes en R.

66
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Ejemplo
Sea R=(calle, ciudad, cdigo_postal)
Supongamos las siguientes dependencias funcionales:
calle ciudad cdigo_postal
cdigo_postal ciudad

La descomposicin (calle, cdigo_postal), (ciudad, cdigo_postal)
es una descomposicin sin prdidas (Teorema de Heath):
{calle, cdigo_postal} {ciudad, cdigo_postal} = cdigo_postal
{ciudad, cdigo_postal} - {calle, cdigo_postal} = ciudad
cdigo_postal ciudad

Sin embargo, la dependencia calle ciudad cdigo_postal
se pierde (la descomposicin no preserva las dependencias).
67
Tema 2 Dependencias funcionales 4B
Algoritmo para detectar
si una descomposicin preserva las dependencias
Entradas:
Una descomposicin ={R
1
,...,R
k
} de R
Un conjunto de depencias funcionales F.

Salida: Una decisin acerca de si preserva F o no, para lo que
tenemos que comprobar si


Idea: Si encontramos una dependencia funcional o| e F tal que
| no est incluido en o
G
+
entonces sabremos que no preserva las
dependencias.
Descomposicin que preserva las dependencias
+
+
=
=
|
|

\
|
_ G
Ri
k
i
) F ( F
1
t

68
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Paso 1: Calculamos G




Calculamos t
Ri
(F) para cada R
i
e ={R
1
,...,R
k
},
utilizando el algoritmo para el clculo de la proyeccin
de un conjunto de DFs sobre un conjunto de atributos.

|
|

\
|
=
=
) F ( G
1
Ri
k
i
t

69
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Paso 2: Comprobamos que F _ G
+


Para cada dependencia XY e F:
Calculamos {X}
G
+
.
Comprobamos si Y_ {X}
G
+

Si Y no est contenido en {X}
G
+
F . G
+
La
descomposicin no preserva las dependencias.

Si hemos comprobado con xito todas las dependencias,
F _ G y la descomposicin preserva las dependencias.
70
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Ejemplo
R = {A,B,C,D}
F = {AB, BC, CD, DA}
= {{A,B},{B,C},{C,D}}

Calculamos t
Ri
(F) para cada R
i
e :
t
{A,B}
(F) = {AB, BA}
t
{B,C}
(F) = {BC, CB}
t
{C,D}
(F) = {CD, DC}

G = {AB, BA, BC, CB, CD, DC}
71
Tema 2 Dependencias funcionales 4B
Descomposicin que preserva las dependencias
Est F _ G
+
?
F={AB, BC, CD, DA}
G={AB, BA, BC, CB, CD, DC}

En este caso, la comprobacin es trivial. Algortmicamente:

{A}
+
G
={A,B,C,D}, AB e G
+
{B}
+
G
={A,B,C,D}, BC e G
+
{C}
+
G
={A,B,C,D}, CD e G
+
{D}
+
G
={A,B,C,D}, DA e G
+

La descomposicin preserva las dependencias.

También podría gustarte