Tercera Forma Normal (3NF)
La Tercera Forma Normal (3NF) es una propiedad de las relaciones en una base de datos relacional.
Cristian Escalante
Última actualización: 10 de mayo de 2025
Tercera Forma Normal (3NF)
La Tercera Forma Normal (3NF) es una propiedad de las relaciones en una base de datos relacional. La regla establece: una relación está en 3NF si está en 2NF y no tiene dependencias transitivas. Esto significa que no debe haber atributos no clave que dependan de otros atributos no clave.
Lo siguiente se encuentra en su segunda forma normal (2NF):
-- Aquí se dividirá la tabla en dos para cumplir con la 2NF
CREATE TABLE estudiantes (
id_estudiante INT PRIMARY KEY,
nombre VARCHAR(50),
id_curso INT,
FOREIGN KEY (id_curso) REFERENCES cursos(id)
);
CREATE TABLE cursos (
id_curso INT PRIMARY KEY,
nombre_curso VARCHAR(50),
id_profesor INT,
nombre_profesor VARCHAR(50)
);
La columna nombre_profesor depende de id_profesor y id_profesor depende de id_curso. Por lo que nombre_profesor depende transitivamente de id_curso, lo que no cumple la 3NF.
La tabla cursos se veria de la siguiente manera:
| id_curso | nombre_curso | id_profesor | nombre_profesor |
|---|---|---|---|
| 1 | Matemáticas | 1 | Juan Pérez |
| 2 | Historia | 2 | María López |
| 3 | Química | 1 | Juan Pérez |
| 4 | Física | 3 | Ana García |
| 5 | Biología | 2 | María López |
Para cumplir con la 3NF, debemos dividir la tabla cursos en dos:
CREATE TABLE profesores (
id_profesor INT PRIMARY KEY,
nombre_profesor VARCHAR(50)
);
CREATE TABLE cursos (
id_curso INT PRIMARY KEY,
nombre_curso VARCHAR(50),
id_profesor INT,
FOREIGN KEY (id_profesor) REFERENCES profesores(id_profesor)
);
CREATE TABLE estudiantes (
id_estudiante INT PRIMARY KEY,
nombre VARCHAR(50),
id_curso INT,
FOREIGN KEY (id_curso) REFERENCES cursos(id)
);
De esta manera, hemos eliminado la dependencia transitiva de nombre_profesor y id_profesor en la tabla cursos, cumpliendo así con la 3NF.