Sobes.tech
Middle

¿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.