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_alumno | nombre | telefonos | curso_1 | curso_2 |
|---|---|---|---|---|
| 1 | Ana López | 555-1234, 555-9876 | Excel | Contabilidad |
| 2 | Luis Pérez | 555-4321 | Excel |
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_alumno | id_curso | nota | nombre_curso | duracion_horas |
|---|---|---|---|---|
| 1 | 10 | 8.5 | Excel | 40 |
| 2 | 10 | 9.0 | Excel | 40 |
| 1 | 11 | 7.0 | Contabilidad | 60 |
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_alumno | nombre | id_ciudad | nombre_ciudad | pais |
|---|---|---|---|---|
| 1 | Ana López | 50 | Bogotá | Colombia |
| 2 | Luis Pérez | 50 | Bogotá | 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 normal | Regla en una frase | Problema que elimina |
|---|---|---|
| 1FN | Un solo valor por celda, sin grupos repetidos | Datos multivaluados y estructura rígida |
| 2FN | Todo atributo depende de la clave completa | Redundancia por dependencia parcial |
| 3FN | Ningún atributo depende de otro atributo no clave | Redundancia 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
- Lista todos los datos que el sistema necesita guardar, sin pensar todavía en tablas.
- Agrupa los datos por la entidad del mundo real a la que pertenecen: cliente, producto, pedido, curso.
- Define una clave primaria clara para cada entidad.
- Pregunta de cada campo: ¿de qué depende realmente este dato? Si la respuesta no es la clave de esa tabla, probablemente pertenece a otra.
- 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.













