Hola a todos, hoy vamos a practicar con ejercicios modelo entidad relacion sobre una base de datos de una empresa de alquiler de vehiculos.
Antes de comenzar, recuerda que tenemos un curso de modelo entidad relacion que puedes revisar antes de hacer ejercicios, te lo dejo por aquí.
Enunciado
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles teniendo en cuenta que:
Un determinado cliente puede tener en un momento dado hechas varias reservas.
De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. Además dos clientes se diferencian por un código único.
Cada cliente puede ser avalado por otro cliente de la empresa.
Una reserva la realiza un único cliente pero puede involucrar a varios coches.
Es importante registrar la fecha de inicio y final de la reserva, el precio del alquiler de cada uno de los coches, los litros de gasolina en el deposito en el momento de realizar la reserva, el precio total de la reserva y un indicador de si el coche o los coches han sido entregados.
No se mantienen los datos de reservas anteriores.
Todo coche tiene siempre asignado un determinado garaje que no puede cambiar. De cada coche se requiere la matricula, el modelo, el color y la marca.
Cada reserva se realiza en una determinada agencia.
Proceso
Un determinado cliente puede tener en un momento dado hechas varias reservas.
Detectamos dos entidades, cliente y reserva, como un cliente puede realizar varias reservas, ponemos al lado de reserva 0,N. Entendemos que puede no realizar reservas.
De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. Además dos clientes se diferencian por un código único.
Cada cliente puede ser avalado por otro cliente de la empresa.

Asignamos los atributos a la entidad cliente, codigo será identificativo y DNI será único.
Como un cliente puede ser avalado por otro, lo representamos como una relación reflexiva.
Una reserva la realiza un único cliente pero puede involucrar a varios coches.
Es importante registrar la fecha de inicio y final de la reserva, el precio del alquiler de cada uno de los coches, los litros de gasolina en el deposito en el momento de realizar la reserva, el precio total de la reserva y un indicador de si el coche o los coches han sido entregados.
No se mantienen los datos de reservas anteriores.

Ya sabemos que un solo cliente hace la reserva, la cardinalidad entre cliente y reserva será 1:N.
Asignamos los atributos a la entidad reserva, código será el atributo identificativo y el precio total será un campo calculado.
Tenemos una nueva entidad llamada coche.
El precio del alquiler lo dejamos entre medias de la reserva y el coche, porque realmente no es ni es de la reserva ni es del coche.
La cardinalidad entre coche y reserva será 1:N ya que una reserva involucra mas de un coche.
Lo de que no se mantienen reservan anteriores lo indicamos con el (1,1) haciendo que siempre hace referencia a la misma reserva.
Todo coche tiene siempre asignado un determinado garaje que no puede cambiar. De cada coche se requiere la matricula, el modelo, el color y la marca.

Detectamos una nueva entidad llamada garaje.
Le asignamos los atributos del coche y del garaje.
La cardinalidad entre las entidades será de 1:N porque un coche se asigna a una plaza de garaje y en un garaje habrá varios coches.
Cada reserva se realiza en una determinada agencia.

Detectamos una nueva entidad llamada agencia.
Le asignamos los atributos de la agencia.
La cardinalidad entre las entidades será de 1:N porque una agencia gestiona varias reservas y una reserva es gestionada por una agencia.
Resultado final

Te dejo el Github con todo el contenido: https://github.com/DiscoDurodeRoer/curso-disenio-base-de-datos
Te dejo un video donde lo explicamos paso a paso.
¿Quieres mas ejercicios? Te dejo otro video.
Espero que os sea de ayuda, si tenéis dudas, preguntad, estamos para ayudarte.
Deja una respuesta