Sujet
Corrigé (réponses attendues)
Les réponses données ci-dessous ne sont pas celles issues d’un corrigé officiel.Question 1a – Nous savons qu’une clé primaire est un attribut ou un n-upplet d’attributs qui possède une valeur unique pour chacune des occurrences de la table.
Or on peut imager qu’un même client réserve deux fois ou plus la même chambre.
Donc le couple (NumClient, NumChambre) ne peut pas servir de clé primaire pour la relation Reservations puisqu’il y aurait alors plusieurs occurences pour lesquelles ce couple aurait les mêmes valeurs.
Question 1b – Une clé étrangère est un attribut dont les valeurs des occurrences font référence aux valeurs d’un attribut déclaré comme clé primaire dans une autre table.
Question 2a
SELECT Nom, Prenom FROM client;
Question 2b
SELECT Telephone FROM client WHERE Nom = 'Hopper' and Prenom = 'Grace';
Question 3
A une date donnée, une chambre est occupée si la date d’arrivée est supérieure ou égale à celle-ci ET la date de départ inférieure ou égale à celle-ci.
Par exemple :
– une chambre réservée du 2023/02/08 au 2023/02/10 est occupée à la date du 2023/02/09
– une chambre réservée du 2023/02/08 au 2023/02/10 est occupée à la date du 2023/02/08
– une chambre réservée du 2023/02/08 au 2023/02/10 est occupée à la date du 2023/02/10
– une chambre réservée du 2023/02/08 au 2023/02/10 est libre à la date du 2023/02/07
– une chambre réservée du 2023/02/08 au 2023/02/10 est libre à la date du 2023/02/11
SELECT NumChambre FROM reservation WHERE date(DateArr) >= date('2024-12-28') and date(DateDep) <= date('2024-12-28');
Question 4a
UPDATE chambre SET Prix = 75 WHERE NumChambre = 404;
Question 4b
SELECT NumChambre FROM reservation JOIN client ON reservation.NumClient = client.NumClient WHERE client.nom = 'Codd' and client.prenom = 'Edgar';
Question 4c – L’attribut ‘NumChambre’ de la table ‘reservation’ est une clé étrangère dont les valeurs font référence à celles de l’attribut ‘NumChambre’ de la table ‘chambre’.
La suppression de l’occurrence de la table ‘chambre’ pour laquelle l’attribut ‘NumChambre’ vaut 108 n’est pas possible sans doute parce qu’il existe au moins une occurrence de la table ‘reservation’ pour laquelle l’attribut ‘NumChambre’ possède la valeur 108.
Cette suppression est donc refusée pour maintenir l’intégrité référentielle de la base de données.