05. normalización

42
Normalización Ing. Gustavo Delgado Ugarte

Transcript of 05. normalización

Page 1: 05. normalización

Normalización

Ing. Gustavo Delgado Ugarte

Page 2: 05. normalización

Introducción

• La principal ventaja del modelo relacional frente a otros modelos de datos, como el de red o el jerárquico, es la existencia de un cuerpo teórico-formal en el que basar el proceso de diseño de bases de datos, de proceso de diseño de bases de datos, de modo que pueda dejar de ser una especie de “arte”, cuyo resultado depende fundamentalmente de la habilidad del diseñador para convertirse en un proceso metódico.

Page 3: 05. normalización

ANOMALIAS DE MANEJO

• Puede definirse el problema del diseño de las

bases de datos relacionales como el de escoger,

de entre una serie de posibilidades, un conjunto

de esquemas de relación “buenos” para de esquemas de relación “buenos” para

representar información del mundo real.

• ¿ Qué se entiende por un “buen” esquema de

relación ?

– Básicamente, uno que está libre de redundancia y de

anomalías de manejo.

Page 4: 05. normalización

ANOMALIAS DE MANEJO

• Consideremos un esquema de relación:

– PIEZAS ( PIEZA , PROVEEDOR , CANTIDAD )

• donde CANTIDAD indica la cantidad de una

determinada pieza en almacén.

• Supondremos que una misma pieza puede ser

suministrada por varios proveedores, y que un

proveedor puede suministrar varias piezas.

Page 5: 05. normalización

ANOMALIAS DE MANEJO

Page 6: 05. normalización

ANOMALIAS DE MANEJO

• Fácilmente se observa lo siguiente:– La cantidad de una determinada pieza aparece repetida tantas

veces como proveedores la suministran ( redundancia ).

– Al cambiar la cantidad almacenada de una determinada pieza, el valor debe alterarse en todas las tuplas correspondientes a dicha pieza ( anomalía de modificación ).

– Si se borra el último proveedor de una pieza, se pierde la cantidad de dicha pieza en almacén, a menos que se admitan valores nulos ( anomalía de borrado ).

– Solamente puede almacenarse la cantidad en almacén de una determinada pieza, cuando exista al menos un proveedor conocido para dicha pieza, a menos que se admitan valores nulos ( anomalía de inserción ).

Page 7: 05. normalización

FORMAS NORMALES

• Para caracterizar esquemas de relación desprovistos de determinados tipos de anomalías, se han definido las llamadas “formas normales”.

• Un esquema de relación está en una determinada forma normal cuando cumple ciertas condiciones que garantizan determinadas propiedades deseables del esquema.

Page 8: 05. normalización

1ra FORMA NORMAL ( Codd, 1970)

• Podríamos considerar la posibilidad de

sustituir el esquema de relación PIEZAS por

otro:

– PIEZAS2( PIEZA , PROVEEDORES , CANTIDAD )– PIEZAS2( PIEZA , PROVEEDORES , CANTIDAD )

• en el cual, el atributo PROVEEDORES toma como valor

el conjunto de proveedores de cada pieza.

Page 9: 05. normalización

1ra FORMA NORMAL ( Codd, 1970)

Page 10: 05. normalización

1ra FORMA NORMAL ( Codd, 1970)

• Un esquema de relación, alguno de cuyos

atributos toma como valores conjuntos de

valores más elementales , se dice que está “no

normalizado”.normalizado”.

• En caso contrario, es decir, si el dominio asociado

a cada atributo contiene únicamente valores

atómicos ( simples o compuestos ), entonces se

dice que el esquema está en primera forma

normal ( 1 FN ), o simplemente normalizado.

Page 11: 05. normalización

1ra FORMA NORMAL ( Codd, 1970)

• Definición: está en 1FN si

– Todo valor en es atómico

• no contiene grupos de repetición

• Consideraciones• Consideraciones

– La 1FN no permite

• Atributos multivalorados

• Atributos compuestos

• Combinaciones de estos

Page 12: 05. normalización

Métodos para corregir el problema

(1FN)

• Método 1

– Generar una nueva relación conteniendo el grupo

de repetición y la llave primaria de la relación

originaloriginal

– Determinar una llave primaria de la nueva relación

– Abordaje más genérico y no causa redundancia

Page 13: 05. normalización

Métodos para corregir el problema

(1FN)

• Método 2

– Eliminar el grupo de repetición

– Expandir la llave primaria

– Abordaje que causa redundancia

Page 14: 05. normalización

Métodos para corregir el problema

(1FN)

• Método 3

– Sustituir el grupo de repetición por un numero

máximo de valores establecidos para el grupo

– Abordaje menos genérica y que puede introducir

muchos valores nulos (null)

Page 15: 05. normalización

Métodos para corregir el problema

(1FN)

• Ejemplo

– Cliente(nro-cli, nombre, {dir_entrega})

