Bases de datos relacionales: normalización

Trabajar con normalización de bases de datos relacionales

La normalización es un concepto fundamental en el diseño de bases de datos relacionales. A través de este proceso, estructuramos la información de manera eficiente para evitar problemas comunes, como redundancia de datos y dependencias innecesarias, facilitando la integridad y consistencia de los datos a largo plazo.

En este artículo explicaré de una manera sencilla el tema. Haré foco en sus ventajas y daré ejemplos prácticos para comprender mejor como eplicarlas.

¿Qué es la normalización?

La normalización es una técnica utilizada para organizar los datos en una base de datos relacional. Su objetivo principal es dividir la información en tablas más pequeñas, evitando la duplicación de datos (redundancia). Nos ayuda a controlar que las relaciones entre tablas estén bien definidas. Este proceso sigue una serie de reglas llamadas formas normales.

Una pregunta que me suelen hacer en mis clases de Bases de Datos es: ¿Por qué es es necesario recurrir a la normalización? Para responder esto, nada mejor que un ejemplo.

Imaginemos una tabla no normalizada que contiene información sobre empleados y departamentos. Si un departamento cambia de nombre, debemos actualizar ese nombre en todos los registros donde aparezca, lo que es propenso a errores. Además, cada registro duplicado ocupa espacio innecesario en la base de datos.

Estos son algunos de los problemas que la normalización trata de solucionar:

  • Redundancia de datos. Evitar duplicación innecesaria de información.
  • Inconsistencias. Asegura que los datos relacionados estén siempre sincronizados y actualizados.
  • Facilidad de actualización. Los datos pueden actualizarse en una sola ubicación sin necesidad de buscar en múltiples registros.

Ventajas de la Normalización

A continuación analizaremos 4 claves sobre porque es importante normalizar:

  1. Eficiencia del almacenamiento. Al reducir la duplicación de datos, se ahorra espacio en disco.
  2. Integridad de datos. Permite que los datos sean consistentes y correctos, eliminando las anomalías de actualización.
  3. Flexibilidad. Las bases de datos bien normalizadas pueden adaptarse fácilmente a cambios, como la adición de nuevas relaciones o atributos.
  4. Mejora en las consultas. Al eliminar datos redundantes y establecer relaciones claras, las consultas SQL pueden ser más rápidas y precisas.

Formas Normales: proceso paso a paso

La normalización sigue un conjunto de etapas llamadas formas normales, cada una con un conjunto de reglas más estrictas que la anterior.

Primera Forma Normal (1FN)

Regla: cada «celda» de la tabla debe contener un solo valor, y cada registro debe ser único.

Ejemplo no normalizado:
Supongamos que tenemos la siguiente tabla de empleados:

EmpleadoDepartamentoTeléfonos
AnaVentas555-1234, 555-5678
LuisMarketing555-4321

Aquí, el campo Teléfonos tiene múltiples valores en una sola celda. Para cumplir con la 1FN, debemos asegurarnos de que cada celda contenga un único valor.

Tabla en 1FN:

EmpleadoDepartamentoTeléfono
AnaVentas555-1234
AnaVentas555-5678
LuisMarketing555-4321

Segunda Forma Normal (2FN)

Regla: todos los atributos no clave deben depender completamente de la clave principal. Aplica solo si tenemos una clave compuesta (más de una columna como clave).

Ejemplo de 1FN pero no en 2FN:

EmpleadoProyectoHoras trabajadasDepartamento
AnaProyecto X30Ventas
LuisProyecto Y25Marketing

Aquí, «Departamento» depende solo de «Empleado», no de la combinación de «Empleado» y «Proyecto». Esto viola la 2FN. Para corregirlo, podemos mover «Departamento» a una tabla separada de empleados:

Tabla Empleados:

EmpleadoDepartamento
AnaVentas
LuisMarketing

Tabla Proyectos:

EmpleadoProyectoHoras trabajadas
AnaProyecto X30
LuisProyecto Y25

Tercera Forma Normal (3FN)

Regla: los atributos no clave deben depender únicamente de la clave primaria, no de otros atributos no clave.

Ejemplo no normalizado en 2FN pero no en 3FN:

EmpleadoProyectoHoras trabajadasCiudad
AnaProyecto X30Madrid
LuisProyecto Y25Barcelona

Aquí, Ciudad depende de Empleado y no de la combinación de Empleado y Proyecto. Para cumplir con la 3FN, separamos la ciudad en una tabla independiente:

Tabla Empleados:

EmpleadoCiudad
AnaMadrid
LuisBarcelona

Tabla Proyectos:

EmpleadoProyectoHoras trabajadas
AnaProyecto X30
LuisProyecto Y25

Ejemplos prácticos en la vida cotidiana

Supongamos una base de datos de una tienda en línea. Tenemos una tabla de pedidos que contiene información del cliente y el producto que compraron.

Tabla no Normalizada:

Pedido IDClienteDirección ClienteProductoPrecio
001Juan P.Calle A, MadridLaptop800 USD
002Ana L.Calle B, BarcelonaTeléfono móvil600 USD
003Juan P.Calle A, MadridAuriculares50 USD

Aquí podemos ver que los datos del cliente (nombre y dirección) están duplicados. Esto puede causar inconsistencias si Juan P. cambia su dirección, ya que tendríamos que actualizarla en múltiples lugares.

Solución Normalizada:

Tabla Clientes:

Cliente IDNombreDirección
001Juan P.Calle A, Madrid
002Ana L.Calle B, Barcelona

Tabla Pedidos:

Pedido IDCliente IDProductoPrecio
001001Laptop800 USD
002002Teléfono móvil600 USD
003001Auriculares50 USD

En conclusión

La normalización en bases de datos relacionales es crucial para asegurar una buena organización de los datos, reduciendo la redundancia y mejorando la integridad. Aunque puede parecer un proceso complejo al principio, sus beneficios son inmensos a largo plazo. Las bases de datos normalizadas son más fáciles de mantener, actualizar y escalar.

Para los principiantes, es importante seguir las primeras formas normales, mientras que los expertos deben asegurarse de que las estructuras se mantengan flexibles y adaptables, aplicando las formas normales de acuerdo con el contexto y las necesidades específicas del proyecto.

Al final del día, la normalización de bases de datos relacionales facilita que nuestros proyectos sean eficientes, confiables y escalables.

Si te interesa saber más sobre bases de datos déjame un comentario o escríbeme un mensaje.

Más sobre Diseño y desarrollo Web


Acerca de

Autor de los libros: Webmaster Profesional, HTML5: Comprenda el cambio y Apps HTML5 para móviles. Soy especialista en Desarrollo Web. Realizo proyectos basados en Inteligencia Artificial. Colaboré como autor y editor de contenidos para revistas, colecciones y diversos medios impresos y digitales. Brindo capacitaciones, clases de formación y consultorías sobre lenguajes de programación y herramientas para Desarrollo Web y móvil en modalidad online y presencial.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*