Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
\
|
_ 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.