You are on page 1of 7

Normalización - Primera Parte

Notas de clase 1

Introducción

Para construir un modelo relacional de datos, con el cual a su vez se elaborará una base de datos,
es importante tener un modelo entidad relación que no tenga redundancias ni pérdida de
información, y que tampoco presente anomalías al realizar la gestión de los datos. Estas
características se garantizan mediante la normalización.

Para ilustrar las posibles anomalías se mostraran algunos datos de una entidad llamada
“ProveedorProducto”:

Nit Nom bre Ciudad Producto Cantidad

1234 Pato Donald Patolandia Cam iseta 100

1234 Pato Donald Patolandia Gorra 200

4567 Mickey Mouse Disneylandia Cam iseta 100

4567 Mickey Mouse Disneylandia Pantalones 250

3456 Tribilín Gansolandia Som breros 50

Se ha definido que el identificador es: {nit,producto}.

• Anomalía de inserción: No es posible insertar un proveedor del cual no se tenga un


producto (ni un producto para el que no se haya definido un proveedor).
• Anomalía de actualización: Si un proveedor cambia de ciudad se deben modificar en todas
las partes donde aparezca, y es posible que alguna no se actualice, quedando los datos
inconsistentes.
• Anomalía de borrado: Si se desea borrar la información de un proveedor, por ejemplo
Tribilín, se puede perder la información del producto que tiene asociado.

Definición

La normalización busca, principalmente, eliminar la redundancia de información y las anomalías


de inserción, borrado y actualización. Sin embargo, durante el proceso de análisis la normalización
también puede servir para separar conceptos que han quedado mezclados, es decir, ayuda a
identificar adecuadamente todas las entidades que satisfacen las restricciones dadas para el
sistema.

El proceso de normalización se genera alrededor del concepto de formas normales. Una entidad
está en una forma normal en particular si satisface un conjunto de condiciones preestablecidas.

Estas notas se basan principalm ente en [Date] y [Londoño], de donde se han tom ado algunos
apartes textuales. Se om iten las com illas dada esta aclaración

Página 1 de 5
Existen diferentes formas normales, que se basan en diferentes tipos de dependencias, así:
• Primera, Segunda y Tercera forma normal (1FN, 2FN, 3FN): se basan en las dependencias
funcionales.
• Forma normal de Boyce-Codd (FNBC): se basa en dependencias funcionales
• Cuarta forma normal (4FN): se basa en dependencias multivaluadas
• Quinta forma normal (5FN): se basa en dependencias de join.

Cuando se realiza un proceso de normalización se pasa de un modelo entidad-relación a otro


modelo diferente (con menos anomalías). Sin embargo los dos modelos deben ser equivalentes,
es decir, no se puede perder información al normalizar.

Se garantiza que los dos modelos son equivalentes si se cumple:


• Hay conservación de atributos: Todos los atributos iniciales están presentes en el nuevo
modelo.
• Hay conservación de dependencias: Todas las dependencias funcionales se pueden hacer
cumplir en el nuevo modelo.
• Hay conservación de ocurrencias: Esto puede establecerse porque las relaciones entre las
entidades corresponden a dependencias funcionales válidas.

En este material se presentan la primera y segunda formas normales, basadas en dependencias


funcionales.

Primera forma normal

La primera forma normal prohíbe tener atributos multivaluados. El dominio de cada atributo debe
ser atómico, es decir sus elementos deben ser unidades indivisibles.

Por ejemplo, si se tiene una tabla llamada Cuenta, con la siguiente información:

Número Tipo Saldo CédulaTitular NombreTitular

123-456 Ahorros 500000 102030 Pato Donald


104050 Pata Daisy

789-012 Corriente 100000 50607 Rico McPato

En las columnas “CédulaTitular” y “NombreTitular” no se cumple con las restricción planteada,


pues hay dos valores para una cuenta (dos titulares).

Para que la tabla cumpla con la primera forma normal es necesario que en cada fila solo se tenga
un valor único por atributo, así:

Número Tipo Saldo CédulaTitular NombreTitular

