Exercice 2 · Bac Numérique et Sciences Informatiques Mayotte-Liban 2022 (jour 2)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 2 (2022)
Énoncé
Cet exercice porte sur les bases de données.
Dans cet exercice, on pourra utiliser les mots clés suivants du langage SQL: SELECT, FROM, WHERE, JOIN, ON, INSERT INTO, UPDATE, VALUES, OR, AND.
La gestion d'un hôtel est faite à l'aide d'une base de données dont voici le schéma relationnel:
Chambres ( NumChambre, Prix, lits)
Clients ( NumClient, Nom, Prenom, Telephone)
Reservations ( NumRes, #NumClient, #NumChambre, DateArr, DateDep)
Dans ce schéma, les clés primaires sont soulignées et les clés étrangères sont précédées du symbole #.
1.
Expliquer pourquoi le couple (NumClient, NumChambre) ne pouvait pas servir de clé primaire pour la relation Reservations.
2.
a.
Écrire une requête SQL donnant la liste des noms et prénoms des clients.
b.
Écrire une requête SQL donnant le numéro de téléphone d'une cliente s'appelant "Grace Hopper".
3.
Dans cette base de données, les dates DateArr, DateDep sont au format chaîne de caractères 'aaaa-mm-jj'. Par exemple, la chaîne '2020-10-01' représente le 1 er octobre 2020.
On peut alors les manipuler en utilisant la fonction date(). Par exemple:
SELECT *
FROM Reservations
WHERE date(DateArr) < date('2020-10-01')
permet de donner toutes les réservations dont la date d'arrivée est avant le 1 er octobre 2020. Un client nommé "JOHN DOE" veut réserver une chambre pour la nuit du 28 décembre 2024.
Écrire une requête donnant la liste des numéros des chambres occupées à cette date.
4.
a.
Le prix de la chambre 404 a changé et s'élève désormais à 75 euros. Quelle requête faut-il faire pour modifier ce prix dans la base de données ?
b.
Écrire une requête SQL affichant les numéros des chambres où a séjourné "Edgar Codd".

Corrigé
Corrigé proposé par AprenAI (non officiel)
1. Expliquer pourquoi le couple (NumClient, NumChambre) ne pouvait pas servir de clé primaire pour la relation Reservations.
Réponse : Un même client peut réserver la même chambre plusieurs fois à des dates différentes.
2. a. Écrire une requête SQL donnant la liste des noms et prénoms des clients.
Réponse : ```sql SELECT Nom, Prenom FROM Clients; ```
2. b. Écrire une requête SQL donnant le numéro de téléphone d'une cliente s'appelant "Grace Hopper".
Réponse : ```sql SELECT Telephone FROM Clients WHERE Nom = 'Hopper' AND Prenom = 'Grace'; ```
Les réponses des 3 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 3 · Mayotte-Liban 2022 (jour 1)