Sobes.tech
Junior

¿Qué es la normalización en una base de datos?

sobes.tech AI

Respuesta de la IA

La normalización de bases de datos es el proceso de organizar los datos en una base de datos relacional con el fin de reducir la redundancia (duplicación de datos) y mejorar la integridad de los datos. Esto se logra dividiendo tablas grandes en tablas más pequeñas y definiendo relaciones entre ellas.

El objetivo principal de la normalización:

  • Reducir la redundancia de datos: Evitar la repetición de la misma información en diferentes lugares.
  • Mejorar la integridad de los datos: Garantizar la precisión y coherencia de los datos.
  • Proporcionar flexibilidad: Facilitar cambios y ampliaciones en la estructura de la base de datos.

La normalización se define mediante un conjunto de reglas llamadas formas normales. Las formas normales más comunes son las primeras tres:

  1. Primera forma normal (1NF):

    • Cada columna de la tabla debe contener valores atómicos (indivisibles).
    • No hay grupos repetitivos de columnas.
    • Cada fila debe ser única (a través de la clave primaria).
  2. Segunda forma normal (2NF):

    • La tabla está en 1NF.
    • Todos los atributos no clave dependen completamente de toda la clave primaria (si es compuesta). No hay dependencias parciales.
  3. Tercera forma normal (3NF):

    • La tabla está en 2NF.
    • No hay dependencias transitivas. Los atributos no clave no dependen de otros atributos no clave.

Existen formas normales más altas (BCNF, 4NF, 5NF, 6NF), pero generalmente se considera que la 3NF es suficiente para la mayoría de los propósitos prácticos.

Ejemplo (simplificado):

Tabla no normalizada de pedido de cliente:

ID de Pedido Nombre del Cliente Dirección del Cliente Productos Cantidad Precio por unidad
101 Ivan Moscú Portátil 1 50000
101 Ivan Moscú Ratón 2 1000
102 María San Petersburgo Teclado 1 3000

Después de la normalización (por ejemplo, hasta 3NF):

Tabla de Pedidos:

ID de Pedido ID de Cliente Fecha del Pedido
101 1 2023-10-26
102 2 2023-10-26

Tabla de Clientes:

ID de Cliente Nombre del Cliente Dirección del Cliente
1 Ivan Moscú
2 María San Petersburgo

Tabla de Detalles del Pedido:

ID de Detalle del Pedido ID de Pedido ID de Producto Cantidad Precio por unidad
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Tabla de Productos:

ID de Producto Nombre del Producto
10 Portátil
20 Ratón
30 Teclado

La desnormalización es el proceso inverso de la normalización, a veces utilizada para optimizar el rendimiento de lectura de datos a costa de aumentar la redundancia.