Ejercicios de modelado lógico relacional de bases de datos · Ejercicio: (avanzado) Concesionario

Ejercicio: (avanzado) Concesionario

Puedes preparar tu diagrama. .

Enunciado #

Un concesionario necesita gestionar su catálogo e inventario de vehículos, los distribuidores, los clientes y las ventas. También debe registrar el financiamiento elegido en aquellas ventas que lo necesiten.

Datos que debes almacenar #

  • Vehiculo: id_vehiculo (entero, identificador), marca (texto), modelo (texto), anio (entero), precio (decimal), tipo (texto; sedán, SUV, camioneta, etc.) y cantidad_inventario (entero).
  • Distribuidor: id_distribuidor (entero, identificador), nombre (texto), ubicacion (texto), telefono (texto) y email (texto).
  • Cliente: id_cliente (entero, identificador), nombre (texto), apellido (texto), direccion (texto), telefono (texto) y email (texto).
  • Venta: id_venta (entero, identificador), fecha_venta (fecha), precio_venta (decimal), id_cliente (entero), id_vehiculo (entero) e id_distribuidor (entero).
  • Financiamiento: id_financiamiento (entero, identificador), tipo (texto), tasa_interes (decimal), plazo_meses (entero), monto_financiado (decimal) e id_venta (entero).

Reglas del negocio #

  1. Cada venta corresponde a un cliente, a un vehículo del catálogo y a un distribuidor. Cada uno de ellos puede aparecer en varias ventas.
  2. Cada venta registra una unidad y conserva su precio de venta, aunque cambie el precio del catálogo.
  3. Una venta puede no tener financiamiento o tener uno solo. Todo financiamiento pertenece obligatoriamente a una venta.
  4. Determina qué restricción necesita Financiamiento.id_venta para impedir dos financiamientos de la misma venta.
  5. Los importes, la tasa y el inventario no pueden ser negativos y el plazo debe ser positivo; estas reglas se validarían al implementar la base de datos.

Aclaración del documento: como se almacena una cantidad en inventario y el mismo vehículo aparece en varias ventas, Vehiculo representa una referencia del catálogo (marca, modelo, año y tipo), no una unidad física identificada por bastidor. El inventario se gestiona globalmente; no se pide un desglose por distribuidor.

Diseña las cinco tablas. La ausencia de financiamiento se representa sin una fila en Financiamiento, no con un financiamiento que tenga la venta nula.

Criterios para el challenge #

Conserva los nombres de tablas y campos indicados; los nombres de campos están escritos sin tildes y con guiones bajos. Los tipos entre paréntesis corresponden a las opciones del editor. Todos los campos son obligatorios (NN), salvo los marcados como opcionales; marca las claves primarias (PK), foráneas (FK) y las restricciones de unicidad que se deducen de las reglas.

Deja desactivados autoincremento, clave alternativa e índice. Deja vacíos el valor por defecto, las acciones ON DELETE y ON UPDATE y, salvo que se indique expresamente, CHECK. Usa los extremos 1 y n, o 1 y 1, en las conexiones; una FK opcional tiene NN desmarcado.

Una PK compuesta identifica por la combinación de sus campos: no marques cada componente como único por separado. Si una FK referencia una PK compuesta, dibuja una conexión por cada pareja de campos; todas juntas representan una única referencia a la misma fila. En una implementación SQL se debe declarar una sola FOREIGN KEY con todas esas columnas, no varias referencias independientes. El editor no comprueba por sí solo las reglas sobre varias filas ni todas las restricciones compuestas.

Cargando actividad al acercarte…