¿Qué es la normalización?
sobes.tech AI
Respuesta de la IA
La normalización de datos en el contexto de bases de datos es el proceso de organizar los datos para reducir la redundancia y mejorar la integridad de los datos. Se logra dividiendo tablas grandes en tablas más pequeñas y relacionándolas.
Objetivo principal:
- Eliminar la duplicación de datos.
- Mejorar la integridad de los datos (evitar anomalías en inserciones, actualizaciones y eliminaciones).
- Incrementar la eficiencia del almacenamiento y las consultas (en algunos casos).
El proceso de normalización se basa en los principios de las formas normales (FN). Las más comunes son:
- Primera forma normal (1FN): Atomicidad de los datos en las celdas, ausencia de grupos repetitivos de columnas.
- Segunda forma normal (2FN): Está en 1FN y cada atributo no clave depende completamente de todo la clave primaria.
- Tercera forma normal (3FN): Está en 2FN y no existen dependencias funcionales transitivas de atributos no clave desde la clave primaria a través de otros atributos no clave.
Ejemplo:
Tabla original "Pedidos_Productos":
| ID Pedido | Fecha Pedido | ID Producto | Nombre del Producto | Precio del Producto | Cantidad | Nombre del Cliente | Dirección del Cliente |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Teléfono | 500 | 1 | Ivan Pétrov | Calle Pushkina, 10 |
| 1 | 2023-10-27 | 102 | Auriculares | 100 | 2 | Ivan Pétrov | Calle Pushkina, 10 |
| 2 | 2023-10-27 | 101 | Teléfono | 500 | 1 | María Ivanova | Calle Lermontova, 5 |
Después de la normalización (hasta 3FN):
Tabla "Pedidos":
| ID Pedido | Fecha Pedido | ID Cliente |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
Tabla "Líneas de Pedido":
| ID Línea | ID Pedido | ID Producto | Cantidad |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
Tabla "Productos":
| ID Producto | Nombre del Producto | Precio del Producto |
|---|---|---|
| 101 | Teléfono | 500 |
| 102 | Auriculares | 100 |
Tabla "Clientes":
| ID Cliente | Nombre del Cliente | Dirección del Cliente |
|---|---|---|
| 1 | Ivan Pétrov | Calle Pushkina, 10 |
| 2 | María Ivanova | Calle Lermontova, 5 |
Sin embargo, una normalización excesiva puede llevar a un aumento en la cantidad de uniones (JOIN) al realizar consultas, lo que puede disminuir el rendimiento. Por ello, en el diseño de bases de datos, a menudo se busca un equilibrio entre el grado de normalización y el rendimiento. La desnormalización es el proceso de violar intencionadamente las formas normales para mejorar el rendimiento, generalmente añadiendo redundancia.