Ejemplos de normalizacion asta 3fn

Solo disponible en BuenasTareas
  • Páginas : 9 (2006 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de marzo de 2011
Leer documento completo
Vista previa del texto
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 emailspuede contener más de un valor, por lo que viola 1FN.
En general, tenemos una relación R con claveprimaria 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 quetení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 esquemapara 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:
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 atributoM', que es la variante mono-valuada del atributo M.
La nueva relación N tiene comoclave (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 |
222 | José Sánchez | Administrativo | 1500 |
333 | Ana Díaz | Administrativo | 1500 |
TABLE 3 |
Y además tendríamos una nueva tabla EMAILS con clave primaria (nss, email):
nss | email |
111 | juanp@ecn.es |111 | jefe2@ecn.es |
222 | jsanchez@ecn.es |
333 | adiaz@ecn.es |
333 | ana32@gmail.com |
TABLE 4 |
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 laclave 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 queel 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, email
puesto->salario
Como la clave es (nss, email), las dependencias de nombre, salario y email son incompletas, por lo que la relación no está en 2FN.
En general, tendremos...
tracking img