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: 1 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.