En esta sección, vamos a poner en práctica los conceptos de normalización que hemos aprendido en el Módulo 5. La normalización es un proceso crucial en el diseño de bases de datos relacionales, ya que ayuda a minimizar la redundancia y a evitar problemas de inconsistencia de datos.
Ejercicio 1: Identificación de Formas Normales
Descripción del Ejercicio
Dada la siguiente tabla, identifica en qué forma normal se encuentra y justifica tu respuesta. Luego, normaliza la tabla hasta la Tercera Forma Normal (3NF).
Tabla Inicial: Pedidos
PedidoID | ClienteNombre | ClienteDireccion | ProductoID | ProductoNombre | Cantidad | Precio |
---|---|---|---|---|---|---|
1 | Juan Pérez | Calle Falsa 123 | 101 | Televisor | 1 | 500 |
2 | Ana Gómez | Av. Siempre Viva | 102 | Lavadora | 2 | 300 |
3 | Juan Pérez | Calle Falsa 123 | 103 | Microondas | 1 | 150 |
Solución
-
Identificación de la Forma Normal Actual:
- Primera Forma Normal (1NF): La tabla está en 1NF porque todos los valores son atómicos.
- Segunda Forma Normal (2NF): La tabla no está en 2NF porque hay dependencias parciales.
ClienteNombre
yClienteDireccion
dependen solo dePedidoID
, no de la combinación completa de la clave primaria compuesta (PedidoID
,ProductoID
). - Tercera Forma Normal (3NF): La tabla no está en 3NF porque
ClienteDireccion
depende deClienteNombre
, que no es una clave primaria.
-
Normalización a 2NF:
- Crear una tabla separada para los clientes y otra para los productos.
Tabla
Clientes
:ClienteID ClienteNombre ClienteDireccion 1 Juan Pérez Calle Falsa 123 2 Ana Gómez Av. Siempre Viva Tabla
Productos
:ProductoID ProductoNombre Precio 101 Televisor 500 102 Lavadora 300 103 Microondas 150 Tabla
Pedidos
:PedidoID ClienteID ProductoID Cantidad 1 1 101 1 2 2 102 2 3 1 103 1 -
Normalización a 3NF:
- La tabla
Clientes
ya está en 3NF porque no hay dependencias transitivas. - La tabla
Productos
ya está en 3NF porque no hay dependencias transitivas. - La tabla
Pedidos
ya está en 3NF porque no hay dependencias transitivas.
- La tabla
Resumen del Ejercicio 1
Hemos identificado que la tabla inicial no estaba en 2NF ni en 3NF debido a dependencias parciales y transitivas. Después de normalizar, hemos creado tres tablas (Clientes
, Productos
, Pedidos
) que están en 3NF.
Ejercicio 2: Proceso de Normalización
Descripción del Ejercicio
Dada la siguiente tabla, normalízala hasta la Tercera Forma Normal (3NF).
Tabla Inicial: Ventas
VentaID | Fecha | ClienteID | ClienteNombre | ProductoID | ProductoNombre | Cantidad | PrecioUnitario | Total |
---|---|---|---|---|---|---|---|---|
1 | 2023-01-01 | 1 | Luis García | 201 | Laptop | 1 | 1000 | 1000 |
2 | 2023-01-02 | 2 | Marta López | 202 | Tablet | 2 | 300 | 600 |
3 | 2023-01-03 | 1 | Luis García | 203 | Smartphone | 1 | 800 | 800 |
Solución
-
Identificación de la Forma Normal Actual:
- Primera Forma Normal (1NF): La tabla está en 1NF porque todos los valores son atómicos.
- Segunda Forma Normal (2NF): La tabla no está en 2NF porque hay dependencias parciales.
ClienteNombre
depende solo deClienteID
, no de la combinación completa de la clave primaria compuesta (VentaID
,ProductoID
). - Tercera Forma Normal (3NF): La tabla no está en 3NF porque
Total
depende deCantidad
yPrecioUnitario
, que no son claves primarias.
-
Normalización a 2NF:
- Crear una tabla separada para los clientes y otra para los productos.
Tabla
Clientes
:ClienteID ClienteNombre 1 Luis García 2 Marta López Tabla
Productos
:ProductoID ProductoNombre PrecioUnitario 201 Laptop 1000 202 Tablet 300 203 Smartphone 800 Tabla
Ventas
:VentaID Fecha ClienteID ProductoID Cantidad 1 2023-01-01 1 201 1 2 2023-01-02 2 202 2 3 2023-01-03 1 203 1 -
Normalización a 3NF:
- La tabla
Clientes
ya está en 3NF porque no hay dependencias transitivas. - La tabla
Productos
ya está en 3NF porque no hay dependencias transitivas. - La tabla
Ventas
ya está en 3NF porque no hay dependencias transitivas.
- La tabla
Resumen del Ejercicio 2
Hemos identificado que la tabla inicial no estaba en 2NF ni en 3NF debido a dependencias parciales y transitivas. Después de normalizar, hemos creado tres tablas (Clientes
, Productos
, Ventas
) que están en 3NF.
Ejercicio 3: Desnormalización
Descripción del Ejercicio
Dada la siguiente base de datos normalizada, desnormalízala para mejorar el rendimiento de consultas específicas.
Tablas Iniciales
Tabla Clientes
:
ClienteID | ClienteNombre | ClienteDireccion |
---|---|---|
1 | Carlos Ruiz | Calle Luna 456 |
2 | Laura Méndez | Av. Sol 789 |
Tabla Productos
:
ProductoID | ProductoNombre | Precio |
---|---|---|
301 | Monitor | 200 |
302 | Teclado | 50 |
Tabla Compras
:
CompraID | ClienteID | ProductoID | Fecha | Cantidad |
---|---|---|---|---|
1 | 1 | 301 | 2023-02-01 | 2 |
2 | 2 | 302 | 2023-02-02 | 1 |
3 | 1 | 302 | 2023-02-03 | 3 |
Solución
-
Desnormalización:
- Combinar las tablas
Clientes
,Productos
yCompras
en una sola tabla para mejorar el rendimiento de consultas que requieren unir estas tablas frecuentemente.
Tabla
ComprasDesnormalizada
:CompraID ClienteID ClienteNombre ClienteDireccion ProductoID ProductoNombre Precio Fecha Cantidad 1 1 Carlos Ruiz Calle Luna 456 301 Monitor 200 2023-02-01 2 2 2 Laura Méndez Av. Sol 789 302 Teclado 50 2023-02-02 1 3 1 Carlos Ruiz Calle Luna 456 302 Teclado 50 2023-02-03 3 - Combinar las tablas
Resumen del Ejercicio 3
Hemos desnormalizado las tablas Clientes
, Productos
y Compras
en una sola tabla ComprasDesnormalizada
para mejorar el rendimiento de consultas específicas, a costa de introducir redundancia en los datos.
Conclusión
En esta sección, hemos practicado la identificación de formas normales y el proceso de normalización hasta la Tercera Forma Normal (3NF). También hemos explorado la desnormalización y sus usos para mejorar el rendimiento de consultas específicas. Estos ejercicios te ayudarán a aplicar los principios de normalización en escenarios del mundo real y a tomar decisiones informadas sobre cuándo y cómo desnormalizar una base 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