123-456 Ahorros 500000 102030 Pato Donald

123-456 Ahorros 500000 104050 Pata Daisy

789-012 Corriente 100000 50607 Rico McPato

Página 2 de 5
En este caso se duplica información de la cuenta, pero esta redundancia se eliminará con las
siguientes formas normales.

Otra forma de hacer cumplir con la primera forma normal es crear otra entidad con los atributos
multivaluados. Específicamente para el ejemplo mostrado anteriormente el el modelo quedaría:

Segunda forma normal

Una entidad está en segunda forma normal si:


- Está en primera forma normal y
- No posee dependencias funcionales parciales respecto a ninguno de sus identificadores (claves
candidatas).

Si A es un atributo no principal (no es parte de un identificador) y existe una dependencia


Y÷ A, donde Yd X, siendo X un identificador, se dice que A depende parcialmente de X.

Para poder reconocer rápidamente las dependencias funcionales parciales se puede utilizar un
diagrama de dependencias. Por ejemplo, si se tiene una entidad, llamada ProveedorProducto, con
atributos Código, Descripción, Precio, Nit, Nombre y Teléfono; y con las siguientes dependencias
funcionales no redundantes:
Código ÷ Descripción
Nit ÷ Nombre, Teléfono
Código, Nit ÷ Precio
El identificador (clave primaria) es: Código, Nit.

El diagrama sería:

Página 3 de 5
Puede verse que sólo el precio depende totalmente del identificador, que es una combinación de
dos atributos. La descripción y el nombre dependen parcialmente del identificador, porque sólo
dependen de uno de los dos atributos.

Para solucionarlo se crean nuevas entidades con los atributos que forman parte de las
dependencias parciales, así:

Producto Proveedor

Código Nit
Descripción Nom bre
Teléfono

Como el precio no es un atributo de Producto ni de Proveedor, sino de la relación entre ellos, se


crea una nueva entidad, y el diagrama final es:

En la entidad Producto se conserva la dependencia Código ÷ Descripción, y el identificador es


Código.
En la entidad Proveedor se conserva la dependencia Nit ÷ Nombre, Teléfono; y el identificador
es Nit.
En la entidad Precios se conserva la dependencia Código, Nit ÷ Precio, y por lo tanto su
identificador es Código, Nit (de la relación con las otras entidades).

Las relaciones, como son uno-a-muchos, representan dependencias funcionales válidas. Como
un precio es de sólo un producto y un proveedor. Entonces:
Código, Nit ÷ Código y Código, Nit ÷ Nit.

Ejercicio

Construya un modelo equivalente al siguiente, en 2FN:

ProveedorArtículo
Código_p Dependencias funcionales:
Nombre Código_p ÷ Nombre, Teléfono
Teléfono Código_a ÷ Descripción_a
Código_a Código_c ÷ Descripción_c
Descripción_a Código_a, Código_c ÷ Precio
Precio
Código_c Identificador: Código_p, Código_a, Código_c
Descripción_c

Página 4 de 5
Normalización - Segunda Parte
Notas de clase 1

A continuación se presentan dos formas normales: la tercera forma normal y la forma normal
de Boyce-Codd. Estas formas normales se basan en dependencias funcionales.

Tercera forma normal

Una entidad está en tercera forma normal si:


- Está en segunda forma normal y
- No posee dependencias funcionales transitivas.

Si A es un atributo no principal y existe una dependencia no derivable Y ÷ A, donde Y no es parte


de un identificador, se dice que A depende transitivamente de Y.

En este caso también es útil tener un diagrama de dependencias. Por ejemplo, si se tiene una
entidad, llamada ProveedorProducto, con atributos Código, Descripción, Precio, Nit, Nombre y
Teléfono; y con las siguientes dependencias funcionales no redundantes:
Código ÷ Descripción, Precio
Nit ÷ Nombre, Teléfono
Nit ÷ Código
El identificador (clave primaria) es: Nit.

El diagrama sería:

