conferencia iv de base de datos

27
1 Normalización MSc. Ing. Pavel González García [email protected] Conferencia IV

Upload: pavel-gonzalez

Post on 09-Feb-2017

360 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Conferencia iv de Base de Datos

1

Normalización

MSc. Ing. Pavel González Garcí[email protected]

Conferencia IV

Page 2: Conferencia iv de Base de Datos

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

Page 3: Conferencia iv de Base de Datos

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

Page 4: Conferencia iv de Base de Datos

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.

Page 5: Conferencia iv de Base de Datos

5

Principio básico de diseño: "hechos distintos se deben

almacenar en objetos distintos"

Page 6: Conferencia iv de Base de Datos

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

Page 7: Conferencia iv de Base de Datos

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)

Page 8: Conferencia iv de Base de Datos

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

Page 9: Conferencia iv de Base de Datos

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

Page 10: Conferencia iv de Base de Datos

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

Page 11: Conferencia iv de Base de Datos

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

Page 12: Conferencia iv de Base de Datos

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”

!

Page 13: Conferencia iv de Base de Datos

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

Page 14: Conferencia iv de Base de Datos

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

Page 15: Conferencia iv de Base de Datos

01/05/2023 15

PRIMERA FORMA NORMAL Solución: crear una entidad adicional

y agregarla al esquema con relación 1:N

Page 16: Conferencia iv de Base de Datos

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

Page 17: Conferencia iv de Base de Datos

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

Page 18: Conferencia iv de Base de Datos

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:

Page 19: Conferencia iv de Base de Datos

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

Page 20: Conferencia iv de Base de Datos

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

Page 21: Conferencia iv de Base de Datos

01/05/2023 21

Resultado de la partición:

producto

nit

sede_ppal

con_iva

cantR1

R2

R3

producto

nit

Page 22: Conferencia iv de Base de Datos

01/05/2023 22

¿Soluciona la partición las anomalías mencionadas anteriormente?

¿Están las relaciones resultantes en 2NF?

PREGUNTAS

Page 23: Conferencia iv de Base de Datos

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

Page 24: Conferencia iv de Base de Datos

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

Page 25: Conferencia iv de Base de Datos

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

Page 26: Conferencia iv de Base de Datos

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:

Page 27: Conferencia iv de Base de Datos

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