Nro-cli Nombre Dir_entrega

124 Juan Pérez Calle 10, 1024124 Juan Pérez Calle 10, 1024

Calle 24, 1356

311 José Nieves Calle 46, 1344

Calle 98, 4456

Page 16: 05. normalización

Métodos para corregir el problema

(1FN)

• Solución al problema

– Método 1

• Cliente_nombre(nro-cli, nombre)

• Cliente_entrega(nro-cli, calle, numero)• Cliente_entrega(nro-cli, calle, numero)

– Método 2

• Cliente(nro-cli, nombre, calle, numero)

– Método 3

• Cliente(nro-cli, nombre, calle1, numero1, calle2,

numero2)

Page 17: 05. normalización

Descomposición de Esquemas

• Retomando el caso del esquema PIEZAS

Page 18: 05. normalización

Descomposición de Esquemas

• Las anomalías existentes en el esquema

PIEZAS se deben, básicamente, al hecho de

haber utilizado un único esquema de relación

para representar dos “hechos semánticos” para representar dos “hechos semánticos”

distintos, a saber:

– La relación entre proveedores y piezas

suministradas por lo mismos, y

– El hecho de que exista una cierta cantidad de cada

pieza en almacén.

Page 19: 05. normalización

Descomposición de Esquemas

• Podríamos pensar en dividir el esquema de

relación en dos:

Page 20: 05. normalización

Descomposición de Esquemas

Page 21: 05. normalización

Descomposición de Esquemas

• Podemos observar que:

– Se han eliminado la redundancia y las anomalías

de manejo existentes en el esquema original.

– En la segunda base de datos hemos separado en – En la segunda base de datos hemos separado en

esquemas de relación distintos los diferentes

hechos semánticos a representar.

– Podemos obtener la relación original mediante la

unión (join) natural de las dos proyecciones del

segundo esquema.

Page 22: 05. normalización

Descomposición de Esquemas

• Este último punto es muy importante. Cuando ocurre

esto, es decir, cuando un esquema de relación puede

descomponerse en proyecciones , a partir de las

cuales es posible recuperar el esquema original por

medio de la unión natural, se dice que el esquema es medio de la unión natural, se dice que el esquema es

descomponible , o que existe una descomposición

sin pérdidas de dicho esquema.

• El concepto de descomposición sin pérdidas es

fundamental en la teoría de diseño de bases de

datos relacionales.

Page 23: 05. normalización

Dependencias Funcionales (DF)

• Es una restricción entre dos subconjuntos de

atributos A y B de , siendo la notación A→B

• Especifica una restricción de las posibles tuplas R( ):

– Si ti[A] = tj [A] entonces ti [B] = tj [B] para cualquier i,j – i j i j

• En este caso se dice que A determina funcionalmente

a B (o alternativamente, B depende funcionalmente

de A)

• Ejemplo: Pieza → Cantidad

Page 24: 05. normalización

Notación Diagramática para DF

Nro-cliente Nombre Dirección

Nro-pedido Nro-pieza Cantidad_comprada Precio_contadoNro-pedido Nro-pieza Cantidad_comprada Precio_contado

Nro-cliente Nombre Dirección Cod_vend Nombre_vend

Page 25: 05. normalización

Dependencia Funcional

• Control de Consistencia

– Es necesario conocer todas las dependencias

funcionales – información semántica provistas por

el diseñadorel diseñador

– Algunas dependencias funcionales (DFs) pueden

ser inferidas a partir de DFs existentes => reglas de

inferencia

Page 26: 05. normalización

Dependencia Funcional

• Reglas de inferencia de DFs

– Reflexiva: si (DF Trivial)

– Aumentativa: Si

– Descomposición: Si– Descomposición: Si

– Aditiva: si

– Transitiva: si

– Pseudo-transitiva: si

– Observación: AB representa {A,B}

Page 27: 05. normalización

Definiciones

• Dados los conjuntos de atributos X e Y, y un

atributo A Є X:

– X → Y, es una dependencia funcional parcial si

– X → Y, es una dependencia funcional total si

– X → Y, es una dependencia funcional trivial si

Page 28: 05. normalización

Definiciones

• Dados los conjuntos de atributos X e Y, y un

atributo A Є X:

– X → Y, es una dependencia funcional transitiva si

existe X → Z y Z → Y, y Z no es parte de la llave existe X → Z y Z → Y, y Z no es parte de la llave

primaria.

– Atributo principal, primario o primo.- Atributo

que forma parte de alguna clave candidata en

Page 29: 05. normalización

2da Forma Normal (2FN)

• Definición.- Un esquema de relación está

en 2FN si todo atributo no primario A en

tiene dependencia funcional total de la clave

primaria de primaria de

– 1FN

– X → A es una dependencia funcional total si

(X – {B}) no determina funcionalmente A para

cualquier atributo B Є X

Page 30: 05. normalización

2da Forma Normal (2FN)

