Las Redes
leotaz24 de Mayo de 2013
6.844 Palabras (28 Páginas)248 Visitas
El proceso de normalización de bases de datos relacionalesLa
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) relacionalEl
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ónEl
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 completoTenemos
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.Table 1
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
...
...
...
...
...
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 repetidosEn 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á n tuplas, 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):Table 2
nss
nombre
puesto
salario
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
...
...
...
...
...
Solución 2: separar el atributo que viola 1FN en una tablaEn general, esta solución pasa por:sustituir R 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)Table 3
nss
nombre
puesto
salario
111
Juan Pérez
Jefe de Área
3000
222
José Sánchez
Administrativo
1500
333
Ana Díaz
Administrativo
1500
...
...
...
...
Y además tendríamos una nueva tabla EMAILS con clave primaria (nss, email):Table 4
nss
111
juanp@ecn.es
111
jefe2@ecn.es
222
jsanchez@ecn.es
333
adiaz@ecn.es
333
ana32@gmail.com
...
...
Segunda forma normal (2FN)Un esquema está en 2FN si:Está en 1FN.Todos
sus atributos que no son de la clave principal tienen dependencia
funcional completa respecto de todas las claves existentes en el
esquema. En otras palabras, para determinar cada atributo no clave se
necesita la clave primaria completa, no vale con una subclave.La
2FN se aplica a las relaciones que tienen claves primarias compuestas
por dos o más atributos. Si una relación está en 1FN y su clave primaria
es simple (tiene un solo atributo), entonces también está en 2FN. Por
tanto, de las soluciones anteriores, la tabla EMPLEADOS'(b) está
en 1FN (y la tabla EMAILS no tiene atributos no clave), por lo que el
esquema está en 2FN. Sin embargo, tenemos que examinar las dependencias
funcionales de los atributos no clave de EMPLEADOS'(a). Las dependencias funcionales que tenemos son las siguientes:
nss->nombre, salario,
...