La normalización es un proceso utilizado en el diseño de bases de datos para minimizar la redundancia y dependencia de datos. Este proceso implica organizar los datos en una base de datos de manera que se reduzcan las anomalías de inserción, actualización y eliminación. La normalización se lleva a cabo mediante la aplicación de una serie de reglas conocidas como formas normales.
Objetivos de la Normalización
- Eliminar la redundancia de datos: Reducir la duplicación de datos para ahorrar espacio y mejorar la consistencia.
- Asegurar la integridad de los datos: Garantizar que las relaciones entre los datos sean correctas y que los datos sean precisos.
- Facilitar el mantenimiento de la base de datos: Hacer que la base de datos sea más fácil de mantener y actualizar.
Pasos del Proceso de Normalización
- Primera Forma Normal (1NF)
Para que una tabla esté en la Primera Forma Normal (1NF), debe cumplir con los siguientes criterios:
- Todos los atributos deben contener valores atómicos (indivisibles).
- Cada columna debe contener valores del mismo tipo.
- Cada columna debe tener un nombre único.
- El orden en el que se almacenan los datos no debe afectar la integridad de la base de datos.
Ejemplo:
Supongamos una tabla Estudiantes
con los siguientes datos:
ID_Estudiante | Nombre | Cursos |
---|---|---|
1 | Juan Pérez | Matemáticas, Física |
2 | Ana Gómez | Química, Biología |
Para convertir esta tabla a 1NF, debemos dividir los cursos en filas separadas:
ID_Estudiante | Nombre | Curso |
---|---|---|
1 | Juan Pérez | Matemáticas |
1 | Juan Pérez | Física |
2 | Ana Gómez | Química |
2 | Ana Gómez | Biología |
- Segunda Forma Normal (2NF)
Para que una tabla esté en la Segunda Forma Normal (2NF), debe cumplir con los siguientes criterios:
- La tabla debe estar en 1NF.
- Todos los atributos no clave deben depender completamente de la clave primaria.
Ejemplo:
Supongamos una tabla Pedidos
con los siguientes datos:
ID_Pedido | ID_Cliente | Nombre_Cliente | Producto | Cantidad |
---|---|---|---|---|
1 | 101 | Carlos López | Laptop | 2 |
2 | 102 | María García | Smartphone | 1 |
Para convertir esta tabla a 2NF, debemos eliminar las dependencias parciales:
Tabla Pedidos
:
ID_Pedido | ID_Cliente | Producto | Cantidad |
---|---|---|---|
1 | 101 | Laptop | 2 |
2 | 102 | Smartphone | 1 |
Tabla Clientes
:
ID_Cliente | Nombre_Cliente |
---|---|
101 | Carlos López |
102 | María García |
- Tercera Forma Normal (3NF)
Para que una tabla esté en la Tercera Forma Normal (3NF), debe cumplir con los siguientes criterios:
- La tabla debe estar en 2NF.
- No debe haber dependencias transitivas (un atributo no clave no debe depender de otro atributo no clave).
Ejemplo:
Supongamos una tabla Empleados
con los siguientes datos:
ID_Empleado | Nombre | ID_Departamento | Nombre_Departamento |
---|---|---|---|
1 | Luis Martínez | 10 | Ventas |
2 | Marta Sánchez | 20 | Marketing |
Para convertir esta tabla a 3NF, debemos eliminar las dependencias transitivas:
Tabla Empleados
:
ID_Empleado | Nombre | ID_Departamento |
---|---|---|
1 | Luis Martínez | 10 |
2 | Marta Sánchez | 20 |
Tabla Departamentos
:
ID_Departamento | Nombre_Departamento |
---|---|
10 | Ventas |
20 | Marketing |
Ejercicio Práctico
Ejercicio 1:
Dada la siguiente tabla Ventas
:
ID_Venta | Fecha | Cliente | Producto | Cantidad | Precio_Unitario | Total |
---|---|---|---|---|---|---|
1 | 2023-01-01 | Juan Pérez | Laptop | 1 | 1000 | 1000 |
2 | 2023-01-02 | Ana Gómez | Tablet | 2 | 500 | 1000 |
- Normaliza la tabla
Ventas
a 1NF, 2NF y 3NF.
Solución:
1NF:
ID_Venta | Fecha | Cliente | Producto | Cantidad | Precio_Unitario | Total |
---|---|---|---|---|---|---|
1 | 2023-01-01 | Juan Pérez | Laptop | 1 | 1000 | 1000 |
2 | 2023-01-02 | Ana Gómez | Tablet | 2 | 500 | 1000 |
2NF:
Tabla Ventas
:
ID_Venta | Fecha | ID_Cliente | Producto | Cantidad | Precio_Unitario | Total |
---|---|---|---|---|---|---|
1 | 2023-01-01 | 1 | Laptop | 1 | 1000 | 1000 |
2 | 2023-01-02 | 2 | Tablet | 2 | 500 | 1000 |
Tabla Clientes
:
ID_Cliente | Cliente |
---|---|
1 | Juan Pérez |
2 | Ana Gómez |
3NF:
Tabla Ventas
:
ID_Venta | Fecha | ID_Cliente | ID_Producto | Cantidad | Precio_Unitario | Total |
---|---|---|---|---|---|---|
1 | 2023-01-01 | 1 | 1 | 1 | 1000 | 1000 |
2 | 2023-01-02 | 2 | 2 | 2 | 500 | 1000 |
Tabla Clientes
:
ID_Cliente | Cliente |
---|---|
1 | Juan Pérez |
2 | Ana Gómez |
Tabla Productos
:
ID_Producto | Producto |
---|---|
1 | Laptop |
2 | Tablet |
Conclusión
El proceso de normalización es esencial para diseñar bases de datos eficientes y libres de redundancias. A través de las formas normales, podemos estructurar los datos de manera que se minimicen las anomalías y se mantenga la integridad de los datos. La práctica constante de estos conceptos es fundamental para dominar el diseño de bases de datos.
Fundamentos de Bases de Datos
Módulo 1: Introducción a las Bases de Datos
- Conceptos Básicos de Bases de Datos
- Tipos de Bases de Datos
- Historia y Evolución de las Bases de Datos
Módulo 2: Bases de Datos Relacionales
Módulo 3: Bases de Datos No Relacionales
- Introducción a NoSQL
- Tipos de Bases de Datos NoSQL
- Comparación entre Bases de Datos Relacionales y No Relacionales
Módulo 4: Diseño de Esquemas
- Principios de Diseño de Esquemas
- Diagramas Entidad-Relación (ER)
- Transformación de Diagramas ER a Esquemas Relacionales