Sujet 3 : Gestion de trains (D3/D5/AI23)
Hypothèses
Votre client est une société de chemins de fer, qui souhaite mettre en place un système pour gérer ses gares, ses trains, ses lignes de trains et ses billets. Les gares ont un nom, une adresse, une ville, et une zone horaire (GMT). Il est possible que plusieurs gares aient le même nom. Cependant, les noms des gares d'une même ville sont tous différents.
Les trains sont caractérisés par un numéro, et peuvent être de trois types : un TGV, un TER ou un INTERCITES. Pour les TGV on enregistrera sa vitesse maximale et la disponibilité d'un wagon-bar. On gardera aussi pour les TGV, mais aussi pour les TER,le nombre de places maximal en première et en seconde classe.
La société gère des lignes de trains qui relient une gare de départ à une gare terminus. Sur chaque ligne sont programmés un ou plusieurs voyages. A un voyage sont associées des heures de départ et d'arrivée dans chaque gare qu'il dessert, en sachant qu'il ne s'arrête pas forcément dans toutes les gares de la ligne. Les voyages sont programmés de manière périodique selon un calendrier hebdomadaire (par exemple, on programme un train Paris-Compiègne à 10 heures du matin, chaque jour sauf le dimanche, sur la période du 01/02/2018 au 20/04/2018). Néanmoins, il est possible d'avoir des dates d'exception (jours fériés par exemple) où on supprime/ajoute des voyages. Les voyages d'une même ligne sont assurés par un type de train spécifique.
La réservation de billet est faite par un voyageur, dont on veut garder le nom, prénom, adresse, numéro de téléphone, et le moyen de paiement utilisé pour le billet (carte bleue, espèce, chèque, etc.). Un billet peut être composé de plusieurs trajets. Le billet comporte pour chaque trajet une gare et une heure de départ, une gare et une heure d'arrivée, une durée, ainsi que le numéro de train et le numéro de place. Qui plus est, il est possible de prendre avec le billet une assurance pour pouvoir l'annuler ou modifier les dates gratuitement, autrement, la modification n'est pas possible et 20% du prix du billet est retenu lors l'annulation. Lors de la réservation du billet, le système de réservation peut proposer des adresses d'hôtels à proximité de la gare d'arrivée du voyageur, ainsi que des taxis ou encore des informations sur les transports publics.
Il existe deux types de voyageurs : les voyageurs occasionnels et les voyageurs réguliers, qui ont une carte numérotée et un statut (bronze, silver, gold, platine...).
Besoins
Développer une base de données permettant d'assurer cette gestion de trains. Implémentez trois requêtes complexes (à valider par le client) sur cette base de données.