Normalizacin Francisco Moreno 16062021 Curso Bases de Datos
Normalización Francisco Moreno 16/06/2021 Curso Bases de Datos 1
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 16/06/2021 Curso Bases de Datos Anomalías de actualización y borrado 2
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) 16/06/2021 Curso Bases de Datos 3
Anomalías Sea la relación: CP ENVÍO encargado NIT producto M. S. A 101 Leche B. Corp 201 Chorizo M. S. A 101 Yogur M. S. A 101 Pasas B. Corp 201 Leche B. Corp 201 Pasas M. S. A 128 Gato Nota: el nivel (de posicionamiento en el mercado) de un producto es independiente del proveedor (NIT) que lo suministre. cantidad 10 29 12 100 1 nivel 5 8 5 3 8 Nota: se supondrá que un proveedor (NIT) tiene un solo encargado. 16/06/2021 Curso Bases de Datos 4
• Supóngase que un proveedor que suministra 100 productos (distintos) cambia regularmente su encargado, ¿qué implica esto? • Supóngase que hay 50 proveedores de Leche y que el nivel de esta cambia, ¿qué implica esto? • ¿Qué pasa si se quiere ingresar un proveedor que todavía no ha suministrado algún producto? • ¿Qué pasa si se quiere ingresar un producto pero todavía no se sabe quien lo va a suministrar? 16/06/2021 Curso Bases de Datos 5
• ¿Cuántas veces dice la relación quien es el encargado de cada proveedor? • ¿Cuántas veces dice la relación cual es el nivel de un producto? 16/06/2021 Curso Bases de Datos 6
• 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. 16/06/2021 Curso Bases de Datos 7
Formas Normales • Seis formas normales clásicas*: 1 NF, 2 NF, 3 NF, BCNF, 4 NF, 5 NF • 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), 6 NF y recientemente ETNF (Essential tuple NF o “ 4. 5 NF”) 16/06/2021 Curso Bases de Datos 8
Formas Normales • Si una relación satisface una forma normal n automáticamente satisface las n-1 formas normales anteriores, es decir, cada forma normal es “más fuerte” que sus predecesoras. • El análisis de 2 NF y 3 NF 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). 16/06/2021 Curso Bases de Datos 9
Primera Forma Normal • Una relación está en 1 NF si los valores de sus atributos son atómicos*. • Toda relación está en 1 NF (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. 16/06/2021 Curso Bases de Datos 10
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 1 NF. 16/06/2021 Curso Bases de Datos 11
• Solución 1: NIT 1 1 2 2 2 16/06/2021 nombre Barbie Kitty dirección Cl 2 #1 -3 Cl 30 #9 -98 Av 5 #1 -8 Cr 2 #3 -2 Cr 1 #9 -8
Primera Forma Normal CP (acá se supone que dos proveedores no • Solución 2: tienen su sede en la misma dirección, de lo contrario la CP sería compuesta) Relación CF SEDE dirección idprov Cl 2 #1 -3 1 Cl 30 #9 -98 1 Av 5 #1 -8 2 Cr 2 #3 -2 2 Cr 1 #9 -8 2 16/06/2021 Relación PROVEEDOR NIT nombre 1 Barbie 2 Kitty CP Curso Bases de Datos 13
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 5 NF al igual que PROVEEDOR). 16/06/2021 Curso Bases de Datos 14
Segunda Forma Normal • Una relación está en 2 NF si y solo si está en 1 NF 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 2 NF? Veamos: * Es decir, los atributos que no hacen parte de la clave primaria. 16/06/2021 Curso Bases de Datos 15
Diagrama de DF completas para la relación ENVÍO nivel producto cant NIT encargado 16/06/2021 Curso Bases de Datos 16
• Como los atributos nivel y encargado no dependen funcionalmente por completo de la CP, la relación no está en 2 NF • 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” 16/06/2021 Curso Bases de Datos 17
Resultado de la partición Nueva relación PRODUCTO Relación ENVÍO modificada Nueva relación EMPRESA 16/06/2021 producto nivel producto cant NIT encargado Curso Bases de Datos 18
• ¿Soluciona esta partición las anomalías mencionadas? • ¿Están las relaciones resultantes en 2 NF? • ¿Los atributos producto y NIT en la relación ENVÍO qué características deben poseer (aparte de conformar lar CP de ENVÍO)? 16/06/2021 Curso Bases de Datos 19
U n a Tercera Forma Normal r e l a c i ó n e 16/06/2021 Curso Bases de Datos 20
• Sea la relación: cédula 10 20 30 40 50 MATRÍCULA nom_afición valor Música 100 Pintura 200 Bolos 100 Valor de la afición 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 16/06/2021 Curso Bases de Datos 21
• ¿Qué inconvenientes puede tener la relación anterior? • ¿Está en 2 NF? ¿En 3 NF? Veamos el diagrama: cédula nom_afición Dependencia entre atributos no clave valor 16/06/2021 Curso Bases de Datos 22
Se hace la siguiente partición: CF MATRÍCULA AFICIÓN cédula nom_afición valor 10 20 30 40 50 CP 16/06/2021 Música Pintura Bolos CP Curso Bases de Datos 100 200 100 Nótese que a diferencia de la relación anterior, aquí es posible insertar una afición que no 23 haya sido elegida por los estudiantes.
• ¿Desaparecen las anomalías analizadas en el nuevo esquema? • El hecho de que en MATRÍCULA se repita el nombre de la afición por cada estudiante que la tome ¿es un problema de normalización? • ¿Qué pasaría si la partición se hiciese así: R 1(cédula, nom_afición) y R 2(cédula, valor) ? ¿Están en 3 NF? • ¿Qué pasaría si la partición se hiciese así: R 1(cédula, valor) y R 2(nom_afición, valor) ? ¿Están en 3 NF? 16/06/2021 Curso Bases de Datos 24
Algoritmo para descomposición 3 NF de una relación R 3 NF(S) S: Conjunto de DFs que se cumplen en R. BEGIN 1. Hallar S (cierre mínimo de S) 2. Dividir S en m subconjuntos s 1, s 2, …, sm con base en los lados izquierdos. 3. Crear el esquema Ri con todos los atributos incluidos en si, para 1 i m (la CP de Ri es el lado izquierdo correspondiente). 4. Si ningún esquema Ri incluye la CP de R, crear un esquema R 0 que contenga los atributos que forman la clave de R. 5. Eliminar (si los hay) los esquemas redundantes (un esquema es redundante si está abarcado por otro). END 16/06/2021 Ver ejemplos en documento Bases de Datos del curso anexo. Curso en la página 25
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 16/06/2021 Curso Bases de Datos 26
Sea la relación: ced_est 10 10 10 20 20 30 16/06/2021 MATRÍCULA_SEMESTRE carné materia nota_def 912 Cálculo 1. 0 912 Historia 1. 9 912 Español 2. 9 987 Cálculo 5. 0 987 Química 3. 0 965 Español 2. 9 Curso Bases de Datos 27
• ¿Qué inconvenientes puede tener esta relación? • ¿Cuáles son sus claves candidatas? Veamos el diagrama de DFs completas: carné materia nota_def ced_est 16/06/2021 Curso Bases de Datos 28
• ¿Está en BCNF? • ¿Cuáles son los determinantes? ¿Es cada uno de ellos una clave candidata? • ¿Cómo se debe partir está relación? 16/06/2021 Curso Bases de Datos 29
4 NF Pueden ser compuestos DMV: 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. 16/06/2021 Curso Bases de Datos 30
• 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 4 NF si y solo si está en BCNF y todas las DMVs en R son de hecho DFs 16/06/2021 Curso Bases de Datos 31
Ejemplo. Sea la relación Z: curso Física Mat. 16/06/2021 profesor Ñoño Dino Ñoño texto MB PO MB AV TR Curso Bases de Datos ¿Qué se quiere representar con esta relación? ¿Qué inconvenientes puede tener? ¿Cuál es su CP? ¿Está en BCNF? 32
Veamos, por ejemplo, si en Z se cumple: curso > 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áloga para Mat. 16/06/2021 Curso Bases de Datos 33
Por lo tanto, curso > texto y por el teorema del complemento curso > profesor ¿Cómo se debe partir Z para lograr 4 NF? Solución: R 1(curso, texto) y R 2(curso, profesor) 16/06/2021 Curso Bases de Datos 34
• Otro ejemplo, sea la relación: codpréstamo cedcliente 1 10 2 35 2 35 3 35 16/06/2021 dir Cl 1#3 -1 Cl 9#2 -2 Cr 5#1 -2 Cl 1#3 -1 Av 1#8 -9 Curso Bases de Datos ciudad Cali Medellín Bogotá Cali 35
• 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: B A cedcliente > {dir, ciudad} cedcliente > codpréstamo A 16/06/2021 C Curso Bases de Datos 36
- Slides: 36