Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
C
D
GA
BE
F
H
2BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
T(A,B,C,D,E,F,G,H)CP: (A,B)
Para 2FN se miran los arcos que salen directamente de la CP
1 NO 2FN2 NO 2FN3 NO 2FN4 2FN
C
D
GA
BE
F
H
1
2
34
3BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
T(A,B,C,D,E,F,G,H)CP: (A,B)
1 NO 2FN2 NO 2FN3 NO 2FN
A → 1,2B → 3
¡DOS TABLAS!
C
D
GA
BE
F
H
1
2
34
4BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
A → 1,2
T(A,B,E,F,H) CP: (A,B)CAj: (A) → T1
T1(A,C,D,G) CP: (A)
C
D
GA
BE
F
H
1
2
34
5BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
A → 1,2
T(A,B,E,F,H) CP: (A,B)CAj: (A) → T1CAj: (A) → T2
T1(A,C,G) CP: (A) T2(A,D) CP: (A)
C
D
GA
BE
F
H
1
2
34
¡¡NUNCA!NUNCA!¡¡PROHIBIDO!PROHIBIDO!¡¡antes la muerte!antes la muerte!
6BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
B → 3
T(A,B,F,H) CP(A,B)CAj: (A) → T1CAj: (B) → T2
T1(A,C,D,G) CP(A)
T2(B,E) CP(B)
C
D
GA
BE
F
H
1
2
34
7BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
C → 5
T(A,B,F,H) CP: (A,B)CAj: (A) → T1CAj: (B) → T2
T1(A,C,D) CP: (A)CAj: (C) → T11
T11(C,G) CP: (C)
T2(B,E) CP: (B)
C
D
GA
BE
F
H
1
2
3
5
4
8BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
F → 6
T(A,B,F) CP: (A,B)CAj: (A) → T1CAj: (B) → T2CAj: (F) → T3
T3(F,H) CP: (F)
T1(A,C,D) CP: (A)CAj: (C) → T11
T11(C,G) CP: (C)
T2(B,E) CP: (B)
C
D
GA
BE
F
H
1
2
3
5
6
4
9BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN T(A,B,F) CP: (A,B)
CAj: (A)→T1CAj: (B)→T2CAj: (F)→T3
T1(A,C,D) CP: (A)CAj: (C)→T11
T11(C,G) CP: (C)
T2(B,E) CP: (B)
T3(F,H) CP: (F)
C
D
GA
BE
F
H
10BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
C
D
GA
BE
F
H
11BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN T(A,B,C,F) CP: (A,B)
CAj: (A)→T1CAj: (B)→T2CAj: (C)→T4CAj: (F)→T3
T1(A,D) CP: (A)
T2(B,E) CP: (B)
T3(F,H) CP: (F)
T4(C,G) CP: (C)
C
D
GA
BE
F
H
12BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
C
DGA
BE
F
H
13BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
T(A,B) CP: (A,B)CAj: (A)→T1CAj: (B)→T2
T1(A,C,D) CP: (A)CAj: (C,D)→T11
T11(C,D,G) CP: (C,D)
T2(B,E,F) CP: (B)CAj: (F)→T21
T21(F,H) CP: (F)
C
DGA
BE
F
H
14BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
G
Los peligros de ir “deprisa”
C
DA
B
15BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
G
Los peligros de ir “deprisa”
C
DA
B
T1(A, C, D)CP: (A)
T2(C, D, G)CP: (C, D)
T3(D, B)CP: (D)
16BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”
T1(A, C, D)CP: (A)CAj: (C, D) → T2 CAj: (D) → T3
T2(C, D, G)CP: (C, D)
T3(D, B)CP: (D)
GC
DA
B
17BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”Vayamos paso a paso
T1(A, B, C, D, G)CP: (A)
(C, D) → 1(D) → 2
(D) ⊂ (C, D) ⇒ ¡1 tabla!
El destino de (D) estáincluido en el de (C,D)
GC
DA
B
1
2
18BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
CG
Los peligros de ir “deprisa”
B
T1(A, C, D)CP: (A)CAj: (C, D) → T2
T2(C, D, G, B)CP: (C, D)
(D) → 2C
DA
D
3FN
1FN2
19BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”
T1(A, C, D)CP: (A)CAj: (C, D) → T2
T2(C, D, G)CP: (C, D)CAj: (D) → T3
T3(D, B)CP: (D)
C
DA
D
B
CG
D
3FN
3FN
3FN
20BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”
T1(A, C, D)CP: (A)CAj: (C, D) → T2 CAj: (D) → T3
T2(C, D, G)CP: (C, D)
T3(D, B)CP: (D)
¿¿por qupor quéé no?no?
GC
DA
B
21BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”T3 T2 T1
(A) C D
x a 1
y a 1
z a 1
(C D) G
a 1
a 2
b 2
a 5
(D) B
1
2
3
“buena”
22BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”T3 T2 T1
(A) C D
x a 1
y a 1
z a 1
(C D) G
a 1
a 2
b 2
a 5
(D) B
1
2
3
(A) C D
x a 1
y a 1
z a 1
(C D) G
a 1
a 2
b 2
a 5
(D) B
1
2
3
“buena”
“mala”
23BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Los peligros de ir “deprisa”T3 T2 T1
(A) C D
x a 1
y a 1
z a 1
(C D) G
a 1
a 2
b 2
a 5
(D) B
1
2
3
(A) C D
x a 1
y a 1
z a 1
(C D) G
a 1
a 2
b 2
a 5
(D) B
1
2
3
“buena”
“mala”
¡NO SON LA MISMA BD!¡¡NO SON LA MISMA BD!NO SON LA MISMA BD!
24BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
localidad
paísalcaldenif
tipocategoría
gobierno
%corrupción
25BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
localidad
paísnif
localidad
paísalcalde
tipocategoría
gobierno
%corrupción
26BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
localidad
paísnif
localidad
paísalcalde
paístipo
categoría
gobierno
%corrupción
27BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
localidad
paísnif
localidad
paísalcalde
paístipo tipo
categoría
gobierno
%corrupción
28BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
localidad
paísnif
localidad
paísalcalde
paístipo tipo
categoría
gobierno gobierno
%corrupción
29BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Normalizar hasta 3FN
T(nif,localidad,país) CP: (nif)CAj: (localidad, país) → T1
T1(localidad,país,alcalde) CP: (localidad,país)CAj: (país) → T11
T11(país,tipo) CP: (país)CAj: (tipo) → T111
T111(tipo,categoría,gobierno) CP: (tipo)CAj: (gobierno) → T1111
T1111(gobierno,%corrupción) CP: (gobierno)
30BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
Forma Norma de Boyce-Codd• Una relación está en forma normal
de Boyce-Codd (FNBC) si y sólo si todo determinante es una clave candidata
en realidad, sólo nos debe preocupar si hay varias claves candidatas solapadas en atributos
– cp(A, B) calt(B, C)
31BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
¿Cuáles son las claves candidatas?
A
C
E B
D
F
G
32BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
¿Cuáles son las claves candidatas?
A
C
E B
D
F
G
R (A, B, C, D, E, F, G)CP: (A,B,C)CAlt: (D,B,C)CAlt: (A,B,F)CAlt: (D,B,F)
33BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
determinante• conjunto de atributos del que
depende funcionalmente por completo algún otro atributo
CA
B (B, C) → A (A) → C
34BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC?T(A, B, C)
cp (B, C) calt (A, B)
• 1FN sí
CA
B
35BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC?T(A, B, C)
cp (B, C) calt (A, B)
• 1FN sí• 2FN sí
DF completa = todo atributo depende de alguna clave candidata
completa
CA
B
36BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC?T(A, B, C)
cp (B, C) calt (A, B)
• 1FN sí• 2FN sí• 3FN sí
DF transitiva = atributo clave → no clave → no claveB → A → C : clave → clave → clave
CA
B
37BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC?T(A, B, C)
cp (B, C) calt (A, B)
• 1FN sí• 2FN sí• 3FN sí• FNBC no
determinantes:(B, C)(A)
claves candidatas:(B, C)(A, B)
CA
B
38BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC?T(A, B, C)
cp (B, C) calt (A, B)
• T1 (A, C) cp (A)• T(A, B) cp (A, B) caj: (A) → T1
determinantes:(B, C)(A)
claves candidatas:(B, C)(A, B)
CA
B
39BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC?T(A, B, C)
cp (B, C) calt (A, B)
• T1 (A, C) cp (A) FNBC
• T(A, B) cp (A, B) caj: (A) → T1 FNBC
C
A
B
A
40BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC
C
DA
B
E
41BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC
determinantes:(A, B)(B, C)(D)
claves candidatas:(D)(A, B)
C
DA
B
E
42BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC
T(A, B, C, D)cp (A, B)calt (D)caj (B, C) → T1
T1 (B, C, E)cp (B, C)
C
DA
B
E
43BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
C
DA
B
E
T(A, B, C, D, E)cp (A, B)calt (D)
• 1FN sí• 2FN ??
44BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
C
DA
B
E
T(A, B, C, D, E)cp (A, B)calt (D)
• 1FN sí• 2FN sí• 3FN ??
45BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
C
DA
B
E
T(A, B, C, D, E)cp (A, B)calt (D)
• 1FN sí• 2FN sí• 3FN ??D E transitiva:
D (B,C) E
46BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
C
DA
B
E
T(A, B, C, D, E)cp (A, B)calt (D)
• 1FN sí• 2FN sí• 3FN ??D E transitiva:
D (B,C) E
(A,B) E transitiva:(A,B) D (B,C) E
47BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
C
DA
B
E
T(A, B, C, D)cp (A, B)calt (D)caj (B, C) → T1
T1 (B, C, E)cp (B, C)
• 1FN sí• 2FN sí• 3FN sí
en realidad, SOBRAN DEPENDENCIAS
48BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
C
DA
B
E
T(A, B, C, D)cp (A, B)calt (D)caj (B, C) → T1
T1 (B, C, E)cp (B, C)
3FN = FNBC cuando CCs no solapadas !!!
49BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
DA
B
C
T(A, B, C, D)cp (A, B)calt (D)
¡OJO!:
si (A,B) C es transitiva, entonces D C no lo es
50BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
DA
B
C
T(A, B, C, D)cp (A, B)calt (D)
¡OJO!:
si (A,B) C es transitiva, entonces D C no lo es, y si D C es transitiva, entonces (A,B) C no.luego siempre depende no transitivamente de una CCluego cumple 3FN
51BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
normalizar hasta FNBC por 3FN
DA
B
C
T(A, B, C, D)cp (A, B)calt (D)
MÁS FÁCIL:
TRANSITIVIDAD = CC noCC noCC
si (A,B) D CCC CC noCC
si D (A,B) CCC CC noCC
luego cumple 3FN
52BD1 2006-07
introducción
dependencia funcional
formas normales
Ejemplos
FN de Boyce-Codd
Ejercicios
Intro. Diseño BDR
FF.NN.• requisitos a cumplir por tablas• eliminar las anomalías de actualización• 1FN → 2FN → 3FN (1 cc)• 1FN → 2FN → 3FN → FNBC (>1 cc)• proceso reversible