PL/SQL

Fermé
benabidsou Messages postés 1 Date d'inscription samedi 14 mai 2016 Statut Membre Dernière intervention 14 mai 2016 - 14 mai 2016 à 11:59
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 - 15 mai 2016 à 12:39
salut je suis débutante en pl/sql merci de vous m'aider

Le schéma relationnel suivant correspond à la base de données d’une agence de voyage. Les relations décrivent les
circuits touristiques proposés par l'agence. Chaque circuit comporte plusieurs étapes. La base contient aussi les lieux
touristiques associés aux étapes des circuits.
Circuit( identifiant INTEGER, descriptif VARCHAR, villeDepart VARCHAR,
paysDepart VARCHAR, villeArrivee VARCHAR, paysArrivee VARCHAR,
dateDepart DATE, nbPlaceDisponible INTEGER, duree INTEGER,
prixInscription INTEGER )
Un circuit possède un identifiant et un descriptif. Il est réalisé entre une ville de départ et une ville d'arrivée. Il a une
durée exprimée en jours et coûte le prix prixInscription (prix non-incluant le coût des visites de lieux touristique).
Etape( #identifiant INTEGER, ordre INTEGER, #nomLieu VARCHAR,
#ville VARCHAR, #pays VARCHAR, dateEtape DATE, duree INTEGER )
Un circuit correspond à une liste de lieux à visiter (étapes) dans un certain ordre. Chaque étape référence un lieu à
visiter. L'étape a lieu à la date dateEtape et dure le temps durée (en minutes).
LieuAvisiter( nomLieu VARCHAR, ville VARCHAR, pays VARCHAR,
descriptif VARCHAR, prix INTEGER )
Un lieu (un site, un monument, un musée) à visiter possède un nom, un descriptif et est situé dans une ville. La visite
coûte un certain prix (pouvant être égal à 0).

1)
Écrire une procédure PL/SQL modifiant chaque ville de départ d’un circuit afin qu’elle soit identique à la ville
de la première étape du circuit.
Vous pouvez vous servir d'un curseur pour parcourir toutes les villes de première étape d'un circuit (ordre de
l'étape est 1).

2)Définir une fonction PL/SQL retournant le prix d'un circuit touristique complet, c'est à dire le prix d'inscription
du circuit auquel on additionne le prix de la visite de chaque étape du circuit.
3) Une personne souhaite consulter tous les circuits complets compatibles avec son budget, ses dates de vacances
(le client indique la date de début de ses vacances ainsi que la date de fin) et pour lesquels il reste au moins N
places disponibles. Écrire une procédure affichant l'identifiant du circuit, son prix, sa date de début et sa durée
pour tous les circuits satisfaisant les contraintes exprimées par le client.
4) Écrire une procédure permettant de supprimer une étape d’un circuit. Le numéro d’ordre de l’étape à supprimer
est donné en paramètre de la procédure. Le numéro d’ordre des autres étapes est modifié de telle sorte que la
numérotation soit continue (pour tout N>1, l’existence d’une étape d’ordre N implique qu’il existe une étape
d’ordre N-1 dans la table Etape).
5) Utiliser un curseur paramétré (en Oracle) pour afficher pour chacun des futurs circuits touristiques la liste des
clients ayant déjà effectué une réservation (nom, prénom et nombre de place réservé pour chaque client).
Exemple de résultat que l’on pourra obtenir:
Circuit 9: Bodrum-Kusadasi, 25-OCT-08
King Richard: 1
Allen Tim: 4
...
Circuit 4: Houston-San Antonio, 29-OCT-08
Tiger Scott: 5
Smith Adam: 5
...
6) Écrire une procédure permettant à un client de réserver N places pour un circuit touristique ainsi que pour
toutes ses étapes.

1 réponse

jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
15 mai 2016 à 12:39
0