HDP115

Segunda Forma Normal (2NF)

La Segunda Forma Normal (2NF) es una propiedad de las relaciones en una base de datos relacional.

CE

Cristian Escalante

Última actualización: 10 de mayo de 2025

sql
programación
desarrollo

Segunda Forma Normal (2NF)

La Segunda Forma Normal (2NF) es una propiedad de las relaciones en una base de datos relacional. La regla establece: una relación está en 2NF si está en 1NF y todos los atributos no clave son completamente dependientes de la clave primaria. Esto significa que no debe haber dependencias parciales de la clave primaria.

Ejemplo de una tabla que no cumple con la 2NF:

CREATE TABLE estudiantes (
    id_estudiante INT PRIMARY KEY,
    nombre VARCHAR(50),
    curso VARCHAR(50),
    profesor VARCHAR(50) -- Dependencia parcial
);

Se tendría la siguiente tabla:

id_estudiantenombrecursoprofesor
1JuanMatemáticasJuan Pérez
2MaríaHistoriaMaría López
3PedroMatemáticasJuan Pérez
4AnaQuímicaAna García
5LauraBiologíaMaría López
6JuanBiologíaMaría López
7PedroBiologíaMaría López

En este caso, la columna profesor depende solo de curso, no de id_estudiante, lo que viola la 2NF.

Para cumplir con la 2NF, debemos dividir la tabla en dos:

-- 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,
    profesor VARCHAR(50)
);
Primera Forma Normal (1NF)
Guía sobre la Primera Forma Normal en bases de datos SQL
Tercera Forma Normal (3NF)
La Tercera Forma Normal (3NF) es una propiedad de las relaci...
Referencias
Microsoft. (6 de junio del 2024). Fundamentos de la normalización de bases de datos. https://learn.microsoft.com/es-es/office/troubleshoot/access/database-normalization-description
Samuel Shalbu. (30 de julio del 2024). Normalización en SQL (1NF - 5NF): Guía para principiantes. https://www.datacamp.com/es/tutorial/normalization-in-sql

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos de GIT

Aprende los conceptos básicos de GIT

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025