Ejercicios | Resueltos De Normalizacion De Base De Datos Pdf 211

Autor: Guía Académica de Diseño de Bases de Datos
Nivel: Universitario – Intermedio
Objetivo: Aprender a aplicar las Formas Normales (1FN, 2FN, 3FN, FNBC) mediante ejemplos prácticos con soluciones paso a paso.


Supongamos que tenemos una base de datos de ventas con la siguiente estructura:

| ID_Venta | Fecha_Venta | ID_Cliente | Nombre_Cliente | ID_Producto | Nombre_Producto | Cantidad | Precio_Unitario | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | 2022-01-01 | 1 | Juan Pérez | 1 | Producto A | 2 | 10.00 | | 1 | 2022-01-01 | 1 | Juan Pérez | 2 | Producto B | 3 | 20.00 | | 2 | 2022-01-15 | 2 | María Gómez | 1 | Producto A | 1 | 10.00 |

Solución:

Primera forma normal (1FN):

Segunda forma normal (2FN):

Tercera forma normal (3FN):

La solución es:

Tabla Ventas

| ID_Venta | Fecha_Venta | ID_Cliente | | --- | --- | --- | | 1 | 2022-01-01 | 1 | | 2 | 2022-01-15 | 2 |

Tabla Detalle_Ventas

| ID_Venta | ID_Producto | Cantidad | Precio_Unitario | | --- | --- | --- | --- | | 1 | 1 | 2 | 10.00 | | 1 | 2 | 3 | 20.00 | | 2 | 1 | 1 | 10.00 |

Tabla Clientes

| ID_Cliente | Nombre_Cliente | | --- | --- | | 1 | Juan Pérez | | 2 | María Gómez |

Tabla Productos

| ID_Producto | Nombre_Producto | | --- | --- | | 1 | Producto A | | 2 | Producto B |

Contexto: En muchos programas de ingeniería, el curso “Base de Datos 211” o el ejercicio 2.11 de un libro conocido propone un esquema problemático con dependencias funcionales complejas. Aquí presentamos una versión estándar de ese ejercicio.

Table A: Students (Key: Student_ID) | Student_ID | Student_Name | | :--- | :--- | | 1001 | Ana Torres | | 1002 | Luis Rojas | | 1003 | Sofía Vargas |

Table B: Courses (Key: Course_Code) | Course_Code | Course_Name | Professor | Professor_Office | | :--- | :--- | :--- | :--- | | M101 | Math I | Dr. Gomez | Bldg A | | H205 | History | Dr. Perez | Bldg B | | Q110 | Chem | Dr. Liu | Bldg C |

Table C: Enrollments (Key: Student_ID + Course_Code) | Student_ID | Course_Code | Grade | | :--- | :--- | :--- | | 1001 | M101 | 85 | | 1001 | H205 | 90 | | 1002 | M101 | 78 | | 1003 | H205 | 92 | | 1003 | Q110 | 88 |

Analysis: We are doing much better! But look at Table B (Courses). We still have a hidden issue.


Regla: Eliminar dependencias transitivas. Análisis: En la tabla Pedidos, tenemos Nombre_Cliente y Ciudad_Cliente. Estos atributos dependen de ID_Cliente, no de Num_Pedido. Num_Pedido -> ID_Cliente -> Nombre_Cliente. Esto es una dependencia transitiva. Autor: Guía Académica de Diseño de Bases de

Acción: Separamos la información de los clientes.

Tabla Final: Clientes | ID_Cliente (PK) | Nombre_Cliente | Ciudad_Cliente | | :--- | :--- | :--- | | C01 | Ana Torres | Madrid | | C02 | Luis Gómez | Barcelona |

Tabla Final: Pedidos | Num_Pedido (PK) | Fecha | ID_Cliente (FK) |

Tabla Final: Productos (Sin cambios desde el paso 2FN)

Tabla Final: Detalle_Pedido (Sin cambios desde el paso 2FN)


La normalización es el proceso de organizar los datos en una base de datos para reducir la redundancia y mejorar la integridad de los datos. El objetivo es dividir tablas grandes en tablas más pequeñas y relacionarlas mediante relaciones (claves foráneas).

A continuación tienes un conjunto de ejercicios resueltos y explicados sobre normalización de bases de datos (hasta 3ª forma normal), listos para convertir a PDF. Cada ejercicio incluye: enunciado, análisis de dependencias funcionales, determinación de claves, cálculo de cierres, identificación de anomalías, descomposición y comprobación de pérdidas y dependencias preservadas. Supongamos que tenemos una base de datos de

| Forma Normal | Condición Principal | |--------------|----------------------| | 1FN | Valor atómico por atributo (sin grupos repetitivos). | | 2FN | Estar en 1FN + dependencia funcional total de atributos no principales respecto a la clave primaria (sin dependencias parciales). | | 3FN | Estar en 2FN + sin dependencias transitivas (un atributo no clave no debe depender de otro no clave). | | FNBC | Para toda dependencia no trivial X → Y, X debe ser superclave. |