¿Qué es la normalización de una base de datos y para qué sirve?
El diseño de la base de datos es el proceso de describir cómo una aplicación debe manejar los datos del usuario. La normalización es el proceso de diseño de una base de datos lógica mediante la definición de las relaciones entre las tablas y la disposición de las tablas en la base de datos. Como tal, es un método para reducir la redundancia de datos.
Objetivos de la normalización de base de datos
Cuando se utiliza una base de datos relacional, la normalización puede ayudar a garantizar que los datos no tengan errores y que los duplicados no aumenten el tamaño de la base de datos.
Hay varios objetivos en la normalización de los datos:
-
Redundancia de datos
Se eliminan la duplicación de datos. Además de ahorrar memoria física, también ayuda a organizar los datos, mediante la creación de nuevas tablas que podran almacenar datos relacionados.
-
Integridad de los datos
Utilizando las características de integridad referencial de un sistema de gestión de bases de datos relacionales (RDBMS), es posible imponer restricciones cuando se borran o actualizan los datos.
-
Rendimiento de la base de datos
El uso de índices permite recuperar los datos mucho más rápido. También minimiza el uso de la memoria física y lógica, ya que cada tabla es compacta y tiene menos índices.
Tipos de normalización
Hay varios pasos para normalizar las tablas. Deben hacer lo siguiente:
Primera forma normal
No utilice varios campos en la misma tabla para almacenar los mismos datos.
- Eliminar los grupos duplicados en las tablas individuales.
- Crear una tabla separada para cada conjunto de datos relacionados.
- Definir cada conjunto de datos vinculados con una clave primaria.
Segunda forma normal
Los registros no deben depender de nada más que de la clave primaria de la tabla, en algunos casos es necesario aplicar una clave compuesta
- Crear tablas separadas para conjuntos de valores que se aplican a varios registros.
- Hacer coincidir estas tablas utilizando una clave externa.
La tercera forma normal
Los valores de un registro que no forman parte de la clave de ese registro no pertenecen a la tabla. En general, si el contenido de un grupo de campos pertenece a más de un registro de una tabla, se debe considerar la posibilidad de colocar estos campos en una tabla separada.
- Eliminar los campos que no dependen de una clave.
Otras formas de normalización
Existe una cuarta forma canónica, también llamada forma canónica Boice-Code (BCNF), y una quinta forma canónica, pero rara vez se tienen en cuenta en el diseño práctico. Estas últimas normas puede dar lugar a un diseño de base de datos menos perfecto, pero no debería afectar a la funcionalidad.
Ejemplos de normalización de base de datos
Como ejemplo, se muestra a continuación una base de datos no normalizada ficticia.
Id Estudiante |
Nombre |
Aula | Clase 1 | Clase 2 | Clase 3 |
6783 |
Alberto |
201 |
Matemáticas |
Física |
Música |
6784 | María | 302 | Matemáticas | Física |
Dibujo |
Para aplicar la primera forma normal para una base de datos, ninguna tabla debe contener varias columnas que contengan la misma información. Cada tabla debe organizarse en filas, y cada fila debe tener una clave principal que la distinga como única.
Id Estudiante |
Nombre | Aula | Clase # |
6783 |
Alberto | 201 |
Matemáticas |
6783 | Alberto | 201 |
Física |
6783 |
Alberto | 201 | Música |
6784 | Maria | 302 |
Matemáticas |
6784 |
Maria | 302 |
Física |
6784 | Maria | 302 |
Dibujo |
En la segunda forma normal el objetivo es eliminar los datos redundantes, teniendo en cuenta que en el ejemplo, los datos de las clases no dependen funcionalmente de los estudiantes.
Id Estudiante | Nombre |
Aula |
6783 |
Alberto | 201 |
6784 | María |
302 |
Id Estudiante |
Clase # |
6783 |
Matemáticas |
6783 |
Física |
6783 |
Música |
6784 |
Matemáticas |
6784 |
Física |
6784 |
Dibujo |
En la tercera forma normal el objetivo es eliminar los datos que no dependen de la clave.
Id Estudiante |
Nombre |
6783 |
Alberto |
6783 |
María |
Id Estudiante |
Id Aula |
6783 |
201 |
6783 |
302 |
Ventajas de la normalización de datos
Una base de datos normalizada es ventajosa cuando las operaciones serán intensivas en escritura. Algunas ventajas incluyen:
- Las actualizaciones son rápidas porque no hay datos duplicados en varios lugares.
- Las inserciones son rápidas porque sólo hay un punto de inserción para un dato y no hay inserciones duplicadas.
- Las tablas suelen ser más pequeñas que las de las bases de datos no normalizadas. Esto suele permitir colocar las tablas en una caché para mejorar el rendimiento.
Conclusión
La normalización de las bases de datos es un método para reducir la información redundante en ellas. A largo plazo, este proceso puede reducir la pérdida de datos y mejorar el rendimiento de la organización en su conjunto.