ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Normalizacion


Enviado por   •  21 de Noviembre de 2013  •  1.048 Palabras (5 Páginas)  •  379 Visitas

Página 1 de 5

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

Module by: Miguel-Angel Sicilia. E-mail theauthor

Summary: Se describe un ejemplo sencillo (de una sola tabla) de aplicación de la normalización de bases de datos relacionales.

El proceso de normalización de bases de datos relacionales

La normalización de bases de datos relacionales toma un esquema relacional y le aplica un conjunto de técnicas para producir un nuevo esquema que representa la misma información pero contiene menos redundancias y evita posibles anomalías en las inserciones, actualizaciones y borrados.

Breve recordatorio del modelo (formal) relacional

El modelo relacional de bases de datos se basa en un modelo formal especificado de acuerdo a la teoría de conjuntos. Una base de datos relacional puede considerarse como un conjunto de relaciones o tablas de la forma R(A1, ..., An), donde R es el nombre de la relación, que se define por una serie de atributos Ai.

Sobre las tablas relacionales se pueden definir diferentes restricciones. La integridad de entidad es una restricción que nos indica que cada entidad representada por una tupla tiene que ser diferente de las demás en su relación, es decir, debe haber algunos atributos cuyos valores identifiquen unívocamente las tuplas. La integridad referencial indica que una clave ajena solo debe contener valores que o bien sean nulos, o bien existan en la relación referenciada por la clave ajena.

El proceso de normalización

El proceso de normalización consiste en comprobar en secuencia si el esquema original está en 1FN, 2FN y 3FN, analizando las dependencias funcionales en cada paso.

Un ejemplo completo

Tenemos una empresa pública donde los puestos de trabajo están regulados por el Estado, de modo que las condiciones salariales están determinadas por el puesto. Se ha creado el siguiente esquema relacional

EMPLEADOS(nss, nombre, puesto, salario, emails) con nss como clave primaria.

nss nombre puesto salario emails

111 Juan Pérez Jefe de Área 3000 juanp@ecn.es; jefe2@ecn.es

222 José Sánchez Administrativo 1500 jsanchez@ecn.es

333 Ana Díaz Administrativo 1500 adiaz@ecn.es; ana32@gmail.com

... ... ... ... ...

Table 1

Primera forma normal (1FN)

Una tabla está en 1FN si sus atributos contienen valores atómicos. En el ejemplo, podemos ver que el atributo emails puede contener más de un valor, por lo que viola 1FN.

En general, tenemos una relación R con clave primaria K. Si un atributo M viola la condición de 1FN, tenemos dos opciones.

Solución 1: duplicar los registros con valores repetidos

En general, esta solución pasa por sustituir R por una nueva relación modificada R', en la cual:

• El atributo M que violaba 1FN se elimina.

• Se incluye un nuevo atributo M' que solo puede contener valores simples, de modo que si R'[M'] es uno de los valores que teníamos en R[M], entonces R'[K] = R[K]. En otras palabras, para una tupla con n valores duplicados en M, en la nueva relación habrá ntuplas, que sólo varían en que cada una de ellas guarda uno de los valores que había en M.

• La clave primaria de R' es (K, M'), dado que podrá haber valores de K repetidos, para los valores multivaluados en M.

Siguiendo el ejemplo, tendríamos el siguiente esquema para la nueva tabla EMPLEADOS'(a) con clave primaria (nss, email):

nss nombre puesto salario email

111 Juan Pérez Jefe de Área 3000 juanp@ecn.es

111 Juan Pérez Jefe de Área 3000 jefe2@ecn.es

222 José Sánchez Administrativo 1500 jsanchez@ecn.es

333 Ana Díaz Administrativo 1500 adiaz@ecn.es

333 Ana Díaz Administrativo 1500 ana32@gmail.com

... ... ... ... ...

Table 2

Solución 2: separar el atributo que viola 1FN en una tabla

En general, esta solución pasa por:

sustituirR por una nueva relación modificada R' que no contiene el atributo M.

Crear una nueva relación N(K, M'), es decir, una relación con una clave ajena K referenciando R', junto al atributo M', que es la variante mono-valuada del atributo M.

La nueva relación N tiene como clave (K, M').

Siguiendo el ejemplo, tendríamos el siguiente esquema para la nueva tabla EMPLEADOS'(b)

nss nombre puesto salario

111 Juan Pérez Jefe de Área 3000

...

Descargar como (para miembros actualizados)  txt (7.6 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com