Inicio › Tecnología › Normalización De Bases De Datos
La normalización de bases de datos es el proceso de organizar las tablas de un modelo relacional siguiendo un conjunto de reglas formales (las formas normales, desde 1NF hasta 5NF, formalizadas originalmente por Edgar F. Codd) con el objetivo de eliminar la redundancia de datos y evitar anomalías de inserción, actualización y borrado. Cada forma normal impone requisitos progresivamente más estrictos sobre las dependencias funcionales entre columnas: la primera forma normal exige valores atómicos, la segunda elimina dependencias parciales de la clave y la tercera elimina dependencias transitivas. En la práctica, la mayoría de sistemas transaccionales se diseñan hasta la tercera forma normal, dejando formas superiores para casos muy específicos.
Es ordenar las tablas de una base de datos para qué cada dato viva en un único sitio, en lugar de repetirse en varias filas o tablas a la vez. Así, si cambia el dato, solo hay qué actualizarlo en un lugar, y no se corre el riesgo de qué dos copias queden desincronizadas. Es parecido a organizar una hoja de cálculo enorme separándola en varias hojas relacionadas entre sí en vez de repetir la misma información una y otra vez.
En una tienda online, en vez de guardar el nombre y la dirección del cliente en cada línea de pedido, se separan en tablas distintas (clientes, pedidos, líneas de pedido) relacionadas por claves foráneas, de modo qué un cambio de dirección se actualiza una sola vez. Cuando el volumen de lecturas analíticas es muy alto, algunos equipos desnormalizan deliberadamente ciertas tablas de solo lectura para acelerar consultas, asumiendo el coste de mantener esa redundancia controlada.
Es el nivel de normalización en el qué, además de cumplir las dos formas anteriores, ninguna columna qué no forme parte de la clave depende de otra columna qué tampoco sea la clave; es decir, se eliminan las dependencias transitivas. Es el estándar habitual para la mayoría de bases de datos transaccionales.
Cuando el rendimiento de lectura en consultas muy frecuentes o informes analíticos se ve penalizado por los múltiples cruces (joins) qué exige un esquema totalmente normalizado; en almacenes de datos y sistemas de reporting es habitual aceptar cierta redundancia a cambio de consultas más rápidas.
Genera anomalías de actualización, donde el mismo dato repetido en varias filas puede quedar desincronizado si solo se modifica en una de ellas, además de desperdiciar espacio de almacenamiento y complicar el mantenimiento de la integridad de los datos a largo plazo.