Saltar al contenido principal
Bases de datos

Normalización de bases de datos: 1FN, 2FN y 3FN con ejemplos

Las tres primeras formas normales explicadas con una misma tabla de prescripciones, antes y después de normalizar. Es contenido del tema de bases de datos relacionales de la categoría TI.

La normalización es el proceso de organizar las tablas de una base de datos relacional para eliminar la redundancia y las anomalías de inserción, actualización y borrado. La 1FN exige valores atómicos, la 2FN que cada atributo dependa de la clave completa y la 3FN que no haya dependencias transitivas entre atributos no clave.

Última actualización: . Fuente: SERGAS / Xunta de Galicia / normativa oficial vigente.

Qué es la normalización y para qué sirve

La normalización organiza las tablas de una base de datos relacional para que cada dato se guarde una sola vez. Con ello se evitan la redundancia y tres tipos de anomalías: de inserción (no poder registrar un dato sin otro), de actualización (cambiar un dato en varias filas) y de borrado (perder información al eliminar una fila). Se aplica de forma progresiva: una tabla en 3FN cumple también la 2FN y la 1FN.

En la oposición de Técnico/a Especialista en Sistemas y TI del SERGAS forma parte del tema de bases de datos relacionales, junto al modelo entidad-relación, los cuatro grupos de sentencias SQL y las propiedades ACID.

Las tres formas normales de un vistazo

FormaCondiciónQué eliminaCómo se corrige
1FNTodos los atributos son atómicos; no hay grupos repetitivos ni valores múltiples en una celdaVarios valores en una celdaUna fila por valor o una tabla aparte
2FNEstá en 1FN y todo atributo no clave depende de la clave primaria completaDependencias parciales de la claveSeparar en tablas según de qué parte de la clave dependen
3FNEstá en 2FN y ningún atributo no clave depende de otro atributo no claveDependencias transitivasMover el atributo dependiente a su propia tabla

Ejemplo: de una tabla de prescripciones a un diseño en 3FN

Los datos de abajo son ficticios y siguen los casos que usa el temario, con el NHC (número de historia clínica) como identificador del paciente.

FormaTabla de partidaProblemaResultado
1FNPrescripciones(NHC, Medicamentos), con la celda "Paracetamol, Ibuprofeno, Omeprazol"Varios valores en una celdaUna fila por medicamento: (1001, Paracetamol), (1001, Ibuprofeno), (1001, Omeprazol)
2FN(NHC, CodMedicamento, NombreMedicamento, NombrePaciente), con clave compuesta (NHC, CodMedicamento)NombrePaciente depende solo de NHC y NombreMedicamento solo de CodMedicamentoPacientes(NHC, NombrePaciente), Medicamentos(CodMedicamento, NombreMedicamento) y Prescripciones(NHC, CodMedicamento)
3FN(NHC, CodEspecialidad, NombreEspecialidad)NombreEspecialidad depende de CodEspecialidad, no de NHCPacientes(NHC, CodEspecialidad) y Especialidades(CodEspecialidad, NombreEspecialidad)

La ventaja se ve en la última fila. Si el nombre de una especialidad aparece repetido en cada paciente, cambiarlo obliga a modificar muchas filas (anomalía de actualización), no se puede dar de alta una especialidad sin ningún paciente (inserción) y borrar al último paciente de una especialidad hace desaparecer su nombre (borrado). Con una tabla Especialidades el dato vive en un único sitio.

Error frecuente: la 2FN solo es relevante cuando la clave primaria es compuesta. Una tabla con clave de una sola columna y valores atómicos no puede tener dependencias parciales.

BCNF y desnormalización

La forma normal de Boyce-Codd (BCNF) es una versión más estricta de la 3FN: todo determinante debe ser una clave candidata. En la práctica, la mayoría de las tablas en 3FN ya cumplen BCNF; solo hay diferencia cuando existen varias claves candidatas que se solapan.

La desnormalización consiste en volver a introducir redundancia de forma deliberada para acelerar consultas. Puede ser aceptable en algunos casos, pero con una justificación técnica.

Cómo se pregunta en el examen

Las fechas del examen no se dan aquí: consulta el calendario de la OPE SERGAS 2026.

❓ Preguntas frecuentes (FAQ)

¿Qué es la normalización en bases de datos?

Es el proceso de organizar las tablas de una base de datos relacional para eliminar la redundancia y las anomalías de inserción, actualización y borrado. Se aplica de forma progresiva mediante las formas normales: 1FN, 2FN, 3FN y, en casos más estrictos, la forma normal de Boyce-Codd (BCNF).

¿Qué diferencia hay entre 1FN, 2FN y 3FN?

La 1FN exige valores atómicos y sin grupos repetitivos. La 2FN exige estar en 1FN y que todo atributo no clave dependa de la clave primaria completa. La 3FN exige estar en 2FN y que ningún atributo no clave dependa de otro atributo no clave.

¿Cuándo es relevante la 2FN?

Solo cuando la clave primaria es compuesta. La 2FN detecta atributos que dependen de una parte de la clave, algo que no puede ocurrir si la clave está formada por una sola columna.

¿Qué es una dependencia transitiva?

Es la que se da cuando un atributo no clave depende de otro atributo no clave y no directamente de la clave. Por ejemplo, el nombre de una especialidad depende del código de la especialidad, y este a su vez del paciente. Se corrige creando una tabla propia para la especialidad.

¿Es siempre obligatorio normalizar hasta 3FN?

No. Desnormalizar para mejorar el rendimiento de las consultas puede ser aceptable en algunos casos, siempre con una justificación técnica. Lo habitual es diseñar en 3FN y desnormalizar solo cuando se mida un problema concreto.

📚 Sigue aprendiendo

🎯 ¿Preparas oposiciones del SERGAS?

Más de 13.000 preguntas tipo test con explicación, simulacros con penalización −0,25 y calculadora de baremo. 100% gratis.

Crear cuenta gratis →