Ceci est une ancienne révision du document !
D4-TP03 : Les procédures et fonctions stockées en SQL
Contexte et objectif
TOPCHRONO développe une plateforme de réservation de courses similaire à Uber. L’objectif est de gérer chauffeurs, passagers, trajets et tarifications, avec des règles métier encapsulées dans la base via fonctions et procédures stockées.
Cela permet :
- Performance : calcul direct côté serveur.
- Sécurité : les applis n’accèdent pas aux tables, mais uniquement aux procédures.
- Cohérence métier : mêmes règles de calcul pour toutes les applis (web, mobile).
TOP CHRONO : Règles métier
- La plateforme répertorie les chauffeurs et les passagers. Diverses informations sont conservées à leur sujet : adresse email, prénom, nom, « hash » du mot de passe, etc. Rien n’empêche a priori qu’un chauffeur en repos puisse être passager !
- TOPCHRONO effectue une qualification de tous les chauffeurs et veut en garder une trace, à savoir qu’un chauffeur effectue une inscription préalable. Son inscription n’est « convertie » en un compte chauffeur qu’une fois l’inscription validée. Afin de pouvoir afficher le périmètre d’intervention d’un chauffeur, on souhaite pouvoir conserver son adresse principale sous la forme d’un couple longitude et latitude. Il appartient au chauffeur de choisir son périmètre d’intervention. On suppose que le périmètre d’intervention du chauffeur est un cercle.
- Un passager propose une course en partance d’un lieu et à destination d’un autre lieu. Pour des raisons d’affichage encore, les lieux sont stockés sous la forme de couples longitude/latitude. La course intervient à une date et une heure donnée. Le logiciel se charge de fournir une estimation de la date et de l’heure d’arrivée.
- Les chauffeurs peuvent consulter les courses qui sont dans leur périmètre d’intervention. Si la course est dans ce périmètre, ils peuvent proposer leurs services à titre de candidats. Ils peuvent alors consulter les coordonnées du passager et le contacter. Il appartient au passager de choisir le chauffeur qui réalisera sa course. Pour l’accompagner dans sa décision, grâce à la plateforme, le passager peut consulter le profil des chauffeurs et son tarif. La plateforme fournie, pour chaque chauffeur une estimation du tarif pratiqué ;
- Dans la première version, le tarif du chauffeur est tarif forfaitaire (montant fixe) assorti d’un tarif kilométrique ;
- Pour chaque course, la longueur du trajet est stockée. Elle est arrondie au kilomètre le plus proche. Elle est obtenue grâce à l’API Google Maps. Cette longueur sert de base de calcul à l’estimation du tarif pratiqué par le chauffeur.
- Par ailleurs, TOPCHRONO, société soucieuse de respecter ses partenaires, chauffeurs et passages, prélève une commission d’apporteur d’affaire sur chacune des candidatures des chauffeurs. La commission est un montant fixe fonction de la longueur du trajet. Le montant est fixé au moyen d’un barème progressif (exemple : 5€ si le trajet a une longueur comprise entre 0km et 49km, 9€ s’il est compris entre 50km et 99km, etc.).
Travail préalable - Modélisation de la base de données
- 45min maxi : Modéliser la base de données sous forme d’un diagramme de classes(données et liens entre classes avec multiplicités).
- Rendre votre modèle.
- Récupérer le script de création de la BD.
- 20min maxi : Ajouter un barème dégressif de tarif kilométrique pour préparer une future évolution : fixer un tarif kilométrique dégressif, à savoir diminuant (ou augmentant) en fonction de la longueur du trajet, rendre votre proposition qui ne sera pas implantée pour l'instant dans la base de données.
Note: Implanter le script de création de la base de données fourni pour faire le travail suivant