0% ont trouvé ce document utile (0 vote)
3 vues3 pages

TP PL/SQL : Gestion des réservations hôtelières

Ce document présente un TP sur PL/SQL axé sur la gestion d'une base de données de réservations d'hôtels en Algérie. Il décrit la structure de la base de données, les étapes de connexion et de création d'utilisateur, ainsi que des requêtes et blocs PL/SQL à réaliser pour manipuler les données. Les exercices incluent des requêtes sur les hôtels, les réservations, et l'utilisation de PL/SQL pour des calculs et affichages spécifiques.

Transféré par

Abdou Abdou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues3 pages

TP PL/SQL : Gestion des réservations hôtelières

Ce document présente un TP sur PL/SQL axé sur la gestion d'une base de données de réservations d'hôtels en Algérie. Il décrit la structure de la base de données, les étapes de connexion et de création d'utilisateur, ainsi que des requêtes et blocs PL/SQL à réaliser pour manipuler les données. Les exercices incluent des requêtes sur les hôtels, les réservations, et l'utilisation de PL/SQL pour des calculs et affichages spécifiques.

Transféré par

Abdou Abdou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bases de données avancées

TP : PL/SQL
[Link] ([Link] @[Link] ,
[Link]@[Link])

Objectif : le but de ce TP est de faire un rappel sur les requêtes relationnelles et de pratiquer le PL/SQL

Partie1 : description de la base


La base de données Reservations_Hotels (voir le MCD Figure1) permet de gérer les réservations de
différents hôtels en Algérie. Elle inclut les informations sur les hôtels, les chambres disponibles, les clients
et les réservations effectuées. Un système de frais de retard est intégré pour calculer automatiquement les
montants dus si un client dépasse l’heure prévue de départ. Les frais de retard d’une heure diffèrent d’un
hôtel à un autre. Son tarif est dans le champ FraisRetardHeure de la table Hotel.

Schéma logique de données de la base :


Hotel(IdHotel, NomHotel, Adresse, Telephone, NbEtoiles, FraisRetardHeure)
Chambre(IdChambre, CodeChambre, IdHotel#, TypeChambre, TarifNuitée, Statut)
Client(IdClient, Nom, Prenom, Telephone)
Reservation(IdReservation, IdClient#, IdChambre#, DateDebut, DateFin, HDepartPrevue,
HDepartReelle, MontantTotal))

Figure 1: schéma conceptuel de base Reservations_Hotels

Le script de création de la base avec le jeu de données se trouve dans le fichier Script_BDD_Resev_Hotels
déposé sur Teams ou fourni dans la séance de TP
Partie 2 : Connexion et création de l’utilisateur pour TPPartie1

1. Se connecter dans sqldevelopper (voir figure 2) avec l’utilisateur sys avec le role sysdba
ou system et le mot de passe crée lors de l’installation. Nommer la connexion
Hotels_SYS

Figure 2: Connexion avec l'utilisateur sys

2. Dans l’éditeur SQL, créer un nouvel utilisateur nommé TPPartie1. Cet utilisateur va

contenir le schéma de la base Hôtel qui va être utilisé pour les TPs PLSQL et Trigger.

CREATE USER TPPartie1 IDENTIFIED BY TPPartie1;

GRANT dba TO TPPartie1;

Créer une nouvelle connexion nommée TPPartie1 avec l’utilisateur que vous venez de créer et se
connecter. Exécuter le script de création de la base avec jeux de donner qui se trouve dans le
fichier Script_BDD_Resev_Hotels.Sql
Partie 3 : requêtes sur la base et PLSQL
Rappel sur les requêtes
1. Donnez la requête qui retourne les hôtels de 5 Etoiles
2. Afficher toutes les réservations avec nom du client, chambre et hôtel :
3. Modifier le montant de la réservation 1 à 20000 ;
4. Insérer une nouvelle réservation pour le client Ali Kaci dans la chambre N101 de l’Hôtel
El Aurassi (IdHotel = 1), pour le séjour du 5 octobre 2025 au 8 octobre 2025. Les
colonnes heure de départ prévue et montant total peuvent rester NULL, car elles seront
calculées dans un autre TP par un trigger.
5. Nom et prénom des cliens ayant réservé une Suite :
6. Donnez la requête qui retourne, pour chaque hôtel, son IdHotel, NomHotel et le nombre
de réservations totale effectuées.
PL/SQL
7. Écrire un bloc PL/SQL qui permet de calculer et d’afficher le nombre de chambres de
l’hôtel « Hôtel El Aurassi ». RQ : pour tout affichage dans la console il faudra précéder le
bloc avec Set SERVEROUTPUT ON;

8. Écrire un bloc PL/SQL qui permet d’afficher la réservation qui a le code : 1 de la manière
suivante :
« La réservation 1 est à l’hôtel : NOMHOTEL, type de chambre : TYPECHAMBRE,
pour NBREJOURS jours. »
9. On voudrait maintenant lire le numéro de réservation dynamiquement en utilisant une variable
d’environnement. Afin d’afficher le nom du client et le montant de la réservation comme suit :
Par exemple, si on saisit la réservation 1, l’affichage sera : Le client Benali Karim a payé 20000
DZD pour la réservation.
10. Reprendre la question 3 en ajoutant une indication qui permet de savoir, à chaque
exécution, combien de fois la table Reservation a été consultée.
Par exemple, si on exécute deux fois le bloc PL/SQL, le message affichera que la table
Reservation a été consultée 2 fois (car chaque exécution du bloc correspond à un
SELECT sur la table Reservation).
11. Écrire le bloc PL/SQL qui donne la prochaine date de disponibilité d'une chambre
d'hôtel.

Vous aimerez peut-être aussi