Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio2:exercice_d_application [2024/11/28 08:51] – [D-Procédures stockées] dthevenot | sio2:exercice_d_application [2025/03/25 08:49] (Version actuelle) – [Contexte] dthevenot | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
La société de transport de personnes TOPCHRONO souhaite mettre en place une plateforme extranet à destination des particuliers. L’application proposera des services similaires à ceux proposés par la plateforme UBER : | La société de transport de personnes TOPCHRONO souhaite mettre en place une plateforme extranet à destination des particuliers. L’application proposera des services similaires à ceux proposés par la plateforme UBER : | ||
- 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 ! | - 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, à 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. | + | - TOPCHRONO effectue une qualification de tous les chauffeurs |
- 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/ | - 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/ | ||
- Les chauffeurs peuvent consulter les courses qui sont dans leur périmètre d’intervention. Si la course est dans ce périmètre, | - Les chauffeurs peuvent consulter les courses qui sont dans leur périmètre d’intervention. Si la course est dans ce périmètre, | ||
Ligne 19: | Ligne 19: | ||
===== B-Implanter la base de données à partir du script fourni. ===== | ===== B-Implanter la base de données à partir du script fourni. ===== | ||
===== C-Fonctions stockées ===== | ===== C-Fonctions stockées ===== | ||
- | Implémenter la fonction stockée **tarifCommission(distance INT) AS DECIMAL** qui retourne la commission pratiquée en fonction de la longueur d’un trajet : | + | **1)** |
< | < | ||
CREATE FUNCTION tarifCommission(distance INT) RETURNS DECIMAL DETERMINISTIC | CREATE FUNCTION tarifCommission(distance INT) RETURNS DECIMAL DETERMINISTIC | ||
Ligne 29: | Ligne 29: | ||
- Quel résultat obtenez-vous ? Est-ce normal ? | - Quel résultat obtenez-vous ? Est-ce normal ? | ||
- | + | **2)** | |
- | Implémenter la fonction stockée **tarifChauffeur(numChauffeur INT, distance INT) qui retourne le tarif*** pratiqué par un chauffeur en fonction de la longueur d’un trajet. | + | |
- Présenter l’algorithme avant de coder | - Présenter l’algorithme avant de coder | ||
- Programmer la fonction et la tester avec un jeu d' | - Programmer la fonction et la tester avec un jeu d' | ||
- | ***Remarque** : partie fixe + partie variable selon la distance | + | ***Remarque** : tarif d'un chauffeur = |
===== D-Procédures stockées ===== | ===== D-Procédures stockées ===== | ||
- | Coder la procédure stockée **tarifChauffeurs(distance INT)** | + | **1)** |
* Présenter l’algorithme avant de coder | * Présenter l’algorithme avant de coder | ||
+ | * Utiliser la fonction tarifChauffeur définie précédemment | ||
- | Coder la procédure stockée **validerInscription(numChauffeur INT)** permettant de valider(accepter) l’inscription d’un chauffeur. | + | **2)** |
* Présenter l’algorithme avant de coder | * Présenter l’algorithme avant de coder | ||
**Remarques :** | **Remarques :** | ||
Ligne 45: | Ligne 45: | ||
- on ne valide une inscription que si l' | - on ne valide une inscription que si l' | ||
- validation en trois temps : mise à jour du type de la personne correspondante + enregistrement du chauffeur + mise à jour du champ acceptationDate | - validation en trois temps : mise à jour du type de la personne correspondante + enregistrement du chauffeur + mise à jour du champ acceptationDate | ||
- | **Remarque sur le type d’une personne :** une personne est soit « Passager » soit « Inscription » pour une personne qui a fait une demande d’inscription pour devenir chauffeur sans être déjà passager. Elle devient « Chauffeur » si sa demande d' | + | **Remarque sur le type d’une personne :** une personne est soit « Passager » (par défaut) |
__Exemple d’utilisation de WHILE pour parcourir un jeu d’enregistrements :__ | __Exemple d’utilisation de WHILE pour parcourir un jeu d’enregistrements :__ |