Normalización
Clase 8 de 36 • Curso de Bases de Datos con SQL
Resumen
¿Qué es la normalización en bases de datos?
La normalización es una técnica crucial en la creación de bases de datos que busca minimizar la redundancia de datos y garantizar su integridad. Permite dividir una tabla grande con una estructura variada en múltiples tablas siguiendo ciertas reglas. Este proceso es esencial para mejorar la eficiencia de las consultas y asegurar la calidad de los datos.
¿En qué consiste la primera forma normal?
La primera regla de normalización incluye tres puntos clave:
- Eliminar grupos repetitivos: Asegurarse de que cada columna en una tabla contenga valores atómicos, es decir, no divisibles.
- Garantizar registros únicos: Cada fila debe ser única.
- Esquema de tabla lógica: Dividir la información en tablas específicas según su tipo.
Por ejemplo, consideremos una tabla que almacena información de estudiantes y los cursos en los que están matriculados. Una mala práctica sería tener una columna 'cursos' con entradas como "matemáticas, física". Aquí se rompe la primera regla porque no es un dato atómico. Se puede resolver al crear tablas separadas para alumnos y matrículas, vinculando estudiantes con cursos de manera adecuada.
¿Cómo aplicamos la segunda forma?
La segunda forma normal se basa en los preceptos de la primera, añadiendo la eliminación de dependencias parciales. Es imprescindible:
- Cumplir con la primera norma.
- Asegurar que cada atributo no clave dependa completamente de la clave primaria.
Por ejemplo, si una universidad almacena la calificación de estudiantes por curso, y en la columna 'profesor' solo depende del curso, no de la clave compuesta del estudiante ID, se está violando esta forma normal. Una manera de solucionarlo es crear dos tablas: una para matrículas con 'estudiante ID', 'curso' y 'grado'; otra para 'cursos' con 'profesor', eliminando dichas dependencias parciales.
¿Qué garantiza la tercera forma?
La tercera forma normal requiere el cumplimiento de la segunda norma y, además, la eliminación de dependencias transitivas. Esto significa que los atributos no claves no deben depender de otros atributos no claves.
Imaginemos una tabla que contiene la dirección del profesor y una columna de 'cursos' y 'profesor'. Aquí, la solución es crear una tabla separada para la información del profesor, incluyendo detalles como nombre, identificación, dirección, y otra tabla para los cursos, logrando una separación de responsabilidades adecuada en las tablas.
¿Qué es la Forma Normal de Boyce-Codd (BCNF)?
La BCNF es un refinamiento de la tercera forma normal que garantiza que cada determinante sea una clave candidata. Por ejemplo, si tenemos una tabla con 'curso', 'profesor', y 'clase', y un curso depende del salón y el profesor, pero este último no es clave, se infringe esta norma. La solución es dividir en una tabla con 'curso' y 'profesor', y otra con 'salón' y 'curso', eliminando relaciones no directas.
¿Cómo se aplica la cuarta y quinta forma normal?
La cuarta y quinta formas normales llevan a un nivel más profundo la separación y simplificación de tablas:
-
Cuarta forma normal: Evitar dependencias multivaluadas. Si un 'curso' tiene múltiples 'profesores' y 'salones', crearemos tablas separadas para evitar redundancias, como una para los cursos, otra para cursos y profesores, y una más para las relaciones con el salón.
-
Quinta forma normal: Implica dividir tablas en otras más pequeñas para reconstruir los datos originales sin duplicar información. Así se garantiza que las combinaciones entre 'cursos', 'profesores', y 'salones' se reconstruyan de manera clara y eficiente.
La aplicación de estas formas asegura bases de datos robustas, evitando duplicados y manteniendo integridad, crucial para la calidad y eficiencia de sistemas de gestión de datos.