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

  1. Esquema de base de datos de procesamiento de pedidos.
  2. Esquema de base de datos de viajes de vendedores.
  3. Esquema de base de datos de inscripción de estudiantes.
  4. 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

  1. ¿Cómo se deben definir las claves primarias y foráneas en cada base de datos?
  2. ¿Qué restricciones adicionales (como unicidad o no nulidad) ayudarían a mantener la coherencia de los datos?
  3. ¿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.