La Segunda Forma Normal 2FN consiste en que todos los datos deben depender de la Clave Primaria (PK) presente, es decir deben tener Dependencia Funcional Completa DFC.
Es hacer que cada atributo dato dependa en forma funcional de la clave primaria, lo que quiere decir es que si hablamos de función, la clave primaria representaría el "X" y los atributos dato el "Y".
Ejemplo 1:
En este cuadro, los datos ya están en 1FN y podemos observar que la Clave Primaria correspondiente vendría a ser C_Alumno y que los 2 datos restantes dependen de la PK.
Función -> (C_Alumno) ----> (N_Alumno, #_Promedio_Ponderado).
Ejemplo 2:
En este ejemplo tenemos que la PK sería el Código del libro (C_Libro), con 2 atributos dependientes.
(C_Libro) ---> (N_Título, N_Género).
Ejemplo 3:
Aquí podemos observar que la PK vendría a ser el Código del Doctor, con 4 atributos que dependen de esta.
(C_Doctor) ---> (N_Doctor, N_Especialidad, N_Paciente_1, N_Paciente_2).
Ejemplo 4:
Para finalizar, en este simple ejemplo la PK sería el Código del Alumno, con un solo atributo dependiente.
(C_Alumno) ---> (N_Carrera).
Fallas que presenta la 2FN
En este ejemplo observamos que la PK vendría a ser el Código del empleado; sin embargo, notamos que el atributo sueldo no depende del C_Empleado, sino del Área de trabajo. Para resolver este problema se hace lo siguiente:
Resultado Inicial: (C_Empleado) ---> (N_Empleado, T_Area_Trabajo, $_Sueldo)
Corregido: (C_Empleado) ---> (N_Empleado, T_Area_Trabajo).
Se crea una nueva relación para almacenar el dato restante: (T_Area_Trabajo) ---> ($_Sueldo).