View
219
Download
0
Category
Preview:
Citation preview
22/04/23 Curso Bases de Datos 1
Normalización
Francisco Moreno
22/04/23 Curso Bases de Datos 2
Normalización• Es la técnica usada para diseñar “buenas”
relaciones con el fin de minimizar:– cierto tipo de redundancia
– el mantenimiento de los datos
– el impacto de futuros cambios en los datos
y en su ingreso
Anomalías de inserción
Anomalías de actualizacióny borrado
Normalización• Nota: hoy en algunas aplicaciones se sigue una
política de poca normalización. En tal caso, se debe estar siempre consciente de las posibles anomalías a las que esto puede conllevar.
• Antes de tomar la decisión de adoptar una política como la anterior, se debe dominar el proceso de normalización.
• El objetivo del curso es el diseño de bases de datos con un alto grado de normalización (mínimo BCNF ver más adelante)
22/04/23 Curso Bases de Datos 3
22/04/23 Curso Bases de Datos 4
AnomalíasSea la relación:
ENVÍO
sede_ppal NIT producto cantidad IVAMed 101 Leche 10 NoBog 201 Chorizo 29 SíMed 101 Yogur 12 SíMed 101 Pasas 100 No
Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Gato 1 No
CP
Nota: un producto tiene o no IVA (sin importar el proveedor que lo suministre)
22/04/23 Curso Bases de Datos 5
• Supóngase que un proveedor que suministra 100 productos (distintos) cambia su sede principal, ¿qué implica esto?
• Supóngase que hay 50 proveedores de Leche y que esta se grava con IVA, ¿qué implica esto?
• ¿Qué pasa si se quiere ingresar un proveedor
que todavía no ha suministrado algún producto?
• La misma pregunta anterior para un producto.
22/04/23 Curso Bases de Datos 6
• ¿Qué pasa si en el almacén ya no desean vender Gato pero desean preservar los datos del proveedor 128?
• ¿Qué pasa si en el almacén ya no desean negociar con el proveedor 128? ¿Qué pasa con los datos del producto Gato?
• ¿Cuántas veces dice la relación donde está la sede principal de cada proveedor?
• ¿Cuántas veces dice la relación si un producto tiene o no IVA?
22/04/23 Curso Bases de Datos 7
• Nótese que aunque esta relación representa el negocio, tiene aspectos que pueden ser inconvenientes.
• La idea de la normalización es diseñar relaciones que representen el negocio pero que al mismo tiempo eviten (en lo posible) aspectos (considerados anomalías en la normalización) como los anteriores.
22/04/23 Curso Bases de Datos 8
Formas Normales• Seis formas normales clásicas*:
1NF, 2NF, 3NF, BCNF, 4NF, 5NF
• Mientras una relación esté en una forma normal más alta “mucho mejor”.
• En la práctica usualmente es suficiente analizar y llevar la normalización hasta la BCNF.
*Hay otras: EKNF (Elementary key NF), DKNF (Domain-key NF), 6NF y recientemente ETNF (Essential tuple NF o “4.5NF”)
22/04/23 Curso Bases de Datos 9
Formas Normales
• Si una relación satisface una forma normal nn automáticamente satisface las n-1n-1 formas normales anteriores, es decir, cada forma normal es “más fuerte” que sus predecesoras.
• El análisis de 2NF y 3NF se considera solo para relaciones con una sola clave candidata. Para relaciones con más de una clave candidata se aplica directamente BCNF (BCNF también es aplicable para relaciones con una sola clave candidata).
22/04/23 Curso Bases de Datos 10
Primera Forma Normal• Una relación está en 1NF si los valores de
sus atributos son atómicos*.
• Toda relación está en 1NF (de lo contrario no sería una relación).
• Es la forma normal más débil, la menos “exigente”.
* Aunque el concepto de atomicidad es muy elusivo.
22/04/23 Curso Bases de Datos 11
Primera Forma Normal
• Ejemplo.Sea PROVEEDOR con atributos:
NIT nombre sedes 1 Barbie {Cl 2 #1-3, Cl 30 #9-98} 2 Kitty {Av 5 #1-8, Cr 2 #3-2, Cr 1 #9-8}
• Si cada sede representa un valor semántico por sí mismo, entonces PROVEEDOR no es una relación y; por lo tanto, no está en 1NF.
22/04/23 Curso Bases de Datos 12
Primera Forma Normal
• Solución:
Relación SEDE
dirección idprovCl 2 #1-3 1Cl 30 #9-98 1Av 5 #1-8 2Cr 2 #3-2 2Cr 1 #9-8 2
Relación PROVEEDOR
NIT nombre 1 Barbie 2 Kitty
CP
CF
CP (acá se supone que dos proveedores no tienen su sede en la misma dirección, de lo contrario la CP sería compuesta)
Primera Forma Normal
• Nótese que en la relación SEDE se repite el NIT del proveedor por cada dirección que este tenga; sin embargo, esto NO ES UN PROBLEMA DE NORMALIZACIÓN.
• De hecho SEDE está altamente normalizada (incluso está en 5NF al igual que PROVEEDOR).
22/04/23 Curso Bases de Datos 13
22/04/23 Curso Bases de Datos 14
Segunda Forma Normal
• Una relación está en 2NF si y solo 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 (diapositiva 4) en 2NF? Veamos:
* Es decir, los atributos que no hacen parte de la clave primaria.
22/04/23 Curso Bases de Datos 15
Diagrama de DF completas para la relación ENVÍO
producto
NIT
sede_ppal
IVA cant
22/04/23 Curso Bases de Datos 16
• Como los atributos IVA y sede_ppal no dependen funcionalmente por completo de la CP, la relación no está en 2NF
• Solución: Con las “flechas conflictivas” (flechas rojas) se crean relaciones adicionales
• Por lo tanto, el proceso de normalización se puede considerar como una eliminación de “flechas conflictivas”
22/04/23 Curso Bases de Datos 17
producto
NIT
sede_ppal
IVA
cantRelación Relación ENVÍO ENVÍO
modificadamodificada
Nueva relación Nueva relación PRODUCTOPRODUCTO
Nueva relación Nueva relación EMPRESAEMPRESA
producto
NIT
Resultado de la partición
22/04/23 Curso Bases de Datos 18
• ¿Soluciona esta partición las anomalías mencionadas?
• ¿Están las relaciones resultantes en 2NF?
• ¿Los atributos producto y NIT en la relación ENVÍO qué características deben poseer (aparte de conformar lar CP de ENVÍO)?
22/04/23 Curso Bases de Datos 19
Tercera Forma Normal
Una relación está en 3NF si y solo si los
atributos no clave (si los hay):
• Dependen funcionalmente por completo de la CP
• Son mutuamente independientes (es decir, no hay DF entre ellos)
22/04/23 Curso Bases de Datos 20
• Sea la relación:
MATRÍCULAcédula nom_afición valor10 Música 10020 Pintura 20030 Música 10040 Pintura 200
50 Bolos 100
Reglas del negocio:• Cada persona solo puede elegir una afición• El precio (valor) de la misma afición es el mismo para
todas las personas
Valor de la afición
22/04/23 Curso Bases de Datos 21
• ¿Qué inconvenientes puede tener la relación anterior?
• ¿Está en 2NF? ¿En 3NF? Veamos el diagrama:
Dependencia entre
atributos no clave
cédula nom_afición
valor
22/04/23 Curso Bases de Datos 22
MATRÍCULA
cédulanom_afición
10 Música
20 Pintura
30 Música
40 Pintura
50 Bolos
AFICIÓN
nom_afición valorMúsica 100
Pintura 200
Bolos 100
CPCP
CF
Se hace la siguiente partición:
Nótese que a diferencia de la relación anterior, aquí es posible insertar una afición que no haya sido elegida por los estudiantes.
22/04/23 Curso Bases de Datos 23
• ¿Desaparecen las anomalías analizadas en el nuevo esquema?
• El hecho de que en MATRÍCULA se repita el El hecho de que en MATRÍCULA se repita el nombre de la afición por cada estudiante que la nombre de la afición por cada estudiante que la tome ¿es un problema de normalización?tome ¿es un problema de normalización?
• ¿Qué pasaría si la partición se hiciese así: R1(cédula, nom_afición) y R2(cédula, valor) ? ¿Están en 3NF?
• ¿Qué pasaría si la partición se hiciese así: R1(cédula, valor) y R2(nom_afición, valor) ? ¿Están en 3NF?
22/04/23 Curso Bases de Datos 24
BCNF
• Una relación está en BCNF si y solo si todo determinante es clave candidata
• Un determinante es un atributo del cual DF por completo otro atributo
22/04/23 Curso Bases de Datos 25
Sea la relación:
MATRMATRÍÍCULA_SEMESTRECULA_SEMESTRE
ced_estced_est carné carné materiamateria nota_defnota_def
10 912 Cálculo 1.0
10 912 Historia 1.9
10 912 Español 2.9
20 987 Cálculo 5.0
20 987 Química 3.0
30 965 Español 2.9
22/04/23 Curso Bases de Datos 26
• ¿Qué inconvenientes puede tener esta relación?• ¿Cuáles son sus claves candidatas?
Veamos el diagrama de DFs completas:
carné
ced_est
materia nota_def
22/04/23 Curso Bases de Datos 27
• ¿Está en BCNF?
• ¿Cuáles son los determinantes? ¿Es cada uno de ellos una clave candidata?
• ¿Cómo se debe partir está relación?
22/04/23 Curso Bases de Datos 28
4NFDMV: Dependencia Multivaluada.Dada una relación R con los atributos A, B y C, la DMV:
A > B
Se cumple en R si y solo si el conjunto de valores de B correspondiente a un par dado (A, C) en R depende solo del valor de A y es independiente del valor de C.
Pueden ser compuestos
22/04/23 Curso Bases de Datos 29
• Teorema del complemento. Sea una relación R(A, B, C) si se cumple que:
A > B entonces automáticamente se cumple:
A > C.
• Una DF es una DMV pero una DMV no necesariamente es una DF
• Una relación está en 4NF si y solo si está en BCNF y todas las DMVs en R son de hecho DFs
22/04/23 Curso Bases de Datos 30
Ejemplo. Sea la relación ZZ:
curso profesor textoFísica Ñoño MB
Física Ñoño POFísica Dino MBFísica Dino POMat. Ñoño MBMat. Ñoño AVMat. Ñoño TR
¿Qué se quiere representar con esta relación?¿Qué inconvenientes puede tener?¿Cuál es su CP?¿Está en BCNF?
22/04/23 Curso Bases de Datos 31
Veamos, por ejemplo, si en Z se cumple: curso curso > texto> texto
• Dada la pareja (Física, Ñoño) el conjunto de textos correspondientes es {MB, PO}.
• Dada la pareja (Física, Dino) el conjunto de textos correspondientes es {MB, PO}.
• Si se mira cual es el conjunto de textos correspondiente a Física (sin importar el profesor) el resultado es: {MB, PO}. En forma análogaanáloga para Mat.
22/04/23 Curso Bases de Datos 32
Por lo tanto, curso curso > texto> texto y por el
teorema del complemento curso curso > profesor> profesor.
¿Cómo se debe partir Z para lograr 4NF?Solución: R1(curso, texto) y R2(curso, profesor)
• Otro ejemplo, sea la relación:
codpréstamo cedcliente dir ciudad
1 10 Cl 1#3-1 Cali
1 10 Cl 9#2-2 Medellín
2 10 Cl 1#3-1 Cali
2 10 Cl 9#2-2 Medellín
2 35 Cr 5#1-2 Bogotá
2 35 Cl 1#3-1 Cali
2 35 Av 1#8-9 Cali
3 35 Cr 5#1-2 Bogotá
3 35 Cl 1#3-1 Cali
3 35 Av 1#8-9 Cali
22/04/23 Curso Bases de Datos 33
• Supóngase que siempre que un préstamo se le hace a un cliente (se permiten préstamos compartidos), este se registra con todas sus direcciones (dir y ciudad), entonces:
cedcliente > {dir, ciudad}
cedcliente > codpréstamo
22/04/23 Curso Bases de Datos 34
BA
CA
Recommended