Title: Normalizacin I parte
1Normalización I parte
Clase 15
Gloria Lucía Giraldo Gómez Universidad Nacional
de Colombia glgiraldog_at_unalmed.edu.co Bloque
anexo al M8 Oficina 313
2Normalización para qué sirve?
- Para diseñar buenas relaciones desde el punto
de vista de - Minimizar la redundancia
- Minimizar el mantenimiento de datos
- Minimizar el impacto de futuros cambios de datos
e ingreso de información
Anomalías de actualización y borrado
Anomalías de Inserción
3Normalización para qué sirve?
La normalización consiste en descomponer una
relación de una BD en sub-relaciones. Las
anomalías son a menudo debidas a una mala
repartición de la información entre las relaciones
- CUIDADO
- La normalización tiene un impacto sobre la
eficiencia de la interrogación - La normalización puede traer perdida de
información y de DF
!
4Ejemplo
PERSONAL
Una restricción del mundo real es DF Cargo,
Escalafón ? Salario
5ANOMALIAS
- Anomalía de inserción Para almacenar el salario
de un profesor de escalafón 3, es necesario que
exista en PERSONAL un maestro de escalafón 3. - Anomalía de modificación la redundancia de la
información en los profesores de escalafón 6
puede introducir problemas si el salario de esa
categoría es modificado. Es necesario tener en
cuenta que se debe modificar la tupla 1 y 6 - anomalía de supresión si el único profesor de
escalafón 5 (respectivamente 9) cambia de
escalafón se pierde la información sobre el
salario de los profesores de escalafón 5
(respectivamente 9)
6Ejercicio
- Supóngase la relación ENVIO
-
- sede_ppal nit producto cantidad con_iva
- Med 101 Leche 10 No
- Bog 201 Chorizo 29 Si
- Med 101 Yogur 12 Si
- Med 101 Pasas 100 No
- Bog 201 Leche 12 No
- Bog 201 Pasas 100
No - Med 128 Chicha 10 No
CP
7PREGUNTAS
- Suponga que hay 50 proveedores de leche y que
ésta se vuelve un producto con IVA, que
implicaciones trae esto? - Qué pasa si queremos ingresar un proveedor que
todavía no nos ha suministrado algún producto
pero deseamos registrar sus datos? - La misma pregunta anterior para un producto
8PREGUNTAS
- Qué pasa si en el almacén ya no desean vender
chicha pero desean preservar la información del
proveedor 128? - Qué pasa si en el almacén ya no desean negociar
con el proveedor 128? Qué pasa con la
información del producto chicha? - Cuántas veces dice la relación ENVIO dónde está
situado cada proveedor? - Cuántas veces dice la relación ENVIO si un
producto está gravado o no con IVA?
9PREGUNTAS
- Todo lo anterior indica que aunque la relación
representa el negocio, posee muchos problemas - La idea de la normalización es producir
relaciones que representen el negocio pero que al
mismo tiempo eviten (en lo posible) anomalías
como las anteriores
10FORMAS NORMALES
- 6 formas normales clásicas
- 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
- Mientras una relación esté en una forma normal
más alta mucho mejor - Generalmente se acepta normalizar hasta BCNF
- Las formas normales 4 y 5 son casos extremos
11FORMAS NORMALES
- Si una relación cumple una forma normal n
automáticamente cumplirá las n-1 formas normales
anteriores, es decir, cada forma normal es más
fuerte que sus predecesoras. - El análisis de 1NF, 2NF y 3NF está considerado
sólo para relaciones con una sola clave
candidata. Para relaciones con más de 1 clave
candidata directamente se aplica BCNF
12PRIMERA FORMA NORMAL
- Definición
- Una relación está en 1NF sii todos sus atributos
tienen valores atómicos
Suponiendo que cada autor es un valor semántico
de interés
13PRIMERA FORMA NORMAL
- Solución crear una entidad adicional y agregarla
al esquema con relación 1N
14Otro ejemplo
EMPLEADO
EMPLEADO no está en 1FN
Solución 1
EMPLEADO
Ya está en 1NF
- Problemas de la solución 1
- Que pasa si a Demetrio le asignan otra función?
- Almacenamiento de valores nulos
15Otro ejemplo
EMPLEADO
Solución 2
EMPLEADO
FUNCION_EMPLEADO
Que pasa si a Demetrio le asignan otra
función? Simplemente inserto una fila más en
FUNCION_EMPLEADO
16SEGUNDA FORMA NORMAL
- Una relación está en 2NF si y sólo si está en 1NF
y todos los atributos no clave (si los hay)
dependen funcionalmente por completo de la clave
primaria. - Está la relación ENVÍO (Diap. 7) en 2NF? Veamos
17Diagrama de DF para la relación ENVIO
con_iva
producto
nit
cant
sede_ppal
Como los atributos con_iva y sede_ppal no tienen
una DF completa de la CP, entonces la relación NO
está en 2NF
18Segunda Forma Normal
- Solución Con las flechas conflictivas (flechas
de color rojo) se crean relaciones adicionales - El proceso de normalización puede verse como una
eliminación de flechas conflictivas
19- Resultado de la partición
R2
producto
con_iva
producto
R1
cant
nit
R3
nit
sede_ppal
20PREGUNTAS
- Soluciona la partición las anomalías mencionadas
anteriormente? - Están las relaciones resultantes en 2NF?
21TERCERA FORMA NORMAL
- Una relación está en 3NF si y sólo si los
atributos no clave (si los hay) son - Mutuamente independientes
- Dependen por completo de la CP
22EJEMPLO
- Considérese la relación REGISTRO
- cédula hobbie valor_hobbie
- 10 Música 100
- 20 Pintura 200
- 30 Música 100
- 40 Pintura 200
- 50 Bolos 100
- Cada persona sólo puede registrar un hobbie
- El precio de un mismo hobbie es igual para todas
las personas
23EJEMPLO
- Qué problemas tiene la relación anterior?
- Está en 2NF? En 3NF? Veamos el diagrama
cédula
hobbie
Dependencia entre atributos no clave
valor_hobbie
24Se realiza la siguiente partición
CF
R1
R2
- Matricula
- cédula hobbie
- 10 Música
- 20 Pintura
- 30 Música
- 40 Pintura
- 50 Bolos
- Hobbie
- nombre valor_hobbie
- Música 100
- Pintura 200
- Bolos 100
- Natación 100
CP
CP
25PREGUNTAS
- Desaparecen las anomalías en el nuevo esquema?
- El hecho de que en matrícula se repita el nombre
del hobbie por cada estudiante que lo tome es un
problema de normalización? - Qué pasa si la partición se hubiera hecho así
R1(cédula, hobbie) y R2(cédula, valor_hobbie) ?
Están en 3NF? - Qué pasa si la partición se hubiera hecho así
R1(cédula, valor_hobbie) y R2(hobbie,
valor_hobbie) ? Están en 3NF?