• “Prueba para 2FN”: verificar si los atributos del

lado izquierdo de las DFs forman parte de la clave

primaria.Ejemplo

• Pedido(nro-pedido, fecha, nro-pieza, descripción, • Pedido(nro-pedido, fecha, nro-pieza, descripción,

cantidad-comprada, precio-contado)

– nro-pedido → fecha

– nro-pieza → descripción

– {nro-pedido,nro-pieza} → {cantidad-comprada,

precio-contado}

Page 31: 05. normalización

2da Forma Normal (2FN)

• Para corregir el problema:

– Para cada subconjunto del conjunto de atributos que constituye una clave primaria, generar una relación con ese subconjunto como su clave primariaprimaria

– Incluir los atributos de la relación original en la relación correspondiente a la clave primaria apropiada

• Colocar cada atributo junto con una colección mínima de la cual depende, atribuyendo un nombre a cada relación.

Page 32: 05. normalización

2da Forma Normal (2FN)

• Tomando el ejemplo anterior

– Pedido(nro-pedido, fecha, nro-pieza, descripción,

cantidad-comprada, precio-contado)

• Pedido(nro-pedido, fecha)• Pedido(nro-pedido, fecha)

• Pieza(nro-pieza, descripción)

• Pedido_pieza(nro-pedido, nro-pieza, cantidad-

comprada, precio-contado)

Page 33: 05. normalización

2da Forma Normal (2FN)

• La 2FN evita:

– Inconsistencias y anomalías causadas por

redundancia de información

– Pérdida de información en operaciones de – Pérdida de información en operaciones de

eliminación y modificación en la relación

Page 34: 05. normalización

3ra Forma Normal (3FN)

• Definición. está en 3FN si

– Está en 2FN

– Ningún atributo no primario de fuera

transitivamente dependiente de la clave primariatransitivamente dependiente de la clave primaria

• Dependencia Transitiva

– Dependencia transitiva X→Y en sucede si:

• X→Z y Z→Y , y

• Z no es clave candidata ni subconjunto de cualquier

clave de

Page 35: 05. normalización

3ra Forma Normal (3FN)

• En otras palabras, todos los atributos no

primarios deben poseer dependencia total, no

transitiva, de la clave primaria

• Si X→Y es no transitiva, entonces no puede • Si X→Y es no transitiva, entonces no puede

haber el conjunto de DFs: X→Z y Z→Y

• Ejemplo:

– Cliente(nro-cliente, nombre-cliente, direcc-cliente,

nro-vendedor, nombre-vendedor)

• Nro-vendedor → nombre-vendedor

Page 36: 05. normalización

3ra Forma Normal (3FN)

• Corrigiendo el problema

– Para cada determinante que no es una clave

candidata, remover de la relación los atributos

que dependen de ese determinanteque dependen de ese determinante

– Crear una nueva relación conteniendo todos los

atributos de la relación original que dependen de

ese determinante

– Volver al determinante, clave primaria de la nueva

relación

Page 37: 05. normalización

3ra Forma Normal (3FN)

• Corrigiendo nuestro ejemplo

– Cliente(nro-cliente, nombre-cliente, direcc-cliente,

nro-vendedor, nombre-vendedor)

• Cliente(nro-cliente, nombre-cliente, direcc-cliente , nro-vendedor)

• Vendedor(nro-vendedor, nombre-vendedor)

Clave Foránea

Page 38: 05. normalización

3ra Forma Normal (3FN)

• Así como la 2FN, la 3FN evita:

– Inconsistencias y anomalías causadas por

redundancia de información

– Pérdida de información en operaciones de – Pérdida de información en operaciones de

eliminación y modificación en la relación

Page 39: 05. normalización

3ra Forma Normal (3FN)

• Así como la 2FN, la 3FN evita:

– Inconsistencias y anomalías causadas por

redundancia de información

– Pérdida de información en operaciones de – Pérdida de información en operaciones de

eliminación y modificación en la relación

Page 40: 05. normalización

Normalización

• Como hemos visto, la normalización de

relaciones:

– Está basada en DFs

– Garantiza consistencia en la construcción del – Garantiza consistencia en la construcción del

sistema

• Reducción de anomalías

• Reducción de redundancias

Page 41: 05. normalización

Normalización

• Formas Normales

– 1FN: el dominio de los atributos es atómico

– FNs basadas en DFs:

• Basadas en la clave primaria: 2FN, 3FN

• Basadas en claves candidatas: FN de Boyce-Codd (FNBC o en • Basadas en claves candidatas: FN de Boyce-Codd (FNBC o en inglés BCNF)

– FN basada en dependencias multivaloradas

• 4FN

• 5FN: generaliza dependencias multivaloradas, también denominada forma normal de reunión por proyección (FNRP)

Page 42: 05. normalización

Normalización

¿Preguntas?

Ing. Gustavo Delgado Ugarte