Normalización de Bases de Datos: 1FN, 2FN y 3FN Explicadas con Ejemplos

Qué es la normalización de bases de datos y cómo aplicar la primera, segunda y tercera forma normal paso a paso, con ejemplos claros y sencillos.

Compartir en Linkedin Compartir en WhatsApp

Tiempo estimado de lectura: 8 minutos

Imagen del artículo Normalización de Bases de Datos: 1FN, 2FN y 3FN Explicadas con Ejemplos

Casi todo el mundo ha visto alguna vez una hoja de cálculo que empezó siendo ordenada y terminó siendo un caos: una columna con tres teléfonos separados por comas, el nombre del cliente escrito de cuatro maneras distintas, y una fila que ya nadie se atreve a borrar porque no está claro qué más se llevaría por delante. La normalización de bases de datos es, en esencia, el conjunto de reglas que evita exactamente ese desastre.

Suena académica, y su nomenclatura no ayuda, pero la idea de fondo es muy práctica: cada dato debe estar guardado en un solo lugar, y ese lugar debe ser el correcto.

Qué problemas resuelve la normalización

Cuando una tabla está mal diseñada aparecen tres tipos clásicos de problemas, conocidos como anomalías:

  • Anomalía de inserción: no puedes registrar un dato porque te falta otro que no tiene relación real con él. Por ejemplo, no puedes dar de alta un curso nuevo porque todavía no tiene alumnos inscritos.
  • Anomalía de actualización: un mismo dato está repetido en muchas filas y, al cambiarlo, se te escapa alguna. El resultado son versiones contradictorias del mismo hecho.
  • Anomalía de eliminación: al borrar un registro pierdes información que nada tenía que ver. Se va el último alumno de un curso y desaparece también el curso.

Las formas normales son pasos sucesivos que van eliminando estas anomalías. Cada una asume que ya cumples la anterior.

Primera forma normal (1FN): un valor por celda

Una tabla está en primera forma normal cuando cada celda contiene un único valor atómico, no hay grupos repetidos de columnas y cada fila se identifica de forma única.

Imagina esta tabla de alumnos:

id_alumnonombretelefonoscurso_1curso_2
1Ana López555-1234, 555-9876ExcelContabilidad
2Luis Pérez555-4321Excel

Hay dos violaciones evidentes. La columna telefonos guarda varios valores en una sola celda, lo que hace imposible buscar un teléfono concreto de forma fiable. Y las columnas curso_1 y curso_2 forman un grupo repetido: si alguien se inscribe en un tercer curso, habría que modificar la estructura de la tabla, algo que jamás debería ser necesario para añadir datos.

La solución es separar: una tabla de alumnos, una tabla de teléfonos y una tabla de inscripciones. Cada valor ocupa su propia fila.

Segunda forma normal (2FN): dependencia de la clave completa

La segunda forma normal solo tiene sentido cuando la clave primaria está formada por más de una columna. La regla dice que todo atributo no clave debe depender de la clave completa, y no solo de una parte de ella.

Veamos una tabla de inscripciones cuya clave es la combinación de id_alumno e id_curso:

id_alumnoid_cursonotanombre_cursoduracion_horas
1108.5Excel40
2109.0Excel40
1117.0Contabilidad60

La nota sí depende de la clave completa: es la nota de ese alumno en ese curso. Pero el nombre del curso y su duración dependen únicamente de id_curso. Por eso se repiten en cada fila, y ahí nace la anomalía de actualización: si el curso pasa a durar 45 horas, hay que cambiar todas las filas.

La corrección consiste en mover nombre_curso y duracion_horas a una tabla cursos, dejando en inscripciones solo la clave y la nota.

Tercera forma normal (3FN): sin dependencias transitivas

La tercera forma normal exige que ningún atributo no clave dependa de otro atributo no clave. A esto se le llama dependencia transitiva.

id_alumnonombreid_ciudadnombre_ciudadpais
1Ana López50BogotáColombia
2Luis Pérez50BogotáColombia

Aquí nombre_ciudad y pais no dependen del alumno: dependen de id_ciudad, que a su vez depende del alumno. Es una cadena, y por eso se llama transitiva. Si mañana una ciudad cambia de nombre, habría que actualizar cada alumno que viva en ella.

