Normalización de bases de datos
Ordenar las tablas para que cada dato esté guardado en un solo lugar.
La normalización de bases de datos es una forma de diseñar las tablas de una base de datos relacional para que cada dato viva en un único lugar. Imaginá una tabla de pedidos donde cada fila repite el nombre, el mail y la dirección del cliente. Si el cliente se muda, tenés que actualizar cincuenta filas, y si te salteás una, la base pasa a contradecirse sola.
Normalizar es partir esa tabla en dos: una tabla de clientes con cada cliente una sola vez, y una de pedidos que solo guarda el id del cliente, una clave foránea que apunta a la tabla de clientes. Para ver los pedidos con las direcciones, las volvés a unir en una consulta con un join. Las reglas de hasta dónde partir se llaman formas normales; en la práctica, la mayoría de los diseños apunta a la tercera forma normal (3FN), que más o menos quiere decir que cada columna depende de la clave de la fila y de nada más.
La normalización le sienta bien a los sistemas que escriben mucho, como el sistema de pedidos de una tienda, porque cada actualización toca una sola fila y los datos quedan consistentes. El análisis de datos va para el otro lado: los data warehouses muchas veces desnormalizan a propósito, repitiendo datos en tablas anchas o en un esquema en estrella para que los reportes necesiten menos joins y anden más rápido. Las dos son decisiones de diseño, no una correcta y otra incorrecta.
Para quedarse
- Cada dato se guarda una vez; las otras tablas lo apuntan con claves.
- Evita contradicciones cuando se actualizan los datos.
- La mayoría de los diseños apunta a la tercera forma normal (3FN).
- El análisis de datos suele desnormalizar a propósito para leer más rápido.