Sunteți pe pagina 1din 3

Ministère de l’Enseignement Supérieur ‫وزارة التعـلــيم العــالي‬

Institut Supérieur ‫المعهد العــــــــــــــــــــــــالي‬


Exercice 1 Des Etudes Technologiques ‫للدراسات التكنولوجية‬
De Mahdia ‫بالمهـديـة‬

Examen SGBD
Controle 2007

Niveau et Filière : 4ème Niveau Informatiques de Gestion Classe : IG 41


Enseignants : H.BOUKTHIR
Durée : 2 heures
Documents : non autorisées Nombre de pages : 2

Enoncé
On donne ci-dessous le modèle relationnel de données décrivant la gestion d'une grande chaîne
hôtelière. Des clients émettent des réservations pour un séjour dans un hôtel donné, et ces
réservations portent sur des catégories de chambre. S'il y en a de disponibles, et sur réception
des demandes, une ou des chambres leur sont alors réservées.

Clients (num_cli, nom_cli, prenom_cli, adresse_cli, ville_cli, Téléphone_cli)


Régions (num_rég, nom_rég)
Hôtels (num_hotel, nom_hotel, téléphone_hotel, ville_hotel, nb_étoiles, num_rég#)
Catégories (num_catég, libellé_catég, nb_place, prix, carectéristiques)
Chambres (code_chambre, numéro, nb_lits, num_catég#, num_hotel#)
Demandes (num_cli#, num_hotel#, num_catég#, date_demande, nb_personnes,
date_début_dem, date_fin_dem)
Réservations (num_cli#, num_hotel#, code_chambre#, date_réservation, nb_personnes,
date_début_res, date_fin_res)

Exercice 1 (4 points)

Ecrire une fonction en PL/SQL qui calcule le Prix total d’un séjour correspondant à des
réservations données par un client donné par son numéro et le numéro de l’hôtel demandé.
Durée de séjour : Durée de séjour dans une chambre réservée
Prix Total de séjour = Somme (Durée de séjour * Prix de chambre* Nombre de personnes)

Exercice 2 (4 points)

1
Ecrire une procédure en PL/SQL qui permet de faire des statistiques, pendant une période
donnée par une date début et une date fin, pour un hôtel donné par son numéro :
Ces statistiques portent sur le nombre des séjours, la durée totale des séjours, le nombre total
des chambres réservées, le nombre total de lits réservés et le revenu de l’hôtel (prix total des
séjours).
Insérer les résultats de statistiques dans une table déjà créée :
Statistiques_hotel (nom_hotel, date_début, date_fin, nb_séjours, durée_séjours,
nb_chambres_res, nb_lits_res, prix_séjours)

Exercice 3 (4 points)
Ecrire une procédure en PL/SQL qui permet de faire des statistiques, pendant une période
donnée par une date début et une date fin, pour une catégorie de chambre donnée par son
numéro : ces statistiques portent sur le nombre de séjours, la durée totale des séjours, le
nombre total des chambres réservées, le nombre total de lits réservés et le revenu de la
catégorie (prix total des séjours).
Insérer les résultats de statistiques dans une table déjà créée :
Statistiques_catégorie (libellé_catég, date_début, date_fin, nb_séjours, durée_séjours,
nb_chambres_res, nb_lits_res, prix_séjours)

Exercice 4 (4 points)
Ecrire une procédure en PL/SQL qui permet, pour une demande reçue d’un client donné par
son numéro, le numéro de l’hôtel et le numéro de catégorie de chambre demandée, de
déterminer la liste des chambres libres correspondantes à cette demande (concernant la période
et le nombre de personne).
Insérer les résultats de recherche dans une table déjà créée :
Chambres_libres (code_chambre, numéro, libellé_catég, nb_lits, nom_hotel, date_début,
date_fin)

Exercice 5 (4 points)
1) Ecrire un Trigger en PL/SQL qui ajoute une ligne dans la table réservation qui
correspond à chaque nouvelle ligne insérer ou modifiée dans la table demande après
avoir vérifier la disponibilité des chambres en faisant appel à la procédure précédente.
La date de réservation est la date système (sysdate). Les date début et fin de réservation
sont les mêmes que la demande.

2
2) Ecrire un Trigger en PL/SQL qui vérifie avant chaque insertion ou modification dans la
table réservation que la date début et inférieure à la date fin, en cas d’erreur afficher un
message sur l’écran en utilisant : raise_application_error (code erreur, message).

S-ar putea să vă placă și