SPI/SPDF - Departamento de Computación

Anuncio
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Normalización
Clase Práctica
SPI y SPDF
Andrea Manna
Departamento de Computación - Facultad de Ciencias Exactas y Naturales
Universidad de Buenos Aires
Base de Datos
2do. Cuatrimestre 2015
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Esquema General
1
Introducción
2
Sin pérdida de información
3
Preservación de Dependencias Funcionales
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Esquema General
1
Introducción
2
Sin pérdida de información
3
Preservación de Dependencias Funcionales
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Dos Características de una Buena Descomposición
Sin Pérdida de Información
Preservación de Dependencias Funcionales
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Esquema General
1
Introducción
2
Sin pérdida de información
3
Preservación de Dependencias Funcionales
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Introducción
Esquema General
2
Sin pérdida de información
Introducción
Descomposición binaria
Algoritmo del Tableau
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Introducción
Definición
Si R es un esquema de relación descompuesto en los
esquemas R1 , R2 , ..., Rk y F es un conjunto de dependencias,
decimos que la descomposición es sin pérdida de información
(SPI) con respecto a F , si para toda relación r para R que
satisfaga F :
r = πR1 (r ) ./ πR2 (r ) ./ . . . ./ πRk (r )
Es decir, no debe perderse información en el proceso de
descomposición, de manera tal que r es la junta natural de sus
proyecciones sobre los Ri
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Introducción
Estrategias para comprobar SPI
Descomposiciones de dos esquemas
Descomposición binaria
Descomposiciones en más de dos esquemas
Algoritmo del Tableau
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Esquema General
2
Sin pérdida de información
Introducción
Descomposición binaria
Algoritmo del Tableau
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Teorema de la Descomposición Binaria
La descomposición ρ de R, ρ = (R1 , R2 ) es SPI respecto a un
conjunto de dependencias funcionales F sí y sólo sí:
F + contiene la DF: R1 ∩ R2 → (R1 - R2 )
o
F + contiene la DF: R1 ∩ R2 → (R2 - R1 )
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Ejemplo
Sea R = ABC y F = {A → B}.
Pregunta: La descomposición de R en AB y AC es SPI?
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Ejemplo
Sea R = ABC y F = {A → B}.
Pregunta: La descomposición de R en AB y AC es SPI?
Resp: Sí. AB ∩ AC = A, AB - AC = B, y A → B está en F + .
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Ejemplo
Sea R = ABC y F = {A → B}.
Pregunta: La descomposición de R en AB y AC es SPI?
Resp: Sí. AB ∩ AC = A, AB - AC = B, y A → B está en F + .
Tarea para el hogar:
La descomposición de R en AB y BC es SPI?
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Ejemplo
No todas las descomposiciones son sin pérdida, dado que existen
proyecciones cuya reunión no dan exactamente la relación original.
Ejemplo:
N_Empleado
Lopez
Lopez
Lopez
Perez
Funcion
diseñador
programador
diseñador
diseñador
N_Proyecto
Nueva España
Emprendedor
Emprendedor
Emprendedor
Se puede descomponer en dos tablas:
N_Empleado
Funcion
Funcion
Lopez
diseñador
diseñador
Lopez
programador
programador
Perez
diseñador
diseñador
Andrea Manna
SPI y SPDF
N_Proyecto
Nueva España
Emprendedor
Emprendedor
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Descomposición binaria
Ejemplo
Sin embargo, cuando se reunen las dos tablas, se obtienen
tuplas adicionales que no estaban en la original. Estas tuplas
se llaman espúreas creadas por los procesos de proyección y
reunión. Ya que sin la tabla original, no hay forma de identificar
cuáles tuplas son genuinas y cuáles espúreas, se puede
perder información (aún cuando se tienen más tuplas) si se
sustituyen las proyecciones para la relación original:
N_Empleado
Lopez
Lopez
Lopez
Perez
Perez
Andrea Manna
SPI y SPDF
Funcion
diseñador
programador
diseñador
diseñador
diseñador
N_Proyecto
Nueva España
Emprendedor
Emprendedor
Nueva España
Emprendedor
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Esquema General
2
Sin pérdida de información
Introducción
Descomposición binaria
Algoritmo del Tableau
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Definición de Tableau
Dado R = (A1 , . . . , An ), un tableau T para una descomposición
ρ = (R1 ,...,Rk ) de R se define de la siguiente forma:
1
T tiene n columnas, una para cada atributo de R
2
T tiene k filas, una para cada esquema de ρ
3
Dadas la fila i y la columna j (esquema Ri y atributo Aj ), el
contenido del tableau será:
aj si Aj ∈ Ri
o
bij si Aj ∈
/ Ri
Los aj se denominan símbolos distinguidos, y los bij no
distinguidos.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Algoritmo del Tableau
INPUT: Un esquema de relación R, un conjunto de dependencias funcionales
F , y una descomposición ρ. OUTPUT: Una decisión de si ρ es SPI.
Construir el Tableau T
mientras haya cambios sobre T
para cada df X → Y ∈ F
buscar filas que coincidan en todos los símbolos de X
Si se encontrasen dos filas, igualar los simbolos
para los atributos de Y. Cuando se igualan 2
símbolos, si alguno de ellos es aj , asignarle al otro aj .
Si ellos son bij y blj , asignarle a ambos bij o blj .
Si hay una fila con todos símbolos distinguidos, retornar Sí
end (mientras)
Retornar No
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1
Sea R = ABCDE, F = {A → B, D → C}.
Decidir si la descomposición ρ = {ABC, CDE, ADE} es SPI.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1 - Tableau Inicial
R = ABCDE, F = {A → B, D → C}, ρ = {ABC, CDE, ADE}
ABC
CDE
ADE
Andrea Manna
SPI y SPDF
A
a1
b21
a1
B
a2
b22
b32
C
a3
a3
b33
D
b14
a4
a4
E
b15
a5
a5
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1 - Tableau Intermedio
R = ABCDE, F = {A → B, D → C}, ρ = {ABC, CDE, ADE}
A→B
ABC
CDE
ADE
Andrea Manna
SPI y SPDF
A
a1
b21
a1
B
a2
b22
b32
C
a3
a3
b33
D
b14
a4
a4
E
b15
a5
a5
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1 - Tableau Intermedio
R = ABCDE, F = {A → B, D → C}, ρ = {ABC, CDE, ADE}
A→B
ABC
CDE
ADE
Andrea Manna
SPI y SPDF
A
a1
b21
a1
B
a2
b22
a2
C
a3
a3
b33
D
b14
a4
a4
E
b15
a5
a5
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1 - Tableau Intermedio
R = ABCDE, F = {A → B, D → C}, ρ = {ABC, CDE, ADE}
D→C
ABC
CDE
ADE
Andrea Manna
SPI y SPDF
A
a1
b21
a1
B
a2
b22
a2
C
a3
a3
b33
D
b14
a4
a4
E
b15
a5
a5
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1 - Tableau Final
R = ABCDE, F = {A → B, D → C}, ρ = {ABC, CDE, ADE}
D→C
ABC
CDE
ADE
Andrea Manna
SPI y SPDF
A
a1
b21
a1
B
a2
b22
a2
C
a3
a3
a3
D
b14
a4
a4
E
b15
a5
a5
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 1 - Tableau Final
R = ABCDE, F = {A → B, D → C}, ρ = {ABC, CDE, ADE}
ABC
CDE
ADE
A
a1
b21
a1
B
a2
b22
a2
C
a3
a3
a3
D
b14
a4
a4
E
b15
a5
a5
Como hay una fila con todos símbolos distinguidos, ρ es SPI.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2
Sea R = ABCDEFGHI,
F = {A → B, CD → F , H → AD, I → C, D → H}.
Decidir si la descomposición ρ = {ABD, DEF , FGC, CHI} es
SPI.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Inicial
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
b21
b31
b41
B
a2
b22
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b28
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Intermedio
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
D→H
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
b21
b31
b41
B
a2
b22
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b28
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Intermedio
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
D→H
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
b21
b31
b41
B
a2
b22
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b18
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Intermedio
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
H → AD
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
b21
b31
b41
B
a2
b22
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b18
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Intermedio
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
H → AD
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
a1
b31
b41
B
a2
b22
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b18
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Intermedio
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
A→B
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
a1
b31
b41
B
a2
b22
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b18
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Intermedio
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
A→B
ABD
DEF
FGC
CHI
Andrea Manna
SPI y SPDF
A
a1
a1
b31
b41
B
a2
a2
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b18
b38
a8
I
b19
b29
b39
a9
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Algoritmo del Tableau
Verificación SPI - Ejercicio 2 - Tableau Final
R = ABCDEFGHI, F = {A → B, CD → F , H → AD, I → C, D → H},
ρ = {ABD, DEF , FGC, CHI}
ABD
DEF
FGC
CHI
A
a1
a1
b31
b41
B
a2
a2
b32
b42
C
b13
b23
a3
a3
D
a4
a4
b34
b44
E
b15
a5
b35
b45
F
b16
a6
a6
b46
G
b17
b27
a7
b47
H
b18
b18
b38
a8
I
b19
b29
b39
a9
Como no hay ninguna fila con todos símbolos distinguidos, y
aunque sigamos iterando nuevamente por todas las
dependencias, ninguna alterará el tableau, ρ NO es SPI.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Esquema General
1
Introducción
2
Sin pérdida de información
3
Preservación de Dependencias Funcionales
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Introducción
Esquema General
3
Preservación de Dependencias Funcionales
Introducción
Ejercitación
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Introducción
Preservación de Dependencias Funcionales
Dados un esquema de relación R, una descomposición ρ =
(R1 , . . . , Rk ), y un conjunto F de dependencias funcionales.
πz (F ): proyección de F sobre un conjunto de atributos Z
Conjunto de dependencias X → Y en F + tal que XY ⊆ Z
Testeo (orden exponencial)
S
La descomposición ρ preserva F si F + = ( ki=1 πRi (F ))+
Es decir, la descomposición ρ preserva el conjunto de
dependencias F si la unión de todas las dependencias en
πRi (F ) implica lógicamente a todas las dependencias en F
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Introducción
Testeo Polinomial de Preservación de Dependencias Funcionales
Dados un esquema de relación R, una descomposición ρ =
(R1 , . . . , Rk ), y un conjunto F de dependencias funcionales.
Para toda dependencia funcional X → Y ∈ F :
Verificar que se preserva X → Y :
Z=X
while Z cambia
for i = 1 to k do
/* clausura con respecto a F */
Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri )
Si Y * Z retornar No
Retornar Sí
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Esquema General
3
Preservación de Dependencias Funcionales
Introducción
Ejercitación
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Ejercicio
Sean R = ABCDE y F = {AB → C, A → D, D → E, E → C}.
Decidir si la descomposición ρ = {AD, DE, ECB} es sin pérdida
de dependencias funcionales (SPDF).
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Resolución Ejercicio
R = ABCDE
F = {AB → C, A → D, D → E, E → C}
ρ = {AD, DE, ECB}
Estrategia de Resolución:
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Resolución Ejercicio
R = ABCDE
F = {AB → C, A → D, D → E, E → C}
ρ = {AD, DE, ECB}
Estrategia de Resolución:
Las dependencias A → D, D → E, E → C se preservan
trivialmente (por qué?), y no es necesario aplicarles el
algoritmo.
Le aplicaremos el algoritmo a la dependencia AB → C para ver
si se preserva.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Resolución Ejercicio
R = ABCDE
F = {AB → C, A → D, D → E, E → C}
ρ = {AD, DE, ECB}
Queremos verificar que se preserva AB → C
Verificar que se preserva X → Y :
Z=X
while Z cambia
for i = 1 to k do
Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri )
Si Y * Z retornar No
Z = AB
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Resolución Ejercicio
R = ABCDE
F = {AB → C, A → D, D → E, E → C}
ρ = {AD, DE, ECB}
Queremos verificar que se preserva AB → C
Verificar que se preserva X → Y :
Z=X
while Z cambia
for i = 1 to k do
Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri )
Si Y * Z retornar No
Z = Z ∪((Z ∩R1 )+ ∩R1 ) = {A, B}∪(({A, B}∩{A, D})+ ∩{A, D})
= {A, B} ∪ ((A)+ ∩ {A, D})
= {A, B} ∪ ({A, D, E, C} ∩ {A, D})
= {A, B, D}
C no está incluido en Z; seguimos...
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Resolución Ejercicio
R = ABCDE
F = {AB → C, A → D, D → E, E → C}
ρ = {AD, DE, ECB}
Queremos verificar que se preserva AB → C
Verificar que se preserva X → Y :
Z=X
while Z cambia
for i = 1 to k do
Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri )
Si Y * Z retornar No
Z = Z ∪((Z ∩R2 )+ ∩R2 ) = {A, B, D}∪(({A, B, D}∩{D, E})+ ∩{D, E})
= {A, B, D} ∪ ((D)+ ∩ {D, E})
= {A, B, D} ∪ ({D, E, C} ∩ {D, E})
= {A, B, D, E}
C no está incluido en Z; seguimos...
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Preservación de Dependencias Funcionales: Resolución Ejercicio
R = ABCDE
F = {AB → C, A → D, D → E, E → C}
ρ = {AD, DE, ECB}
Queremos verificar que se preserva AB → C
Verificar que se preserva X → Y :
Z=X
while Z cambia
for i = 1 to k do
Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri )
Si Y * Z retornar No
Z = Z ∪ ((Z ∩ R3 )+ ∩ R3 ) =
{A, B, D, E} ∪ (({A, B, D, E} ∩ {E, C, B})+ ∩ {E, C, B})
= {A, B, D, E} ∪ ((EB)+ ∩ {E, C, B})
= {A, B, D, E} ∪ ({E, B, C} ∩ {E, C, B})
= {A, B, D, E, C}
Ahora sí C está incluido en Z: la dependencia AB → C se preserva
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Ejercitación
Resolución Ejercicio de Parcial
Dados:
R= (A,B,C,D,E,F,G)
C → BD D → G G → E FA → D F → G
Se pide:
1 Calcular todas las claves e indicar en que FN se encuentra
el esquema.
2 Indicar si la descomposición (CBD,DEG,AFG) es SPI.
Justificar.
3 ¿La descomposición anterior es SPDF?. Justificar.
4 Hallar una descomposición en 3FN SPI y SPDF utilizando
el algoritmo visto en clase.
5 ¿La descomposición hallada se encuentra también en
FNBC?. Justificar.
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Introducción
Sin pérdida de información
Preservación de Dependencias Funcionales
Bibliografía
Bibliografía
Referencia
Jeffrey D. Ullman "Principles of Database and Knowledge-base
systems", Volumen I, Computer Science Press, 1988 (capítulo
7).
Andrea Manna
SPI y SPDF
DC-FCEN-UBA
Descargar