Normalización de Bases de Datos
La normalización en las bases de datos es un método esencial que permite dividir la información en varias tablas (concepto similar al de las listas enlazadas). Este proceso no solo hace más eficientes las consultas, sino que también facilita el manejo independiente de registros (inserciones y eliminaciones) y modela fácilmente las relaciones entre entidades.
Ejemplo Práctico
Imaginemos la siguiente tabla de Usuarios:
Id | Nombre | Curso |
---|---|---|
1 | Fernando | Matemáticas |
2 | Ana | Computación |
3 | Berenice | Matemáticas |
4 | Yuliana | Física |
En este ejemplo, no tenemos ninguna lógica de relación, lo que puede llevar a errores como este:
Id | Nombre | Curso |
---|---|---|
1 | Fernando | Matemáticas |
2 | Ana | Computación |
3 | Berenice | Matemáticas |
4 | Yuliana | Física |
5 | Fernando // Error | Matemáticas |
Aquí, el estudiante Fernando está inscrito al curso de Matemáticas dos veces. Además, no hay forma de saber si son dos estudiantes diferentes con el mismo nombre.
Solución con Normalización
Todos estos errores pueden solucionarse con la normalización. Para ello, es necesario:
- Crear una tabla para almacenar personas:
CREATE TABLE Personas ( Id INT PRIMARY KEY, Nombre VARCHAR(100) );
- Crear una tabla para almacenar cursos:
CREATE TABLE Cursos ( Id INT PRIMARY KEY, Nombre VARCHAR(100) );
- Crear una tabla para la unión de ambas tablas (información sobre estudiantes):
CREATE TABLE Estudiantes ( PersonaId INT, CursoId INT, PRIMARY KEY (PersonaId, CursoId), FOREIGN KEY (PersonaId) REFERENCES Personas(Id), FOREIGN KEY (CursoId) REFERENCES Cursos(Id) );
Beneficios de la Normalización
- Eficiencia en consultas: Las consultas son más rápidas y eficientes.
- Manejo independiente de registros: Facilita las inserciones y eliminaciones.
- Modelado de relaciones: Simplifica el modelado de relaciones entre entidades.