Post on 09-Feb-2017
1
Normalización
MSc. Ing. Pavel González GarcíaPaveljesus@gmail.com
Conferencia IV
01/05/2023 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 actualizacióny borrado
Anomalías de Inserción
01/05/2023 3
Normalización: ¿para qué sirve?
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!
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
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.
5
Principio básico de diseño: "hechos distintos se deben
almacenar en objetos distintos"
01/05/2023 6
Ejemplo
Cedula Nombre Apellido Cargo Escalafón
Salario
4325 Juan García Profesor 6 1.5898564 Mario López Profesor 9 2.0233698 Luis Pérez Profesor 5 1.3505874 Carlos Gómez Profesor 6 1.589
PERSONAL
Una restricción del mundo real es:DF = {Cargo, Escalafón} Salario
01/05/2023 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)
01/05/2023 8
EjercicioSupóngase la relación: ENVIO
sede_ppal nit producto cantidad con_iva
Med 101 Leche 10 NoBog 201 Chorizo 29 SiMed 101 Yogur 12 SiMed 101 Pasas 100 No
Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No
CP
01/05/2023 9
¿ 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
PREGUNTAS
01/05/2023 10
¿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?
PREGUNTAS
01/05/2023 11
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
PREGUNTAS
01/05/2023 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”
!
01/05/2023 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
01/05/2023 14
PRIMERA FORMA NORMALDefinició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
01/05/2023 15
PRIMERA FORMA NORMAL Solución: crear una entidad adicional
y agregarla al esquema con relación 1:N
01/05/2023 16
Otro ejemplo
EMPLEADO
CivilSistemas
{Director, I nvestigador, Prof esor}{I nvestigador, Prof esor}
OvalleArango
DemetrioFernando
1234567890
FacultadFunciónApellidoNomI d
CivilSistemas
{Director, I nvestigador, Prof esor}{I nvestigador, Prof esor}
OvalleArango
DemetrioFernando
1234567890
FacultadFunciónApellidoNomI dEMPLEADO
CivilProfesorI nvestigadorDirectorOvalleDemetrio12345SistemasNULLProfesorI nvestigadorArangoFernando67890
FacultadFuncion3Función2Función1ApellidoNomI dCivilProfesorI nvestigadorDirectorOvalleDemetrio12345SistemasNULLProfesorI nvestigadorArangoFernando67890
FacultadFuncion3Función2Función1ApellidoNomI d
Solución 1
Problemas de la solución 1: • ¿Que pasa si a Demetrio le asignan otra función?• Almacenamiento de valores nulos
EMPLEADO no está en 1FN
Ya está en 1NF
01/05/2023 17
Otro ejemplo
EMPLEADO
CivilSistemas
{Director, I nvestigador, Prof esor}{I nvestigador, Prof esor}
OvalleArango
DemetrioFernando
1234567890
FacultadFunciónApellidoNomI d
CivilSistemas
{Director, I nvestigador, Prof esor}{I nvestigador, Prof esor}
OvalleArango
DemetrioFernando
1234567890
FacultadFunciónApellidoNomI dEMPLEADO
Solución 2
CivilSistemas
OvalleArango
DemetrioFernando
1234567890
FacultadApellidoNomId
CivilSistemas
OvalleArango
DemetrioFernando
1234567890
FacultadApellidoNomId
Investigador12345Profesor12345Investigador67890
Director12345
Profesor67890
FunciónId
Investigador12345Profesor12345Investigador67890
Director12345
Profesor67890
FunciónId
FUNCION_EMPLEADO
¿Que pasa si a Demetrio le asignan otra función?Simplemente inserto una fila más en FUNCION_EMPLEADO
01/05/2023 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:
01/05/2023 19
Diagrama de DF para la relación ENVIO
producto
nit
sede_ppal
con_iva
cant
Como los atributos con_iva y sede_ppal no tienen una DF completa de la CP, entonces la relación NO está en 2NF
01/05/2023 20
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”
Segunda Forma Normal
01/05/2023 21
Resultado de la partición:
producto
nit
sede_ppal
con_iva
cantR1
R2
R3
producto
nit
01/05/2023 22
¿Soluciona la partición las anomalías mencionadas anteriormente?
¿Están las relaciones resultantes en 2NF?
PREGUNTAS
01/05/2023 23
TERCERA FORMA NORMALUna 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
01/05/2023 24
Considérese la relación REGISTROcédula hobbie valor_hobbie10 Música 10020 Pintura 20030 Música 10040 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
EJEMPLO
01/05/2023 25
¿Qué problemas tiene la relación anterior? ¿Está en 2NF? ¿En 3NF? Veamos el
diagrama:cédula hobbie
valor_hobbie
Dependencia entre atributos no clave
EJEMPLO
01/05/2023 26
Matriculacédula hobbie10 Música20 Pintura30 Música40 Pintura50 Bolos
Hobbienombre valor_hobbieMúsica 100Pintura 200Bolos 100Natación 100
CPCP
CF
Se realiza la siguiente partición:
R1: R2:
01/05/2023 27
¿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?
PREGUNTAS