La solución es crear una tabla ciudades y dejar en alumnos solo la clave foránea id_ciudad.

Resumen de las tres reglas

Forma normalRegla en una fraseProblema que elimina
1FNUn solo valor por celda, sin grupos repetidosDatos multivaluados y estructura rígida
2FNTodo atributo depende de la clave completaRedundancia por dependencia parcial
3FNNingún atributo depende de otro atributo no claveRedundancia por dependencia transitiva

Existe una regla mnemotécnica muy citada en el mundo de las bases de datos: cada atributo debe depender de la clave, de toda la clave, y de nada más que la clave.

¿Hasta dónde normalizar?

Existen formas normales superiores, como la forma normal de Boyce-Codd, la cuarta y la quinta. En la práctica profesional, llegar a 3FN cubre la inmensa mayoría de los casos y produce diseños sólidos.

También conviene saber que normalizar tiene un costo: cuantas más tablas, más uniones (JOIN) hacen falta para reconstruir la información completa, y eso puede afectar el rendimiento en consultas muy exigentes. Por eso en sistemas analíticos y de reportes a veces se hace lo contrario de forma deliberada, una práctica llamada desnormalización.

La diferencia clave es la intención. Desnormalizar es una decisión consciente que se toma después de entender las reglas y medir un problema concreto de rendimiento. No es lo mismo que no haber normalizado nunca.

Cómo aplicarlo en la práctica

  1. Lista todos los datos que el sistema necesita guardar, sin pensar todavía en tablas.
  2. Agrupa los datos por la entidad del mundo real a la que pertenecen: cliente, producto, pedido, curso.
  3. Define una clave primaria clara para cada entidad.
  4. Pregunta de cada campo: ¿de qué depende realmente este dato? Si la respuesta no es la clave de esa tabla, probablemente pertenece a otra.
  5. Conecta las tablas mediante claves foráneas y verifica que puedes reconstruir toda la información original.

Para seguir aprendiendo

La normalización es una de esas habilidades que se entienden de verdad al aplicarlas. Tomar una hoja de cálculo real y convertirla en un modelo relacional bien estructurado enseña más que cualquier definición memorizada.

Si quieres profundizar en modelado de datos, SQL, claves primarias y foráneas o diseño de esquemas, en Cursa encontrarás cursos gratuitos de bases de datos que cubren estos temas paso a paso, tanto para quien empieza como para quien quiere ordenar conocimientos adquiridos sobre la marcha.

Qué Es un Motor de Videojuegos y Cómo Funciona el Bucle de Juego

Descubre qué hace un motor de videojuegos, cómo funciona el bucle de juego y qué papel cumplen el renderizado, la física y el delta time.

Claves Primarias y Foráneas: Cómo se Relacionan las Tablas en una Base de Datos

Aprende qué son las claves primarias y foráneas, cómo conectan tablas, qué tipos de relaciones existen y por qué protegen la integridad de tus datos.

Qué Es el DNS: Cómo tu Navegador Encuentra un Sitio Web en Milisegundos

Entiende cómo funciona el sistema de nombres de dominio, qué son los registros A, CNAME y MX, y por qué a veces los cambios tardan.

Cifrado de Extremo a Extremo: Cómo Funciona y Qué Protege Realmente

Explicación sencilla del cifrado de extremo a extremo: claves pública y privada, qué protege, qué no protege y por qué importa.

Memoria RAM y almacenamiento: por qué no son lo mismo

Diferencias entre RAM y disco, qué hace cada uno, qué pasa cuando falta memoria y cuál conviene ampliar primero.

Qué es el DOM y Cómo lo Usa JavaScript para Cambiar una Página Web

Descubre qué es el DOM, cómo el navegador convierte el HTML en un árbol de nodos y cómo JavaScript lo modifica en tiempo real.

La Regla 3-2-1 de las Copias de Seguridad: Cómo Proteger tus Archivos de Verdad

Descubre en qué consiste la regla 3-2-1 de respaldo, los tipos de copia que existen y los errores más comunes al proteger la información.

Diagramas de flujo y pseudocódigo: cómo planificar un programa antes de escribirlo

Aprende a usar diagramas de flujo y pseudocódigo para diseñar algoritmos claros antes de escribir una sola línea de código.