¿Tienes una base de datos con información repetitiva y desordenada 😱? Entonces, normalizar base de datos es la solución. La normalización de base de datos permite que la información dentro de ella sea organizada y funcional, con lo cual, es posible el procesamiento automático de la data para la óptima gestión de tus proyectos o negocios.
Por ello, en este artículo conocerás qué es la normalización de una base de datos y la importancia de normalizar una base de datos. Por otro lado, te mostraremos cómo normalizar una base de datos, con el objetivo de que apliques esta estrategia para eliminar redundancias e incongruencias en la base de datos relacionales sin perder información .
Si quieres potenciar la utilidad y eficiencia de tus bases de datos 🗂, has llegado al lugar correcto, porque te introduciremos a las formas normales de base de datos que te acompañarán en la correcta organización de tu data. ¡Toma nota!
Índice
- ¿Qué es la normalización de una base de datos?
- ¿Para qué sirve la normalización de base de datos?
- ¿Cómo normalizar una base de datos?
- Normalizar una base de datos paso a paso
¿Qué es la normalización de una base de datos?
Antes de revisar el proceso de normalización de base de datos, es fundamental saber qué es normalizar una base de datos. Microsoft Docs define a la normalización de una base de datos como:
“El proceso de organizar datos en una base de datos. Esto incluye la creación de tablas y el establecimiento de relaciones entre esas tablas de acuerdo con las reglas diseñadas tanto para proteger los datos como para que la base de datos sea más flexible mediante la eliminación de la redundancia y la dependencia incoherente”.
Por ejemplo, acomodar de una forma más efectiva aquellos datos repetitivos o aquellos que no tengan una relación útil en una tabla, mediante el proceso de normalización de base de datos, evitará que la información sea extensa y confusa 😵. Este proceso implica la creación de nuevas tablas a partir de la tabla principal, en donde las nuevas tablas muestren una relación coherente entre ellas gracias a una nueva organización de la data.
Es importante aclarar, que normalizar base de datos no se traduce en eliminar o perder los datos que puedan resultar redundantes, sino que, al usar las formas de normalización de base de datos, se reorganizarán para que sean entendibles y útiles.
En resumen, se puede decir que la normalización de la base de datos es la acción de mejorar la estructura de la misma 👍.
Objetivos de la normalización de datos
- Reducir la información duplicada y minimizar errores de datos.
- Simplificar dependencias entre columnas de tablas.
- Lograr que las futuras modificaciones se apliquen en un solo lugar y no en toda la base de datos.
- Organizar la información en grupos o tablas lógicas.
- Construir una base de datos de fácil entendimiento, visibilidad e interpretación de datos.
- Proteger la integridad de la información 🔒.
- Ahorrar tiempo al reducir la complejidad de revisión de la base de datos 🕑.
- Prevenir la eliminación de datos.
Fuente: Muy Linux
¿Para qué sirve la normalización de base de datos?
Podría parecer que normalizar la base de datos es un proceso complejo que requiere la inversión de tiempo, sin embargo, es necesario para estructurar de forma óptima la información de una base de datos.
De acuerdo con el blog Power Data, la aplicación de la normalización de datos no debe ser considerada como opcional, sino como un proceso necesario para garantizar un diseño de base de datos de éxito:
“La normalización de base de datos es una técnica que se emplea habitualmente para organizar los contenidos de las tablas de datos transaccionales y los almacenes de datos”.
Considerando que el objetivo de la normalización de la base de datos es garantizar el control preciso y seguro de la data, el no aplicar la normalización tiene las siguientes consecuencias:
- Poca precisión de los sistemas de bases de datos.
- Ralentización de los procesos.
- Ineficiencia en operaciones.
¿Cómo normalizar una base de datos?
Antes de conocer cómo realizar el proceso de normalización de base de datos, es necesario comprender cuáles son los niveles de normalización de datos y las formas normales de base de datos que se aplican para garantizar que una base de datos sea eficiente.
Estas reglas de normalización de base de datos o formas normales son criterios que ayudarán a mejorar la estructura de la data al aplicarse de manera acumulativa, es decir, para que una base esté normalizada hasta la segunda forma normal de base de datos, antes tuvo que haber cumplido con los criterios de la primera normal.
Veamos los lineamientos de los tres principales niveles de normalización de datos:
1. Primera forma normal de base de datos (1FN)
De acuerdo con el sitio web de la Academia 19E37 una base de datos (tabla) está normalizada hasta la primera forma normal cuando:
- Todos los atributos son atómicos e indivisibles, es decir, la casilla dentro de una columna solamente debe contener un dato.
- La tabla contiene una clave primaria única (uno de los elementos de la base de datos). Por ejemplo, una tabla que contenga los nombres de un grupo de estudiantes debe ir acompañada de una matrícula para cada uno de ellos que ayude a identificarlos.
- Todas las filas de una tabla deben tener el mismo número de columnas.
- Contar con tablas separadas para cada grupo de datos relacionados y repetitivos.
- En ninguna tabla se pueden repetir grupos de datos relacionados, por ejemplo, no pueden haber en una misma tabla dos grupos de números telefónicos.
- No existe un significado en la posición de los datos en columnas o filas, sino que el significado del dato lo determina el nombre del grupo de datos al que pertenece.
2. Segunda forma normal de base de datos (2FN)
- Los datos ya deben cumplir con los lineamientos de la 1FN.
- Los datos que no pertenezcan a la clave primaria única dependen totalmente de ella para ser funcionales (dependencia funcional).
- Se crean relaciones entre los valores de las diferentes tablas.
El portal de Unidad de Apoyo para el Aprendizaje de la Universidad Nacional Autónoma de México explica al respecto:
“Las tablas que están ajustadas a la primera forma normal y además disponen de una clave primaria formada por una única columna con un valor indivisible, cumple ya con la segunda forma normal. Ésta afecta exclusivamente a las tablas en las que la clave primaria está formada por los valores de dos o más columnas, debiendo asegurarse, en este caso, que todas las demás columnas son accesibles a través de la clave completa y nunca mediante una parte de esa clave”.
Si se te complica el concepto de clave primaria, piensa que se trata de un elemento que identificará a los componentes de un grupo. En el caso de un grupo de estudiantes, la clave primaria es la matrícula de cada estudiante.
3. Tercera forma normal de base de datos (3FN)
- Debe cumplir con los lineamientos de la primera y segunda forma normal de base de se datos.
- Se busca eliminar toda dependencia transitiva entre elementos que no tengan una clave primaria y hacer que se relacionen y dependedan de los atributos que sí cuentan con una clave (dependencia funcional).
Respecto al punto anterior, pensemos en una base de datos donde se encuentre concentrada la información de un grupo de estudiantes, cada estudiante tiene su propia matrícula que lo identifica (clave primaria única).
Si dicha base de datos incluye fecha de nacimiento y lugar de nacimiento (datos sin clave), habrá que relacionarlos con los alumnos mediante la clave primaria, la cual, es la matrícula de cada estudiante.
Por lo tanto, esta base de datos cumple con la tercera forma, pues todos los datos dependen de la clave primaria única, que en este caso, es la matrícula de estudiante.
Normalizar una base de datos paso a paso
Sabemos que el proceso de normalizar una base de datos puede parecer intimidante, por ello, te presentamos un ejemplo de normalización de base de datos 👀.
En este caso, tenemos una base de datos con un listado de tres alumnos con sus matrículas, materias que cursan y sus números telefónicos. Como podemos ver, hay dos grupos de información que cuentan con sus claves primarias únicas, los alumnos (matrícula) y las materias (clave de materia).
Teniendo esto en cuenta ¿cómo vamos normalizar de modo que no se repitan datos y que no haya datos sin una dependencia funcional?
1. Apliquemos la primera forma normal de base de datos
Recordemos que esta regla de normalización de base de datos dice que:
- Cada casilla debe contener un solo dato.
- Requiere la presencia de claves primarias únicas.
- No se pueden repetir datos ni grupos de datos.
Ahora tenemos un problema: los nombres de dos alumnas se repiten en la columna de alumnos. En primer lugar, vamos a evaluar cuáles son los datos que están originando la repetición del nombre de los alumnos, en este caso, se trata de la materia.
Entonces, vamos a separar las tablas en dos. Una donde estén el nombre del alumno, matrícula y teléfono. Y otra tabla que contenga materia, clave de materia y la matrícula de alumno, este último dato es la clave primaria que une y relaciona a las dos tablas.
Tabla materia - alumno
Tabla alumno - número telefónico
En esta última tabla se puede observar que, al separar y crear una nueva tabla para las materias, se ha eliminado la repetición de nombres de los alumnos.
2. Apliquemos la segunda forma normal de base de datos
Para empezar con la segunda forma, recordemos que es indispensable cumplir con los lineamientos de normalización de la primera forma normal de base de datos considerando que ya lo hemos logrado, pasemos a identificar las dependencias funcionales y las transitivas que hay en nuestras nuevas dos tablas.
En nuestra tabla alumno - número telefónico, vemos que contamos con una clave primaria, matrícula de alumno. Por otra parte, la tabla alumno - materia cuenta con una clave primaria que es la clave de materia; estas dos claves primarias forman una dependencia funcional.
Al mismo tiempo, en nuestra tabla alumno-materia tenemos una dependencia transitiva, que es la matrícula. Pues en este caso, la matrícula está funcionando como una unión entre nuestras dos tablas.
En resumen, la materia depende de la clave de materia, mientras que alumno depende de la matrícula. Sin embargo, en la tabla materia - alumno, vemos que también la materia no depende funcionalmente de la matrícula, por ello, será necesario separar nuevamente nuestras tablas.
Nuestra base de datos estará normalizada hasta la segunda forma normal de base de datos de esta manera:
En este momento, el proceso de normalización de datos hasta la segunda forma normal nos ha llevado a la generación de dos tablas que cuentan con atributos que dependen funcionalmente de claves primarias. En la primera tabla, los campos de alumno y teléfono dependen funcionalmente de matrícula.
Tabla alumno - número telefónico
En la segunda tabla, el campo de materia depende funcionalmente de la clave de materia.
Tabla materia
Por último, en la segunda forma normal de base de datos, también tenemos una tabla con atributos que no dependen funcionalmente, sin embargo, son la unión entre las tablas.
Tabla matrícula - materia (unión)
3. Apliquemos la tercera forma normal de base de datos
¿Recuerdas que indica la tercera forma normal de base de datos? Esta regla indica que se deben eliminar todas las dependencias transitivas, es decir, no puede haber atributos que no dependan funcionalmente de una clave primaria.
No obstante, nuestro ejemplo ya no se encuentra con ese problema, lo cual, señala que nuestra base de datos ya se encuentra normalizada, sin haber necesitado pasar por la tercera forma normal de base de datos. Las razones son las siguientes:
- En la tabla alumno - número telefónico los atributos número telefónico y alumno dependen funcionalmente de la matrícula.
- En la tabla materia, la materia depende funcionalmente de la clave de materia.
- Por último, tenemos una tabla que une las dos anteriores que, además, indica qué materia cursa tal alumno.
Ahora, ya conoces qué es la normalización de una base de datos y cómo se lleva a cabo este proceso. Recuerda que el objetivo es reducir los datos repetidos sin eliminar información, en otras palabras, la normalización ayuda a darle una mejor estructura a la base de datos.
Esperamos que este artículo y nuestro ejemplo te ayuden a tener un mejor control de tu data. Te recomendamos normalizar base de datos desde la creación de la base para que la tarea no se te haga tan complicada más adelante.
Si estás interesado en el manejo y análisis eficiente de la base de datos, te recomendamos el curso de Desarrollo y gestión de bases de datos, el cual, te ayudará a tomar las mejores decisiones para el optimizar el desarrollo de tu empresa, negocio o proyecto. ¡Suerte! 💪