Inscríbete

Cómo darle forma a los datos: qué es la normalización de bases de datos y por qué es necesaria

La normalización de bases de datos es una herramienta que puede resulta difícil de entender para un principiante. En este artículo explicaremos cómo funciona la normalización de datos utilizando un ejemplo de la vida real: un ida al supermercado para comprar alimentos.

normalización de bases de datos con ejemplos

¿Qué es la normalización de datos?

Los datos en una base de datos pueden tener cualquier forma: números, porcentajes, texto. La normalización es una forma de organizar los datos en sistemas de tablas. Una base de datos normalizada no contiene datos duplicados por lo que brinda seguridad en los datos, es más fácil trabajar con ella y puede cambiar su estructura para diferentes tareas. 

El proceso de normalización transforma los datos para que ocupen menos espacio y las búsquedas entre elementos sean rápidas y eficientes. Para hacer esto, crea tablas adicionales que se vinculan entre sí mediante claves (columnas en las que no hay elementos repetidos).

Veamos la esencia de la normalización de bases de datos con un ejemplo. Gerardo Ruiz va todos los días a la tienda de comestibles que está cerca de su casa. Compra alimentos, como pan y queso crema, y los paga con tarjeta. Los datos sobre las compras por las que pagó con la tarjeta se guardan diariamente en el servidor de la tienda en una tabla de Google Sheets.

tabla para normalización de bases de datos

Así se registran las compras de Gerardo Ruiz en la tabla de datos de la tienda.

Al final del día, los datos se pueden analizar para calcular los ingresos de la tienda, qué productos se vendieron mejor y cuánto dinero generaron. Sin embargo, cuando el número de registros en la tabla supera el millón, trabajar con los datos se vuelve más difícil. La tabla se cargará lentamente, lo que hará más difícil encontrar errores y recopilar estadísticas sobre determinados productos o categorías de clientes.

Además de Gerardo, otras personas que también viven cerca, como Ana Rojo y Majo Buendía, compran en la tienda todos los días. El nombre y apellido de los clientes se repiten en cada registro de sus compras, y esto tiene un promedio de 10 a 20 caracteres. Para evitar duplicar estos datos, el sistema de bases de datos crea tablas separadas.

normalización de bases de datos en tablas

En una tabla separada, a cada cliente se le puede asignar un número, es decir, una clave. Luego, en la tabla principal, en lugar de nombres habrá claves que conectarán ambas tablas. Esto reducirá la cantidad de caracteres en la tabla principal, eliminará entidades duplicadas y simplificará a búsqueda.

Los nombres y apellidos de cientos de clientes habituales tienen una media de 1,500 caracteres. Si cada uno de ellos visita la tienda 300 veces al año, son 450,000 caracteres. Sólo reemplazar nombres y apellidos con números reducirá la cantidad de caracteres en las entradas entre 3 y 4 veces.

Puede hacerse lo mismo con los productos: se ingresa una categoría, por ejemplo, productos de panadería o productos lácteos, y se crea una tabla separada para ellos. Así funciona la normalización, cuyo objetivo es optimizar el trabajo con bases de datos. 

Para trabajar con formas normales de una base de datos (agregar, cambiar o buscar datos en una base de datos de muchas tablas interconectadas) se accede en el lenguaje de programación SQL, un lenguaje declarativo o lenguaje de consulta estructurado. 

¿Por qué normalizar datos en una base de datos?

Veamos los beneficios de la normalización de datos con otro ejemplo. Trabajar con datos normalizados recuerda vagamente a ir de compras con un libro de recetas. Para comprar productos para una ensalada, Odette debe abrir la primera tabla (el libro de recetas), ir a la subtabla (la sección de “Ensaladas”), buscar la receta deseada y poner los productos en el carrito. Así es más o menos como funcionan las relaciones entre tablas que contienen datos de producto. 

Sin la normalización de bases de datos, el recetario sería una gran tabla con los ingredientes de los platillos. Para comprar los productos para la ensalada utilizando sólo esta base de datos, Odette primero tendría que recolectar todos los ingredientes del libro en una cesta, luego buscar los que necesita para la ensalada y sacar el resto de la canasta. 

¿Qué hace la normalización de bases de datos y cómo simplifica el trabajo con datos de producto?

1. Reduce el tamaño de la base de datos y ahorra espacio

Al utilizar tablas separadas para las diferentes categorías y elementos repetidos, reduce el tamaño de los registros en la base de datos y, por lo tanto, su peso. 

2. Simplifica la búsqueda y hace más cómodo el trabajo con la base de datos

Una base de datos normalizada que crea tablas relacionadas se puede optimizar para tareas sin pasos adicionales. Por ejemplo, para buscar una categoría en el sistema, no es necesario buscar y ordenar elementos únicos en la base de datos; basta con consultar una tabla separada con los elementos de dicha categoría y encontrar rápidamente los datos necesarios. 

