Las Redes
Enviado por leotaz • 24 de Mayo de 2013 • 6.844 Palabras (28 Páginas) • 233 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
...