07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

34
24/06/22 Curso Bases de Datos 1 Normalización Francisco Moreno

Transcript of 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

Page 1: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

22/04/23 Curso Bases de Datos 1

Normalización

Francisco Moreno

Page 2: 07/05/2015Curso Bases de Datos1 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

Page 3: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 4: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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)

Page 5: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 6: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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?

Page 7: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 8: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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”)

Page 9: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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).

Page 10: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 11: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 12: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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)

Page 13: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 14: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 15: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

22/04/23 Curso Bases de Datos 15

Diagrama de DF completas para la relación ENVÍO

producto

NIT

sede_ppal

IVA cant

Page 16: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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”

Page 17: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 18: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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)?

Page 19: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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)

Page 20: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 21: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 22: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 23: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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?

Page 24: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 25: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 26: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 27: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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?

Page 28: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 29: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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

Page 30: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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?

Page 31: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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.

Page 32: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

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)

Page 33: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

• 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

Page 34: 07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.

• 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