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

  1. 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 y ClienteDireccion dependen solo de PedidoID, 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 de ClienteNombre, que no es una clave primaria.
  2. 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
  3. 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.

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

  1. 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 de ClienteID, 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 de Cantidad y PrecioUnitario, que no son claves primarias.
  2. 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
  3. 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.

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

  1. Desnormalización:

    • Combinar las tablas Clientes, Productos y Compras 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

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.

© Copyright 2024. Todos los derechos reservados