La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno."— Transcripción de la presentación:

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

2 07/05/2015Curso Bases de Datos2 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ón y borrado

3 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) 07/05/2015Curso Bases de Datos3

4 07/05/2015Curso Bases de Datos4 Anomalías Sea la relación: ENVÍO sede_ppalNIT producto cantidad IVA Med101 Leche 10 No Bog201Chorizo 29 Sí Med101 Yogur 12 Sí Med101Pasas 100 No Bog201Leche 12 No Bog201 Pasas 100 No Med128Gato 1 No CP Nota: un producto tiene o no IVA (sin importar el proveedor que lo suministre)

5 07/05/2015Curso Bases de Datos5 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.

6 07/05/2015Curso Bases de Datos6 ¿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?

7 07/05/2015Curso Bases de Datos7 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.

8 07/05/2015Curso Bases de Datos8 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” )

9 07/05/2015Curso Bases de Datos9 Formas Normales n n-1Si 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 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).

10 07/05/2015Curso Bases de Datos10 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.

11 07/05/2015Curso Bases de Datos11 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.

12 07/05/2015Curso Bases de Datos12 Primera Forma Normal Solución: Relación 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 Relación PROVEEDOR NIT nombre 1Barbie 2Kitty 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)

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 5NF al igual que PROVEEDOR). 07/05/2015Curso Bases de Datos13

14 07/05/2015Curso Bases de Datos14 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.

15 07/05/2015Curso Bases de Datos15 Diagrama de DF completas para la relación ENVÍO producto NIT sede_ppal IVA cant

16 07/05/2015Curso Bases de Datos16 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”

17 07/05/2015Curso Bases de Datos17 producto NIT sede_ppal IVA cant RelaciónENVÍOmodificada Nueva relación PRODUCTO EMPRESA producto NIT Resultado de la partición

18 07/05/2015Curso Bases de Datos18 ¿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)?

19 07/05/2015Curso Bases de Datos19 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)

20 07/05/2015Curso Bases de Datos20 Sea la relación: MATRÍCULA cédulanom_aficiónvalor 10Música100 20Pintura200 30Música100 40Pintura200 50Bolos100 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

21 07/05/2015Curso Bases de Datos21 ¿Qué inconvenientes puede tener la relación anterior? ¿Está en 2NF? ¿En 3NF? Veamos el diagrama: Dependencia entre atributos no clave cédulanom_afición valor

22 07/05/2015Curso Bases de Datos22 MATRÍCULA cédulanom_afición 10Música 20Pintura 30Música 40Pintura 50Bolos AFICIÓN nom_afición valor Música 100 Pintura 200 Bolos 100 CP 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.

23 07/05/2015Curso Bases de Datos23 ¿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?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í: 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?

24 07/05/2015Curso Bases de Datos24 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

25 07/05/2015Curso Bases de Datos25 Sea la relación: MATRÍCULA_SEMESTRE ced_estcarné materianota_def 10912Cálculo1.0 10912Historia1.9 10912Español2.9 20987Cálculo5.0 20987Química3.0 30965Español2.9

26 07/05/2015Curso Bases de Datos26 ¿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

27 07/05/2015Curso Bases de Datos27 ¿Está en BCNF? ¿Cuáles son los determinantes? ¿Es cada uno de ellos una clave candidata? ¿Cómo se debe partir está relación?

28 07/05/2015Curso Bases de Datos28 4NF 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. Pueden ser compuestos

29 07/05/2015Curso Bases de Datos29 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

30 07/05/2015Curso Bases de Datos30 Ejemplo. Z Sea la relación Z: cursoprofesortexto FísicaÑoñoMB FísicaÑoñoPO FísicaDinoMB FísicaDinoPO Mat.ÑoñoMB Mat.ÑoñoAV Mat.ÑoñoTR ¿Qué se quiere representar con esta relación? ¿Qué inconvenientes puede tener? ¿Cuál es su CP? ¿Está en BCNF?

31 07/05/2015Curso Bases de Datos31 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}. análogaSi 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.

32 07/05/2015Curso Bases de Datos32 curso  > texto Por lo tanto, curso  > texto y por el curso  > profesor teorema del complemento curso  > profesor. ¿Cómo se debe partir Z para lograr 4NF? Solución: R1(curso, texto) y R2(curso, profesor)

33 Otro ejemplo, sea la relación: codpréstamocedcliente dirciudad 110Cl 1#3-1Cali 1 10Cl 9#2-2Medellín 210Cl 1#3-1 Cali 2 10Cl 9#2-2 Medellín 235Cr 5#1-2Bogotá 235Cl 1#3-1Cali 235Av 1#8-9Cali 335Cr 5#1-2 Bogotá 335Cl 1#3-1 Cali 335Av 1#8-9 Cali 07/05/2015Curso Bases de Datos33

34 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 07/05/2015Curso Bases de Datos34 B A C A


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

Presentaciones similares


Anuncios Google