domingo, 4 de septiembre de 2011

La segunda forma normal (2FN)

Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal o primaria. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal).

Por ejemplo {DNI, ID_PROYECTO} --> HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependiente dado que ni DNI --> HORAS_TRABAJO ni ID_PROYECTO --> HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} --> NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI --> NOMBRE_EMPLEADO mantiene la dependencia.

Fallas de la segunda forma normal:

La principal falla o defecto de la 2FN es causado por la dependencia transitiva (DT) de atributos no-clave, es decir, una dependencia funcional entre dos o más atributos no-clave. Para evitar o resolver estos casos, primero debemos examinar cada atributo no-clave para verificar si está en DF con otro atributo diferente de la clave principal (PK). Crear una nueva relación para almacenar el no-clave transitivamente dependiente.

Ejemplos de las fallas de la 2FN:

En este ejemplo, la clave primaria es el Cod_Trabajador y los demás son atributos determinados por la PK, pero también se observa que el Bono Familiar depende la Profesión, es decir, tiene una dependencia transitiva.

En este otro ejemplo, la clave primaria es el Cod_Profesor y los demás son atributos determinados por la PK, pero se observa que el aumento de 20 soles depende a los años de servicio de cada profesor, por lo que se presenta una dependencia transitiva.

EJEMPLOS DE LA 2FN:

Ejemplo 1: En la tabla de Habilidades de los empleados, la clave primaria o principal es el Empleado, que determina la Habilidad como el Lugar actual de trabajo, es decir, hay dependencia funcional completa (DFC).

Ejemplo 2: la tabla Guía se dividió en dos, ya que había dos claves determinantes con sus atributos determinados correspondientes, se presenta DFC.
Ejemplo 3: la tabla con información de la biblioteca se dividió en 3 partes, ya que tiene 2 claves primarias como el CodLibro y CodLector, como se muestra en la figura. Recién con esta división presenta DFC.
Ejemplo 4: La tabla de boleta se dividió en dos como se observa en la figura, ya que cuenta con dos claves primarias como son Num_bol y cod_art, así presenta DFC.

No hay comentarios:

Publicar un comentario