Professional Documents
Culture Documents
Teora de la Normalizacin
Objetivos
Apreciar la importancia y utilidad de emplear la teora de la
normalizacin en la etapa de diseo lgico de bases de datos
relacionales, para detectar y corregir esquemas relacionales
diseados inadecuadamente.
Comprender los conceptos de dependencia funcional y
dependencia multivalorada.
Entender el significado de las formas normales 1FN, 2FN, 3FN,
FNBC y 4FN.
Comprender los diferentes procedimientos algortmicos de la
teora de la normalizacin que permiten determinar las claves
de, o normalizar, una relacin.
Tema 8. Teora de la normalizacin
8. Teora de la Normalizacin
Contenidos
8.1. Motivacin
1. Dificultades en el diseo de esquemas relacionales
2. Obtencin de esquemas relacionales de calidad
8. Teora de la Normalizacin
Bibliografa
Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de
Datos. 3 Edicin. Addison-Wesley. (Cap. 14 y 15)
[EN 1997]
Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos
fundamentales. 2 Ed. Addison-Wesley Iberoam. (Cap. 12 y 13)
[MPM 1999] De Miguel, A.; Piattini, M.; Marcos, E. Diseo de bases de datos
relacionales. Ra-Ma. (Cap. 4 al 6)
[SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases
de datos. 3 Edicin. McGraw-Hill. (Cap. 7)
[EN 2002]
[CBS 1998]
[D 2001]
8.1 Motivacin
Diseo en el modelo relacional de datos
Objetivo principal del desarrollo de un esquema de bases de datos
relacional:
Crear una representacin precisa y adecuada
de los datos, sus relaciones y sus restricciones
Definicin de normalizacin (E.F. Codd, 1972) :
Tcnica para producir un conjunto de relaciones
(tablas) con propiedades deseables, dados los
requisitos de datos de una organizacin
Tema 8. Teora de la normalizacin
8.1 Motivacin
Diseo en el modelo relacional de datos
(2)
Recordemos que...
esquema de relacin = { atributos }
esquema de BD relacional= { esquemas de relacin }
8.1 Motivacin
Diseo en el modelo relacional de datos
(y 3)
Nivel de almacenamiento
cmo se almacenan y actualizan las tuplas de cada relacin base
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales
Propiedades no deseables que puede tener un esquema de
relacin diseado de forma incorrecta
Repeticin de informacin
Anomalas de actualizacin de la base de datos
Incapacidad para representar cierta informacin
Prdida de informacin
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (2)
Ejemplo 1: informacin sobre pedidos (y productos y clientes) almacenada
en una nica relacin
PEDIDO
nPed codProd
12
P1
09
P1
22
P1
15
P2
24
P2
05
P2
11
P3
...
descProd
silla
silla
silla
mesa
mesa
mesa
silln
precProd
100
100
100
250
250
250
175
uds
12
30
15
35
20
20
10
cifCli
A12345678
V22332233
N43344334
A12345678
V22332233
K11112222
N43344334
nomCli
Forte
Calero
Carazo
Forte
Calero
Mitra
Carazo
ciudCli
Madrid
Valencia
Alicante
Madrid
Valencia
Madrid
Alicante
distanc
400
200
80
400
200
400
80
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (3)
Ejemplo 1 (continuacin)
PEDIDO ( nPed, codProd, descProd, precProd, uds, cifCli, nomCli, ciudCli, distanc )
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (4)
Ejemplo 2: informacin sobre prstamos (y sucursales) almacenada en
una nica relacin
PRSTAMO
idSuc
ciudSuc
activo
nomCli
numPrest importe
Centro
Arganzuela
10.818.215
Santos
P-17
1.202
Moralzarzal
La Granja
2.524.250
Gmez
P-23
2.404
Navacerrada
Aluche
2.043.440
Lpez
P-15
1.803
Centro
Arganzuela
10.818.215
Soto
P-14
1.803
Becerril
Aluche
480.810
Santos
P-93
601
Collado
Aluche
9.616.194
Abril
P-11
1.082
Navas
Alcal de H.
360.607
Valdivieso P-29
1.442
Segovia
Cerceda
4.447.490
Lpez
P-16
1.570
Centro
Arganzuela
10.818.215
Gonzlez
P-63
2.404
Navacerrada
Aluche
2.043.440
Rodrguez P-25
3.005
Galapagar
Arganzuela
8.534.375
Amol
P-10
2.645
Tema 8. Teora de la normalizacin
10
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (5)
Ejemplo 2 (continuacin)
PRESTAMO ( idSuc, ciudSuc, activo, nomCli, numPrest, importe )
11
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (6)
La solucin es descomponer el esquema en varias relaciones
Ejemplo 2: PRESTAMO ( idSuc, ciudSuc, activo, nomCli, numPrest, importe)
Descomposicin en dos esquemas (son proyecciones de PRESTAMO)
12
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (7)
SUCURSAL_CLIENTE
idSuc
Centro
Moralzarzal
Navacerrada
Centro
Becerril
Collado
Navas
Segovia
Centro
Navacerrada
Galapagar
ciudSuc
Arganzuela
La Granja
Aluche
Arganzuela
Aluche
Aluche
Alcal de H.
Cerceda
Arganzuela
Aluche
Arganzuela
activo
10.818.215
2.524.250
2.043.440
10.818.215
480.810
9.616.194
360.607
4.447.490
10.818.215
2.043.440
8.534.375
nomCli
Santos
Gmez
Lpez
Soto
Santos
Abril
Valdivieso
Lpez
Gonzlez
Rodrguez
Amol
13
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (8)
PRESTAMO_CLIENTE
nomCli
Santos
Gmez
Lpez
Soto
Santos
Abril
Valdivieso
Lpez
Gonzlez
Rodrguez
Amol
Tema 8. Teora de la normalizacin
numPrest
P-17
P-23
P-15
P-14
P-93
P-11
P-29
P-16
P-63
P-25
P-10
importe
1.202
2.404
1.803
1.803
601
1.082
1.442
1.570
2.404
3.005
2.645
14
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (9)
Consulta: obtener las sucursales con prstamos con importe < 1.202
Es necesario reconstruir la relacin PRESTAMO:
JOIN entre SUCURSAL_CLIENTE y PRESTAMO_CLIENTE, va el atributo nomCli
SELECT idSuc
FROM Sucursal_Cliente SC, Prstamo_Cliente PC
WHERE SC.nomCli=PC.nomCli AND importe < 1202;
equivalente a esta otra sentencia:
SELECT idSuc
FROM Sucursal_Cliente NATURAL JOIN Prstamo_Cliente
WHERE importe < 1202;
Resultado obtenido: tres tuplas ( (Centro...), (Becerril...), (Collado...))
Pero el resultado correcto es: ( (Becerril...), (Collado...) )
15
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (10)
SUCURSAL_CLIENTE * PRESTAMO_CLIENTE
idSuc
ciudSuc
activo
Centro
Arganzuela
10.818.215
Centro
Arganzuela
10.818.215
Moralzarzal
La Granja
2.524.250
Navacerrada Aluche
2.043.440
Navacerrada Aluche
2.043.440
Centro
Arganzuela
10.818.215
Becerril
Aluche
480.810
Becerril
Aluche
480.810
Collado
Aluche
9.616.194
Navas
Alcal de H.
360.607
Segovia
Cerceda
4.447.490
Segovia
Cerceda
4.447.490
Centro
Arganzuela
10.818.215
Navacerrada Aluche
2.043.440
Galapagar
Arganzuela
8.534.375
Tema 8. Teora de la normalizacin
nomCli
Santos
Santos
Gmez
Lpez
Lpez
Soto
Santos
Santos
Abril
Valdivieso
Lpez
Lpez
Gonzlez
Rodrguez
Amol
numPrest
P-17
P-93
P-23
P-15
P-16
P-14
P-17
P-93
P-11
P-29
P-15
P-16
P-63
P-25
P-10
importe
1.202
601
2.404
1.803
1.570
1.803
1.202
601
1.082
1.442
1.803
1.570
2.404
3.005
2.645
16
8.1 Motivacin
Dificultades en el diseo de esquemas relacionales (y 11)
Hay ms tuplas en SUCURSAL_CLIENTE * PRESTAMO_CLIENTE que en
PRESTAMO, pero existe menos informacin:
descomposicin de reunin con prdida
Cul es la causa de esta prdida de informacin?
Es la siguiente descomposicin de reunin sin prdida?
SUCURSAL( idSuc, ciudSuc, activo )
INFO_PRESTAMO ( idSuc, nomCli, numPrest, importe )
17
8.1 Motivacin
Obtencin de esquemas relacionales de calidad
Para crear buenos esquemas de relacin, o
para medir su calidad...
Seguir pautas informales de diseo
Emplear una tcnica formal: normalizacin
Se minimizar la aparicin de las propiedades no deseables
18
8.1 Motivacin
Obtencin de esquemas relacionales de calidad (2)
Pautas de diseo de esquemas de relacin
Semntica de los atributos de un esquema de relacin
PAUTA 1 : Disear esquemas de relacin con significado fcil de entender.
19
8.1 Motivacin
Obtencin de esquemas relacionales de calidad (3)
Pautas de diseo de esquemas de relacin
Reduccin de nulos en las tuplas
NULL tiene mltiples significados, lo que dificulta...
El entendimiento de la semntica de los atributos y
La especificacin de operaciones JOIN y agregadas (SUM, AVG...)
20
10
8.1 Motivacin
Obtencin de esquemas relacionales de calidad (y 4)
Normalizacin de esquemas de relacin
Proceso de normalizacin
Mtodo formal, que identifica relaciones con base en su clave primaria
(o candidatas en el caso de la FNBC) y las dependencias funcionales entre
sus atributos
Series de tests sobre cada esquema de relacin individual, para
determinar si satisface o no los requisitos de determinada forma normal
El esquema relacional de BD puede ser normalizado hasta una forma
normal especfica, para evitar propiedades no deseables
Formas normales
Basadas en dependencias funcionales entre los atributos de una relacin:
1FN, 2FN, 3FN
FNBC (R. Boyce y Codd, 1974) definicin ms fuerte de la 3FN
4FN, 5FN (Fagin, 1977, 1979)
Tema 8. Teora de la normalizacin
21
22
11
23
24
12
26
13
N slo para la
parte derecha
de una df!!
27
28
14
29
30
15
31
Tras esto, puede aplicarse el algoritmo siguiente (a partir del paso 3), para
ver cules de las claves encontradas son claves candidatas (mnimas) en R
32
16
33
DF 1 y DF 2 son equivalentes si DF 1+ = DF 2+
Tema 8. Teora de la normalizacin
34
17
35
36
18
37
38
19
(3)
(y 4)
40
20
(2)
42
21
(3)
Conservacin de la informacin
La informacin contenida en R(A, DF) debe ser la misma que la
contenida en las Ri(Ai, DFi); para ello, debe conseguirse...
Conservacin de los atributos Ai = A
Conservacin del contenido (tuplas o extensin) *ri = r
43
(4)
44
22
(5)
Minimizacin de la redundancia
Los Ri deben estar en una forma normal superior a la de R
As se reduce (o elimina) la redundancia
separando los datos en relaciones distintas
(6)
ttulo
Fundamentos de sistemas de bases de datos
Diseo de bases de datos relacionales
cdigo
9090
9090
8070
8070
8070
ttulo
Fundamentos de sistemas de bases de datos
Fundamentos de sistemas de bases de datos
Diseo de bases de datos relacionales
Diseo de bases de datos relacionales
Diseo de bases de datos relacionales
Multivalorado
autor
|
Elmasri , Navathe
de Miguel , Piattini, Marcos
autor |
Elmasri
Navathe
de Miguel
Piattini
Marcos
46
23
(7)
47
(8)
48
24
(9)
49
(10)
50
25
(11)
(2)
51
(12)
(y 3)
Claves de ARTICULO2:
CK1 = { revista, nmero, codart }
CK2 = { revista, nmero, pgina }
52
26
1FN y 2FN no son buenos diseos sino escalones para llegar a 3FN o FNBC
53
54
27
Diferencias
La sntesis slo considera dependencias funcionales
El anlisis considera, adems de las dependencias funcionales, las
dependencias multivaloradas y dependencias de reunin o combinacin
Tema 8. Teora de la normalizacin
55
56
28
57
R1(ttulo, ao, duracin, tipo, estudio) con DF1={titulo ao duracin tipo estudio}
R2(titulo, ao, actor), con DF2 vaco
Tema 8. Teora de la normalizacin
58
29
R1 (
, , DF1) y R2 (A - , DF2),
otros
R2
R1
59
60
30
61
62
31
63
64
32
65
66
33
para cada actor, cada direccin aparezca con cada una de las pelculas, y
para cada estudiante, cada valor de estudios aparezca con cada actividad
67
68
34
Regla de aumento
(y 2).
Dmv trivial
Regla de complemento
70
35
Descomposicin en la 4FN
Si R no est en 4FN, por contener una dmv , donde no
contiene una clave de R, se debe dividir R en dos esquemas:
R1, con todos los atributos de y los de
R2, con todos los atributos de y el resto de atributos A--
N Asignar adecuadamente a cada Ri las dependencias funcionales y multivaloradas
71
36