Normalizar una base de datos

¿Cómo normalizar una base de datos?

Tiempo de lectura: 4 minutos
Rate this post

En esta ocasión te hablaré sobre como normalizar una base de datos, siguiendo las reglas funcionales conocidas como formas normales.

En el artículo anterior, aprendimos como determinar las entidades y atributos que deberá de contener nuestro modelo de base de datos, comentamos sobre el análisis que se debe de realizar a la hora de estar diseñando nuestros modelos, el contexto que debemos conocer y el alcance que podrá tener dicho sistema.

Es por ello que ahora nos toca el turno de entender ¿Qué es la normalización? y ¿Cuáles son las reglas de normalización? para poder normalizar una base de datos

Problemas al no normalizar una base de datos

Lo primero que debemos de aprender es que las bases de datos pueden funcionar con una sola entidad y que dicha entidad no cuenta con un número máximo de campos o atributos por lo que la cantidad de atributos que le queramos agregar a nuestra entidad, probablemente funcionará, sin embargo, no será lo óptimo.

Así mismo, el poner todos los atributos dentro de una sola entidad, enmarca una serie de problemas que se irán incrementando conforme vaya creciendo la base de datos, problemas como: duplicidad de contenido, riesgo en la integridad de datos, compleja administración de consultas y actualizaciones de la base de datos, etc…

Imaginemos el siguiente escenario, tenemos usuarios por toda la republica Mexicana, en varios estados por lo que probablemente tendríamos una entidad usuarios que tendrá datos como estos:

IDNombreTeléfonoCorreoEstadoStatus
1Pedrito Perez123123123pedrito@prueba.comCDMX1
2Juanito López123456789juanito@prueba.comCDMX0
3Andrés Hernández978654321andres@prueba.comCancún1

Con base en la información anterior, podríamos empezar a dislumbrar una serie de problemas que si bien, tal vez no se presenten al principio, mientras más crezca la información de nuestra base de datos, probablemente sea mucho más complejo corregirlos en un futuro.

Problema 1, queremos hacer un reporte que esté ordenado alfabéticamente por el apellido de los usuarios, si bien es posible hacerlo, probablemente tengamos que realizar algunas operaciones adicionales que no deberían de incluirse, por lo que esto se traduce en más uso de recursos.

Problema 2, en este momento la sucursal de CDMX desaparece, aún no sabemos a donde serán recolocados los usuarios, pero ya no debe de existir ninguna información sobre CDMX, seguramente será muy complejo hacer estas operaciones sin poner en riesgo la información de los usuarios o eliminarla.

Normalizar una base de datos con ejemplos

Así como estos, probablemente existirá una lista más grande de problemas que se nos podrían presentar con el desarrollo y crecimiento de la base de datos y es por ello que normalizar una base de datos toma relevancia cuando nos encontramos en la etapa de diseño.

Entonces, normalizar una base de datos, es un proceso que consiste en aplicar una serie de reglas con el objetivo de optimizar a futuro consultas y/o manejo de datos que consuman mucho más recursos de los necesarios, además de evitar redundancia de datos y eliminar riesgos dentro de la integridad de datos.

El proceso de normalizar una base de datos consiste en 5 reglas o formas normales, sin embargo, se dice que una base de datos se encuentra normalizada si hemos llegado a la Tercera Forma Normal.

Primera Forma Normal (1FN)

La Primera Forma Normal (1FN) en términos generales nos dice 4 cosas:

  • Todos los atributos deben de ser atómicos
  • Eliminar grupos repetidos
  • Crear tablas independientes para cada conjunto de datos relacionados
  • Indicar cada conjunto de datos relacionados con su clave principal

Entonces, siguiendo con el ejemplo, lo primero que vamos a hacer es descomponer el campo Nombre en 2 campos para lograr su atomicidad, ahora los separaremos por Nombre y Apellido, quedando de esta manera:

IDNombreApellidoTeléfonoCorreoEstadoStatus
1PedritoPerez123123123pedrito@prueba.comCDMX1
2JuanitoLópez123456789juanito@prueba.comCDMX0
3AndrésHernández978654321andres@prueba.comCancún1

Ahora como podemos observar logramos completar la atomicidad de los datos mediante el uso de un campo más, sin embargo, aún tenemos algunos datos repetidos como es el campo de estado, es por ello que podemos separarlo o extraerlo de esta entidad, pero antes de ello, veamos la Segunda Forma Normal (2FN).

Segunda Forma Normal (2FN)

La Segunda Forma Normal (2FN) nos indica lo siguiente:

  • Crear tablas independientes para conjuntos de valores se apliquen a varios registros
  • Relacione las entidades mediante llaves foráneas

Con base en la redacción, ahora toca el turno de poder separar las entidades con los datos que se repiten, es decir, el campo Estado deberá de cambiarse por una Llave Foránea(FK) que relacione a la nueva entidad que en este caso se denominará estados:

IDNombreApellidoTeléfonoCorreoEstadoStatus
1PedritoPerez123123123pedrito@prueba.com11
2JuanitoLópez123456789juanito@prueba.com10
3AndrésHernández978654321andres@prueba.com21
Entidad Usuarios
IDNombre
1CDMX
2Cancún
Entidad Estados

Como podemos observar, utilizar la 2FN al normalizar una base de datos, nos permite separar en 2 o más entidades aquellos campos que apliquen un conjunto de valores a varios registros y poderlos relacionar mediante el uso de Llaves Foráneas

Tercera Forma Normal (3FN)

Por último y para poder terminar con esta explicación sobre como normalizar una base de datos, será necesario visualizar la Tercera Forma Normal (3FN), la cual nos indica que se deberán de eliminar los campos que no dependan de la clave.

Es decir, en este ejemplo básico, no existen campos que no dependan de la clave para las entidades de Usuarios y Estados, sin embargo, si existieran estos campos, sería recomendable realizar su eliminación y generar entidades pivote o entidades de catálogo que eliminen esa independencia de los datos.

Como puedes observar, el proceso de normalizar una base de datos, es un proceso de análisis en el cuál se van separando en diversas entidades los atributos con el objetivo de eliminar posibles riesgos a futuro.

Si te ha gustado este artículo y te aporta valor te pido me sigas en mi:

🖥️ Youtube: https://www.youtube.com/@eightdev?sub_confirmation=1

🎵 Tik Tok: https://www.tiktok.com/@8devmx

✅ Facebook: https://www.facebook.com/8devmx/

📸 Instagram: https://www.instagram.com/8devmx/

También podría interesarte

Social Share Buttons and Icons powered by Ultimatelysocial
YouTube
YouTube
Instagram
Scroll al inicio