Blue Flower

La Segunda Forma Normal (2FN) es una de las reglas de normalización en bases de datos que busca eliminar redundancias y asegurar que la estructura de la base de datos sea más eficiente. Para que una base de datos esté en 2FN, debe cumplir con los siguientes dos requisitos:

  1. Estar en la Primera Forma Normal (1FN): Esto significa que la tabla no debe tener atributos multivaluados, y todos los valores de las columnas deben ser atómicos (indivisibles).

  2. Eliminar dependencias parciales: En una tabla que está en 2FN, cada columna no clave debe depender completamente de la clave primaria y no solo de una parte de ella. Esto significa que, si la clave primaria es compuesta (es decir, tiene más de una columna), ninguna columna no clave debe depender solo de una parte de la clave primaria.

Ejemplo:

Supongamos que tenemos una tabla de estudiantes y sus cursos con una clave primaria compuesta por (ID_Alumno, ID_Curso):

ID_Alumno ID_Curso Nombre_Alumno Nombre_Curso Profesor
1 101 Juan Pérez Matemáticas López
1 102 Juan Pérez Historia García
2 101 Ana López Matemáticas López

En esta tabla, la clave primaria es la combinación de ID_Alumno e ID_Curso.

Problema:

  • Nombre_Alumno depende solo de ID_Alumno (no de la combinación completa de la clave primaria).
  • Nombre_Curso depende solo de ID_Curso (no de la clave primaria).
  • Profesor depende solo de ID_Curso (no de la clave primaria).

Este es un ejemplo de dependencias parciales, lo que viola la 2FN.

Solución para cumplir la 2FN:

  1. Crear una tabla para los alumnos:

    ID_Alumno Nombre_Alumno
    1 Juan Pérez
    2 Ana López
  2. Crear una tabla para los cursos:

    ID_Curso Nombre_Curso Profesor
    101 Matemáticas López
    102 Historia García
  3. Crear una tabla de relación entre alumnos y cursos:

    ID_Alumno ID_Curso
    1 101
    1 102
    2 101

MÁS EJEMPLOS

Está la siguiente tabla en 2FN?

Estudiante_ID Nombre Curso
101 Ana Matemáticas
101 Ana Historia
102 Luis Química
102 Luis Biología
103 Marta Física
103 Marta Química
103 Marta Historia

La clave primaria parece ser la combinación de Estudiante_ID y Curso, ya que cada estudiante puede estar inscrito en varios cursos. Así, la clave primaria sería (Estudiante_ID, Curso).

Ahora, vamos a revisar las dependencias:

  • Nombre depende solo de Estudiante_ID, no de la combinación completa de la clave primaria.
    • Esto significa que Nombre depende de solo una parte de la clave primaria (Estudiante_ID), lo cual es una dependencia parcial.

Conclusión:

La tabla no está en 2FN porque Nombre depende solo de Estudiante_ID, no de la combinación completa de la clave primaria (Estudiante_ID, Curso). Para cumplir con 2FN, se debe eliminar esta dependencia parcial.

Solución:

Podemos dividir la tabla en dos tablas para cumplir con la 2FN:

  1. Tabla de estudiantes:

    Estudiante_ID Nombre
    101 Ana
    102 Luis
    103 Marta
  2. Tabla de cursos:

    Estudiante_ID Curso
    101 Matemáticas
    101 Historia
    102 Química
    102 Biología
    103 Física
    103 Química
    103 Historia

De esta manera, hemos eliminado la dependencia parcial (ya que ahora Nombre depende solo de Estudiante_ID, y no de la combinación de Estudiante_ID y Curso), y la base de datos cumple con la Segunda Forma Normal (2FN).

OTRO EJEMPLO

SOLUCIÓN

Otro ejemplo:

SOLUCIÓN

 Otro ejemplo más

SOLUCIÓN

debemos recordar que:

Paso 1: Verificar si está en Primera Forma Normal (1FN)

La tabla está en 1FN porque:

  • Todos los valores de las columnas son atómicos (no hay listas ni valores compuestos).
  • No hay valores duplicados en una columna.

Paso 2: Dividir la tabla para cumplir con 2FN

Para cumplir con la 2FN, debemos eliminar las dependencias parciales, es decir debemos crear las divisiones precisas para que cada columna no clave debe depender directamente de su clave primaria, no sólo de una parte de ella si esta es compuesta.