Puede verse que hay dependencias funcionales transitivas, es decir, entre atributos que no hacen
parte de identificadores. Para solucionarlo se crea una nueva entidad con los atributos que están
en las dependencias transitivas, así:

Estas notas se basan principalm ente en [Date] y [Londoño], de donde se han tom ado algunos
apartes textuales. Se om iten las com illas dada esta aclaración

Página 1 de 3
Comprobamos que el nuevo modelo es equivalente porque se hay conservación de atributos,
dependencias y ocurrencias:
- En la entidad Proveedor se conserva la dependencia Nit ÷ Nombre, Teléfono (El identificador
en Nit).
- En la entidad Producto se conserva la dependencia Código ÷ Descripción, Precio (El
identificador es Código).
- En la relación se tiene la dependencia Nit ÷ Código. Como es una dependencia válida también
se garantiza la conservación de ocurrencias.

Forma normal del Boyce-Codd

Esta forma normal es una mejoría a la tercera forma normal, ya que tiene en cuenta cuando hay
varios identificadores en una entidad.

Una entidad está en forma normal de Boyce-Codd si:


- Está en primera forma normal y
- Cada uno de los implicantes de sus dependencias funcionales contiene un identificador
candidato.

Es decir, todas las dependencias en una entidad deben tener en el lado izquierdo a un identificador
candidato. Por ejemplo, si se tiene una entidad, llamada ProveedorProducto, con atributos Código,
Precio, Nit, Nombre; y con las siguientes dependencias funcionales no redundantes:
Nit, Código ÷ Precio
Nit ÷ Nombre
Nombre ÷ Nit
Hay dos identificadores: I1 = {Código, Nit}, I2 ={Código, Nombre}

En este caso se hacen dos diagramas de dependencias, uno para cada uno de los identificadores,

así:

Esta entidad está en 3FN, porque no hay dependencias parciales ni transitivas (recuerde que las
dependencias parciales o transitivas se dan con los atributos no principales).

Sin embargo esta entidad no cumple con la forma normal de Boyce-Codd, porque en dos
dependencias (Nit ÷ Nombre y Nombre ÷ Nit) el implicando, es decir, el lado izquierdo no es un
identificador. Para solucionar esto se crea una nueva entidad con los atributos que presentan la
anomalía, así:

Página 2 de 3
En este caso también se puede verificar la conservación de dependencias:
- En la entidad Proveedor se cumplen Nit ÷ Nombre y Nombre ÷ Nit, y en este caso hay dos
identificadores: I1 = {Nit}, I2 ={Nombre}
- En la entidad Producto se cumple Nit, Código ÷ Precio, y por lo tanto Producto sería una entidad
débil, que necesita de la relación para identificarse. Como la entidad Proveedor tiene dos
identificadores, entonces Producto también tiene dos identificadores: I1 = {Código, Nit},
I2 ={Código, Nombre}

La conservación de dependencias se comprueba porque la relación representa dos dependencias


funcionales válidas:
Código, Nit ÷ Nit, Nombre y Código, Nombre ÷ Nit, Nombre

Algunas aclaraciones finales:


• Un modelo debe ser equivalente en todas sus formas normales, es decir, es posible pasar
de una forma normal a otra (por ejemplo, de 2FN a 3FN, pero también de 3FN a 2FN).
• Cuando un modelo está en un determinado nivel de normalización, está automáticamente
en todos los niveles inferiores (por ejemplo, si está en FNBC está en 3FN, 2FN y 1FN),
pero lo contrario no es cierto (por ejemplo, si está en 2FN no necesariamente está en
3FN).
• La normalización es una ayuda para el diseño de las bases de datos, no es una norma
obligatoria. Generalmente permite validar los modelos que se han realizado, para saber si
tienen o no anomalías, pero en este proceso prevalece mucho el sentido común del
diseñador.

Bibliografía

• [Date] DATE, C.J. Introducción a los Sistemas de Bases de Datos, 2001


• [Londoño] LONDOÑO, Guillermo y MÚNERA, Luis Eduardo. Ingeniería de Software:
Modelamiento de datos y eventos, 1998

Página 3 de 3

You might also like