domingo, 4 de septiembre de 2011

Segunda Forma Normal (2FN)

La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que describe a aquellos datos que no dependen de la llave primaria de la tabla para identificarlos.

En conclusión, una tabla que está en la primera forma normal (1FN) debe satisfacer criterios adicionales para calificar para la segunda forma normal. Específicamente: una tabla 1FN está en 2FN sí y solo sí, dada una clave primaria y cualquier atributo que no sea un constituyente de la clave primaria, el atributo no clave depende de toda la clave primaria en vez de solo una parte de ella, a esto se le llama Dependencia Funcional Completa (DFC).

Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la mayoría de los problemas de lógica. Podemos insertar un registro sin un exceso de datos en la mayoría de las tablas.

A continuación, se presentarán cuatro ejemplos para entender mejor esta forma normal.




EJEMPLO 1:




En la tabla presentada se puede observar una PK (clave principal) conformada por (C_Alumno, C_Curso). Podemos darnos cuenta que hay atributos que no satisfacen la 2FN (Dependencia Funcional Completa). Por ejemplo, los atributos (N_Alumno, T_Apellido_Al) dependen de una parte de la clave primaria, C_Alumno; mas no dependen de C_Curso. Por otro lado, la nota (Q_nota1, Q_nota2) depende del alumno y del curso (C_Alumno, C_Curso), esto se encuentra en DFC. Luego de haber analizado la segunda forma normal, las tablas quedarían de la siguiente manera.










EJEMPLO 2:




En la tabla se puede apreciar que la PK esta compuesta por (C_Carro, C_Modelo). Analizando la 2FN se puede decir que hay datos que no tienen dependencia funcional completa. Por ejemplo, los atributos (T_Placa, T_Color_Carro) dependen solo del código del carro (C_Carro) mas nos del código del modelo (C_Modelo). Mientras que $_Precio sí depende de la PK (C_Carro, C_Modelo). Luego de resolver la 2FN quedarían las siguientes tablas:









EJERCICIO 3:




En la tabla mostrada se tiene la PK conformada por (C_Cliente, C_Artículo). Podemos observar que hay atributos que no estan en DFC con la PK. Los atributos (N_Cliente, T_Apellidos) solo dependen del C_Cliente, mas no de C_Artículo. Del mismo modo, T_Descripcion depende del código del artículo para variar. Luego de utilizar la 2FN, las tablas quedarían de la siguiente manera:







EJERCICIO 4:En la tabla mostrada tenemos la PK conformada por (C_Boleta, C_Ruc). Nuevamente, analizando con las reglas de la 2FN podemos decir que el atributo D_Emisión depende solo del C_Boleta, mas no del C_Ruc. Asimismo, (N_Empresa, T_Dirección) dependen del C_Ruc y no de C_Boleta. Por lo tanto, resolviendo la 2FN las tablas quedarían de la siguiente manera:





FALLAS DE LA 2FN:



La 2FN sufre de "redundancia de datos", esto se debe a que, por ejemplo, se pueden ingresar los datos en tuplas de la tabla cambiando solo un atributo en común en cada una de ellas. Esta anomalí se resuelve con la 3FN.

No hay comentarios: