Story Transcript
Intro. Diseño BDR
Normalizar hasta 3FN
introducción dependencia funcional
A
FN de BoyceCodd Ejercicios
G
D B E
formas normales Ejemplos
C
F H
BD1 2006-07
1
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
B
C
2 D 3 E
4 F H
G
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 2 3 4
NO 2FN NO 2FN NO 2FN 2FN
BD1 2006-07
2
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
B
C
2 D 3 E
4 F
G
T(A,B,C,D,E,F,G,H) CP: (A,B)
1 NO 2FN 2 NO 2FN 3 NO 2FN A → 1,2 B→3 ¡DOS TABLAS!
H
BD1 2006-07
3
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
B
C
2 D
G
A → 1,2 T(A,B,E,F,H) CP: (A,B) CAj: (A) → T1 T1(A,C,D,G) CP: (A)
3 E
4 F H
BD1 2006-07
4
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
B
C
2 D 3 E
4
G
A → 1,2 T(A,B,E,F,H) CP: (A,B) CAj: (A) → T1 CAj: (A) → T2 T1(A,C,G) CP: (A) T2(A,D) CP: (A)
F H
¡¡NUNCA! PROHIBIDO!
¡antes la muerte! BD1 2006-07
5
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
B
C
G
B→3 T(A,B,F,H) CP(A,B) CAj: (A) → T1 CAj: (B) → T2
2 D T1(A,C,D,G) CP(A)
3 E
4 F
T2(B,E) CP(B)
H
BD1 2006-07
6
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
B
C 5 G
2 D 3 E
4 F H
C→5 T(A,B,F,H) CP: (A,B) CAj: (A) → T1 CAj: (B) → T2
T1(A,C,D) CP: (A) CAj: (C) → T11 T11(C,G) CP: (C) T2(B,E) CP: (B)
BD1 2006-07
7
Intro. Diseño BDR
Normalizar hasta 3FN 1 A
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
C 5 G
2 D
B
3 E
4
F→6 T(A,B,F) CP: (A,B) CAj: (A) → T1 CAj: (B) → T2 CAj: (F) → T3 T3(F,H) CP: (F) T1(A,C,D) CP: (A) CAj: (C) → T11 T11(C,G) CP: (C)
F 6
T2(B,E) CP: (B)
H
BD1 2006-07
8
Intro. Diseño BDR
Normalizar hasta 3FN
introducción dependencia funcional
A
FN de BoyceCodd Ejercicios
G
D
T1(A,C,D) CP: (A) CAj: (C)→T11
E
T11(C,G) CP: (C)
B
formas normales Ejemplos
C
T(A,B,F) CP: (A,B) CAj: (A)→T1 CAj: (B)→T2 CAj: (F)→T3
F
T2(B,E) CP: (B)
H
T3(F,H) CP: (F)
BD1 2006-07
9
Intro. Diseño BDR
Normalizar hasta 3FN
introducción dependencia funcional
A
FN de BoyceCodd
G
D B E
formas normales Ejemplos
C
F H
Ejercicios
BD1 2006-07
10
Intro. Diseño BDR
Normalizar hasta 3FN
introducción dependencia funcional
A
D B E
formas normales Ejemplos FN de BoyceCodd
C
F H
G
T(A,B,C,F) CP: (A,B) CAj: (A)→T1 CAj: (B)→T2 CAj: (C)→T4 CAj: (F)→T3 T1(A,D) CP: (A) T2(B,E) CP: (B) T3(F,H) CP: (F) T4(C,G) CP: (C)
Ejercicios
BD1 2006-07
11
Intro. Diseño BDR
Normalizar hasta 3FN
introducción dependencia funcional
A
FN de BoyceCodd Ejercicios
G D
B E
formas normales Ejemplos
C
F H
BD1 2006-07
12
Intro. Diseño BDR
Normalizar hasta 3FN introducción dependencia funcional
A
FN de BoyceCodd Ejercicios
G D
B E
formas normales Ejemplos
C
T(A,B) CP: (A,B) CAj: (A)→T1 CAj: (B)→T2 T1(A,C,D) CP: (A) CAj: (C,D)→T11 T11(C,D,G) CP: (C,D)
F
T2(B,E,F) CP: (B) CAj: (F)→T21
H
T21(F,H) CP: (F)
BD1 2006-07
13
Intro. Diseño BDR
Los peligros de ir “deprisa”
introducción dependencia funcional formas normales
A
C G D B
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
14
Intro. Diseño BDR
Los peligros de ir “deprisa”
introducción dependencia funcional formas normales
A
T1(A, C, D)
C G
CP: (A)
D
T2(C, D, G) B
CP: (C, D)
Ejemplos
T3(D, B)
FN de BoyceCodd
CP: (D)
Ejercicios
BD1 2006-07
15
Intro. Diseño BDR
Los peligros de ir “deprisa”
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
A
T1(A, C, D)
C G D B
CP: (A) CAj: (C, D) → T2 CAj: (D) → T3
T2(C, D, G) CP: (C, D)
T3(D, B) CP: (D)
BD1 2006-07
16
Intro. Diseño BDR
Los peligros de ir “deprisa” Vayamos paso a paso
introducción dependencia funcional formas normales
A
T1(A, B, C, D, G)
C
1
D 2 B
G
CP: (A)
(C, D) → 1 (D) → 2 (D) ⊂ (C, D) ⇒ ¡1 tabla!
Ejemplos FN de BoyceCodd
El destino de (D) está incluido en el de (C,D)
Ejercicios
BD1 2006-07
17
Intro. Diseño BDR
Los peligros de ir “deprisa” T1(A, C, D)
C G
introducción
D
dependencia funcional
2
formas normales
B
FN de BoyceCodd Ejercicios
A
CP: (A) CAj: (C, D) → T2
T2(C, D, G, B) CP: (C, D)
Ejemplos
C
3FN
1FN
(D) → 2
D
BD1 2006-07
18
Intro. Diseño BDR
Los peligros de ir “deprisa” T1(A, C, D)
C G
introducción
D
dependencia funcional
Ejercicios
3FN
CP: (C, D) CAj: (D) → T3
Ejemplos FN de BoyceCodd
CP: (A) CAj: (C, D) → T2
T2(C, D, G)
formas normales
3FN
A
C D
T3(D, B) 3FN CP: (D)
D B
BD1 2006-07
19
Intro. Diseño BDR
Los peligros de ir “deprisa”
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
A
T1(A, C, D)
C G D B
CP: (A) CAj: (C, D) → T2 CAj: (D) → T3
¿ por qu é no? T2(C, D, G) CP: (C, D)
T3(D, B) CP: (D)
BD1 2006-07
20
Intro. Diseño BDR
Los peligros de ir “deprisa” T3 T2 T1 (D) B
(C D) G
(A) C D
introducción
1
a
1
x
a 1
dependencia funcional
2
a
2
y
a 1
3
b
2
z
a 1
a
5
formas normales
“buena”
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
21
Intro. Diseño BDR
Los peligros de ir “deprisa” T3 T2 T1 (D) B
(C D) G
(A) C D
introducción
1
a
1
x
a 1
dependencia funcional
2
a
2
y
a 1
3
b
2
z
a 1
a
5
formas normales
“buena”
Ejemplos FN de BoyceCodd Ejercicios
(D) B
(C D) G
(A) C D
1
a
1
x
a 1
2
a
2
y
a 1
3
b
2
z
a 1
a
5
“mala”
BD1 2006-07
22
Intro. Diseño BDR
Los peligros de ir “deprisa” T3 T2 T1 (D) B
(C D) G
(A) C D
introducción
1
a
1
x
a 1
dependencia funcional
2
a
2
y
a 1
3
b
2
z
a 1
a
5
formas normales
“buena”
Ejemplos FN de BoyceCodd Ejercicios
(D) B
(C D) G
(A) C D
“mala”
¡NO ¡NO SON SON LA LA MISMA MISMA BD! BD! 1
a
1
x
a 1
2
a
2
y
a 1
3
b
2
z
a 1
a
5
BD1 2006-07
23
Intro. Diseño BDR
Normalizar hasta 3FN nif introducción dependencia funcional formas normales
localidad alcalde país tipo categoría gobierno
Ejemplos FN de BoyceCodd
%corrupción
Ejercicios
BD1 2006-07
24
Intro. Diseño BDR
Normalizar hasta 3FN nif introducción dependencia funcional formas normales
localidad país
localidad alcalde país tipo categoría gobierno
Ejemplos FN de BoyceCodd
%corrupción
Ejercicios
BD1 2006-07
25
Intro. Diseño BDR
Normalizar hasta 3FN nif
localidad
localidad alcalde
país
introducción
país
dependencia funcional formas normales Ejemplos FN de BoyceCodd
país tipo categoría gobierno
Ejercicios
%corrupción BD1 2006-07
26
Intro. Diseño BDR
Normalizar hasta 3FN nif
localidad país
introducción
localidad alcalde país
dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
país tipo
tipo categoría gobierno %corrupción BD1 2006-07
27
Intro. Diseño BDR
Normalizar hasta 3FN nif
localidad país
introducción
localidad alcalde país
dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
país tipo
tipo categoría gobierno
gobierno %corrupción BD1 2006-07
28
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) introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd
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)
Ejercicios
BD1 2006-07
29
Intro. Diseño BDR
Forma Norma de Boyce-Codd
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd
• 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)
Ejercicios
BD1 2006-07
30
Intro. Diseño BDR
¿Cuáles son las claves candidatas? D
A
introducción dependencia funcional formas normales
E F
B
G
C
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
31
Intro. Diseño BDR
¿Cuáles son las claves candidatas? D
A
introducción dependencia funcional formas normales
E F
B
G
C
Ejemplos FN de BoyceCodd Ejercicios
R (A, B, C, D, E, F, G) CP: (A,B,C) CAlt: (D,B,C) CAlt: (A,B,F) CAlt: (D,B,F) BD1 2006-07
32
Intro. Diseño BDR
determinante
introducción
• conjunto de atributos del que depende funcionalmente por completo algún otro atributo
dependencia funcional formas normales Ejemplos FN de BoyceCodd
B A C
(B, C) → A (A) → C
Ejercicios
BD1 2006-07
33
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC? T(A, B, C) cp (B, C) introducción dependencia funcional
calt (A, B)
• 1FN sí
formas normales Ejemplos FN de BoyceCodd
B A C
Ejercicios
BD1 2006-07
34
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC? T(A, B, C) cp (B, C) introducción dependencia funcional formas normales
calt (A, B)
• 1FN sí • 2FN sí
Ejemplos
B A
FN de BoyceCodd Ejercicios
DF completa =
C
todo atributo depende de alguna clave candidata completa BD1 2006-07
35
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC? T(A, B, C) cp (B, C) introducción dependencia funcional formas normales
calt (A, B)
• 1FN sí • 2FN sí • 3FN sí
Ejemplos FN de BoyceCodd Ejercicios
B DF transitiva =
A
atributo clave → no clave → no clave
C
B → A → C : clave → clave → clave
BD1 2006-07
36
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC? T(A, B, C) cp (B, C) introducción dependencia funcional formas normales Ejemplos
• • • •
1FN sí 2FN sí 3FN sí FNBC no
B A
FN de BoyceCodd Ejercicios
calt (A, B)
C determinantes: (B, C) (A)
claves candidatas: (B, C) (A, B) BD1 2006-07
37
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC? T(A, B, C) cp (B, C)
introducción
calt (A, B)
• T1 (A, C) cp (A) • T(A, B) cp (A, B) caj: (A) → T1
dependencia funcional formas normales
B
Ejemplos
A
FN de BoyceCodd Ejercicios
C determinantes: (B, C) (A)
claves candidatas: (B, C) (A, B) BD1 2006-07
38
Intro. Diseño BDR
normalizar ¿hasta 3FN o FNBC? T(A, B, C) cp (B, C)
introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
calt (A, B)
• T1 (A, C) cp (A) FNBC
A C
• T(A, B) cp (A, B) caj: (A) → T1 FNBC B A BD1 2006-07
39
Intro. Diseño BDR
normalizar hasta FNBC A introducción
B
dependencia funcional formas normales
D
E C
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
40
Intro. Diseño BDR
normalizar hasta FNBC A introducción
B
dependencia funcional formas normales
D
E
determinantes: (A, B) (B, C) (D)
claves candidatas: (D) (A, B)
C
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
41
Intro. Diseño BDR
normalizar hasta FNBC A introducción
B
dependencia funcional formas normales Ejemplos FN de BoyceCodd
D
E C
T(A, B, C, D) cp (A, B) calt (D) caj (B, C) → T1 T1 (B, C, E) cp (B, C)
Ejercicios
BD1 2006-07
42
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción
B
dependencia funcional formas normales
D
E C
T(A, B, C, D, E) cp (A, B) calt (D) • 1FN sí • 2FN ??
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
43
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción
B
dependencia funcional formas normales Ejemplos
D
E C
T(A, B, C, D, E) cp (A, B) calt (D) • 1FN sí • 2FN sí • 3FN ??
FN de BoyceCodd Ejercicios
BD1 2006-07
44
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción
B
dependencia funcional formas normales Ejemplos FN de BoyceCodd
D
E C
T(A, B, C, D, E) cp (A, B) calt (D) • 1FN sí • 2FN sí • 3FN ?? D Æ E transitiva: DÆ(B,C)ÆE
Ejercicios
BD1 2006-07
45
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción
B
dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
D
E C
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
BD1 2006-07
46
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción
B
dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
D
E C
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 BD1 2006-07
47
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción
B
dependencia funcional formas normales Ejemplos
D
E C
T(A, B, C, D) cp (A, B) calt (D) caj (B, C) → T1 T1 (B, C, E) cp (B, C)
FN de BoyceCodd Ejercicios
3FN = FNBC cuando CCs no solapadas !!! BD1 2006-07
48
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción dependencia funcional formas normales Ejemplos
D
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
FN de BoyceCodd Ejercicios
BD1 2006-07
49
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción dependencia funcional formas normales Ejemplos FN de BoyceCodd Ejercicios
D
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 CC luego cumple 3FN BD1 2006-07
50
Intro. Diseño BDR
normalizar hasta FNBC por 3FN A introducción dependencia funcional formas normales
D
B C
T(A, B, C, D) cp (A, B) calt (D) MÁS FÁCIL: TRANSITIVIDAD = CC Æ noCC Æ noCC
Ejemplos FN de BoyceCodd Ejercicios
si (A,B) Æ D Æ C CC Æ CC Æ noCC si D Æ (A,B) Æ C CC Æ CC Æ noCC
luego cumple 3FN
BD1 2006-07
51
Intro. Diseño BDR
FF.NN.
introducción dependencia funcional formas normales
• • • • •
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
Ejemplos FN de BoyceCodd Ejercicios
BD1 2006-07
52