3. Reduce la probabilidad de de errores y anomalías

Las formas normalizadas de datos en las tablas están interrelacionadas. Por ejemplo, si se necesita cambiar o eliminar datos en una tabla, el resto de los datos asociados a ella se actualizarán automáticamente. No tendrás que revisar todos los registros buscando campos que deban cambiarse o eliminarse, lo que significa que no habrá errores al momento de realizar cambios en la base de datos.

¿Cómo normalizar bases de datos?

El proceso de normalización de bases de datos debe prescribirse en la etapa de diseño de la base de datos, es decir, antes de que comience la recopilación de datos. Si no se hace esto, se corre el riesgo de que la base de datos esté mal diseñada y haya que rediseñarla. Normalmente, los analistas normalizan los datos manualmente o delegan la tarea a especialistas que recopilan y almacenan los datos, como los ingenieros de datos.

No existe ningún software especial para la normalización de bases de datos. Los datos de la base de datos se convierten según las reglas. 

Reglas de normalización de bases de datos

Existen siete formas normalizadas de bases de datos:

• primero,

• segundo,

• tercero,

• forma normal de Boyce-Codd,

• cuarto,

• quinto,

• sexto.

Es posible reducir los datos a formas normales sólo de forma secuencial. Es decir, en una segunda base de datos de forma normal, los datos predeterminados ya deberían estar normalizados de acuerdo con las reglas de la primera forma normal, y así sucesivamente. 

En algunos casos, intentar normalizar los datos a un estado “ideal” puede dar lugar a la creación de muchas tablas con datos de producto, claves y relaciones. Esto complicará el trabajo con la base de datos y reducirá el rendimiento de DBMS. Por lo tanto, los datos suelen normalizarse a la tercera forma normal, pero veamos esto con un ejemplo.

Primera forma de normalización

No debe haber datos duplicados o compuestos en la base de datos. 

 datos normalizados en tablas

A la izquierda, en un campo están escritos los datos sobre el nombre completo de los compradores (nombre de pila, primer y segundo apellido). A la derecha, estos datos se reducen a la primera forma normal: cada elemento se escribe en un campo separado.

Es mejor separar los elementos de los datos compuestos en diferentes campos; de lo contrario, pueden aparecer errores y anomalías en el proceso de trabajar con los datos. 

Por ejemplo, el departamento de marketing de una tienda online decidió felicitar a todos los Fernandos por su onomástica y enviar un newsletter con un cupón de regalo. Si la tabla está en su primera forma normal, encontrará los datos que necesita sin ningún paso adicional. Por otro lado, cuando el nombre y el apellido están escritos en un solo campo, al buscar y ordenar, la selección incluirá, por ejemplo, a los Fernandos y Fernández. 

Segunda forma de normalización

Para simplificar, cada registro en una base de datos debe tener una clave primaria. Una clave primaria es un elemento de un registro que no se repite en otros registros. 

Digamos que el 10 de marzo el comprador Patricio Llanos compró una telera de pan integral por 65 pesos en una cadena de supermercados en Guadalajara. Un registro de su compra apareció en la base de datos. No se puede descartar que otro Patricio Llanos compre el mismo producto ese mismo día en otra tienda de la cadena. El registro de compra también aparecerá en el sistema de bases de datos.

datos en tabla para normalización de datos

Para evitar que sus registros se mezclen, puede agregárseles un identificador de compra, como un número de recibo, el cual será la clave principal.

Tercera forma de normalización

Un registro no debe tener columnas con valores no clave que dependan de otros valores no clave. 

ejemplo de normalización de datos

En este ejemplo, el número personal del empleado es la clave principal. Los datos de la segunda y tercera columnas dependen directamente de la clave principal. Pero, entre el número personal del empleado y el jefe del departamento sólo existe una conexión indirecta o transitiva.

Los datos sobre los jefes de departamento deben colocarse en otra tabla. Entonces no habrá relaciones transitivas en la tabla principal y corresponderá a la tercera forma normal.

Los datos no se convierten en todos los casos a la tercera forma normal. A veces esto requiere la creación de muchas tablas pequeñas, lo que complicará la base de datos y la tarea de los desarrolladores.

Otros aspectos a tener en cuenta

La normalización es uno de los métodos para optimizar el trabajo y la seguridad de los datos con una base de datos. Si una base de datos funciona bien para una tienda, no necesariamente funcionará bien para documentos. Por tanto, la elección de los métodos de optimización es siempre individual y dependerá del caso concreto. Además, la normalización no es una panacea. Vale la pena prestar atención no sólo a los beneficios que proporciona la normalización, sino también a cuántos recursos y tiempo requiere.