Ejercicio 40: Identificación de Claves Foráneas y Restricciones de Integridad en Bases de Datos Relacionales
Este ejercicio tiene como objetivo que los estudiantes identifiquen claves foráneas en distintos esquemas de bases de datos y propongan restricciones de integridad. Se presentarán múltiples contextos de bases de datos empresariales y académicas, lo que permitirá aplicar conocimientos sobre dependencias referenciales, normalización y reglas de negocio.
Objetivos
- Identificar claves primarias y foráneas en esquemas de bases de datos.
- Proponer restricciones de integridad para mantener la coherencia de los datos.
Entrada de Datos
- Esquema de base de datos de procesamiento de pedidos.
- Esquema de base de datos de viajes de vendedores.
- Esquema de base de datos de inscripción de estudiantes.
- Esquema de base de datos de ventas de automóviles.
Parte A: Base de Datos de Procesamiento de Pedidos
Una empresa necesita gestionar pedidos, clientes, productos, envíos y almacenes. El esquema de la base de datos es el siguiente:
CUSTOMER(Cust#, Cname, City)
ORDER(Order#, Odate, Cust#, Ord_amt)
ORDER_ITEM(Order#, Item#, Qty)
ITEM(Item#, Unit_price)
SHIPMENT(Order#, Warehouse#, Ship_date)
WAREHOUSE(Warehouse#, City)
Tareas
- Identificar claves foráneas y restricciones de integridad.
- Suponer que una orden puede contener múltiples ítems y que puede enviarse desde distintos almacenes.
- Proponer restricciones adicionales.
Parte B: Base de Datos de Viajes de Vendedores
Una oficina de ventas realiza un seguimiento de los viajes de sus vendedores y los gastos asociados. El esquema es el siguiente:
SALESPERSON(Ssn, Name, Start_year, Dept_no)
TRIP(Ssn, From_city, To_city, Departure_date, Return_date, Trip_id)
EXPENSE(Trip_id, Account#, Amount)
Tareas
- Especificar las claves foráneas, indicando su relación con las claves primarias correspondientes.
- Suponer que un viaje puede estar asociado a múltiples cuentas de gastos.
- Proponer restricciones de integridad.
Parte C: Base de Datos de Inscripción de Estudiantes
Una universidad necesita gestionar la inscripción de estudiantes en cursos y el material de estudio utilizado en cada uno. La base de datos tiene el siguiente esquema:
STUDENT(Ssn, Name, Major, Bdate)
COURSE(Course#, Cname, Dept)
ENROLL(Ssn, Course#, Quarter, Grade)
BOOK_ADOPTION(Course#, Quarter, Book_isbn)
TEXT(Book_isbn, Book_title, Publisher, Author)
Tareas
- Identificar claves primarias y foráneas.
- Analizar cómo se relacionan los cursos, la inscripción de estudiantes y los libros de texto.
- Proponer restricciones de consistencia.
Parte D: Base de Datos de Ventas de Automóviles
Un concesionario de automóviles lleva un registro de las ventas, vendedores y equipamiento opcional instalado en los vehículos vendidos. La base de datos tiene la siguiente estructura:
CAR(Serial_no, Model, Manufacturer, Price)
OPTION(Serial_no, Option_name, Price)
SALE(Salesperson_id, Serial_no, Date, Sale_price)
SALESPERSON(Salesperson_id, Name, Phone)
Tareas
- Definir las claves foráneas, explicando las relaciones entre tablas.
- Poblar las relaciones con algunos ejemplos de datos.
- Proporcionar un ejemplo de inserción que viole una restricción de integridad y otro que cumpla con todas las reglas.
Preguntas de Análisis Final
- ¿Cómo se deben definir las claves primarias y foráneas en cada base de datos?
- ¿Qué restricciones adicionales (como unicidad o no nulidad) ayudarían a mantener la coherencia de los datos?
- ¿Qué tipo de problemas podrían surgir si no se respetan estas restricciones?
Entrega Esperada
- Identificación completa de claves primarias y foráneas.
- Propuestas de restricciones de integridad.
- Justificación de cada decisión tomada.
- Ejemplo de violación y cumplimiento de integridad en la base de datos de ventas de automóviles.