El documento resume los conceptos clave de la normalización de bases de datos. Explica que la normalización sirve para minimizar la redundancia, facilitar el mantenimiento y reducir el impacto de cambios. Describe las primeras tres formas normales y cómo identificar y corregir anomalías mediante la partición de relaciones para cumplir con cada forma normal. Ilustra los conceptos con ejemplos prácticos de relaciones y sus particiones.
2. Normalizació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 Anomalías de
actualización Inserción
y borrado
26/03/2012 2
3. Normalizació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
26/03/2012 3
4. Ejemplo de diseño inadecuado
Redundancia de información: ciudad, distancia (ciudad);
precio (artículo).
Anomalías de modificación: !podemos tener el mismo
artículo con dos precios! (igual argumento para ciudad y
distancia). inconsistencias
Anomalías de inserción: ¿Podemos registrar nuevo
artículo?, ¿Nuevo cliente?, ¿Nueva ciudad, distancia?
Anomalías de borrado: Si eliminamos tupla de pedido de
artículo A3 o cliente C4 pérdida de información.
4
5. Principio básico de diseño:
"hechos distintos se deben
almacenar en objetos distintos"
5
6. Ejemplo
PERSONAL
Cedula Nombre Apellido Cargo Escalafón Salario
4325 Juan García Profesor 6 1.589
8564 Mario López Profesor 9 2.023
3698 Luis Pérez Profesor 5 1.350
5874 Carlos Gómez Profesor 6 1.589
Una restricción del mundo real es:
DF = {Cargo, Escalafón} Salario
26/03/2012 6
7. ANOMALIAS
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)
26/03/2012 7
8. Ejercicio
Supóngase la relación: ENVIO
CP
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
26/03/2012 8
9. PREGUNTAS
¿ 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
26/03/2012 9
10. PREGUNTAS
¿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?
26/03/2012 10
11. PREGUNTAS
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
26/03/2012 11
12. FORMAS 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”
26/03/2012 12
13. FORMAS 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
26/03/2012 13
14. PRIMERA 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
26/03/2012 14
15. PRIMERA FORMA NORMAL
Solución: crear una entidad adicional
y agregarla al esquema con relación
1:N
26/03/2012 15
16. Otro ejemplo
EMPLEADO
Id Nom Apellido Función Facultad
12345 Demetrio Ovalle {Director, Investigador, Profesor} Civil
67890 Fernando Arango {Investigador, Profesor} Sistemas
Solución 1 EMPLEADO no
está en 1FN
EMPLEADO
Id Nom Apellido Función1 Función2 Funcion3 Facultad
12345 Demetrio Ovalle Director Investigador Profesor Civil
67890 Fernando Arango Investigador Profesor NULL Sistemas
Problemas de la solución 1: Ya está en 1NF
•¿Que pasa si a Demetrio le asignan otra función?
•Almacenamiento de valores nulos
26/03/2012 16
17. Otro ejemplo
EMPLEADO
Id Nom Apellido Función Facultad
12345 Demetrio Ovalle {Director, Investigador, Profesor} Civil
67890 Fernando Arango {Investigador, Profesor} Sistemas
Solución 2
EMPLEADO Id Nom Apellido Facultad
FUNCION_EMPLEADO 12345 Demetrio Ovalle Civil
Id Función 67890 Fernando Arango Sistemas
12345 Director
12345 Investigador
¿Que pasa si a Demetrio le asignan otra función?
Simplemente inserto una fila más en
12345 Profesor
FUNCION_EMPLEADO
67890 Investigador
67890 Profesor
26/03/2012 17
18. SEGUNDA 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:
26/03/2012 18
19. Diagrama de DF para la relación
ENVIO
producto con_iva
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
26/03/2012 19
20. Segunda 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”
26/03/2012 20
21. Resultado de la partición:
R2 producto con_iva
producto
R1 cant
nit
R3 nit sede_ppal
26/03/2012 21
22. PREGUNTAS
¿Soluciona la partición las anomalías
mencionadas anteriormente?
¿Están las relaciones resultantes en
2NF?
26/03/2012 22
23. TERCERA 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
26/03/2012 23
24. EJEMPLO
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
26/03/2012 24
25. EJEMPLO
¿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
26/03/2012 25
26. Se realiza la siguiente partición:
CF
R1: R2:
Matricula Hobbie
cédula hobbie nombre valor_hobbie
10 Música Música 100
20 Pintura Pintura 200
30 Música Bolos 100
40 Pintura Natación 100
50 Bolos
CP
CP
26/03/2012 26
27. PREGUNTAS
¿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?
26/03/2012 27