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.
|
||||||||||||||||||||||||||||||||||||||||||
1FN: buscamos
atributos no atómicos: el atributo
emails puede contener más de un valor, por lo que viola 1FN.
|
Solución 1: Duplicar
registros con valores repes, añadiendo a clave valores no repesà Crearíamos una nueva tabla, con una nueva
clave en la que meteríamos el atributo email, ahora no repetido
|
|
||||||||||||||||||||||||||||||||||||||||
Solución 2: Separar el atrib emails a otra tabla,“arrastrando” la clave (nss) a otra tabla
NOTA: En esta otra
tabla, la clave será (nss,email)
|
|
|
||||||||||||||||||||||||||||||||||||||||
2FN: Si
revisamos las dependencias de los
atrib no clave de parte de la clave en la tabla de la 1ª de las
soluciones del ejemplo anterior:
nssànombre, puesto, salario
puestoàsalario
Como la clave es (nss,
email), las dependencias de nombre, salario y email son incompletas (dependen
del nss, no del email..nss es “subclave”), por lo que la relación no está en
2FN
|
Solución: crearíamos una nueva relación con los atributos
que tienen dependencia incompleta, a la que “arrastraríamos” la “subclave” de la que
dependen (que eliminaríamos de la tabla “original”); nos quedarían 2 tablas à Llegamos a la 2ª de las soluciones del
ejemplo anterior
|
Tabla con los atributos
con dependencia incompleta, y la clave de la que dependen
|
Tabla “original”, sin
los atributos con dependencia incompleta
|
|||||||||||||||||||||||||||||||||||||||
3FN:
buscamos algún tipo de dep entre atrib
no clave (en particular, si hay dep. transitivas de la clave); en la 1ª
tabla de la solución anterior se observa:
nssàpuesto
puestoàsalario
..es decir, el salario
depende de puesto, y puesto no está en la clave
|
Solución: Pasar a nueva tabla los atributos no clave que
no dependen solo de la clave, y poner como clave de esa tabla al atrib del que dependen
|
Tabla sin los atributos
que no dependían solo de clave
(NOTA:
El atributo no clave del que dependían se queda como clave ajena o foránea)
|
Tabla con los atributos
que no dependían solo de clave
(NOTA: La clave es el atributo no clave del que
dependían, en este caso, puesto)
|
Tabla que ya estaba en
3FN
|
Barra de menus (paginas)
domingo, 13 de julio de 2014
EJEMPLO NORMALIZACION
Suscribirse a:
Enviar comentarios (Atom)
LA MEJOR EXPLICACIÓN QUE HE VISTO DE ESTE EJEMPLO.
ResponderEliminar