Exercice 1 · Bac Numérique et Sciences Informatiques Liban 2023 (jour 2)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 2 (2023)
Énoncé
Exercice 1 (4 points)
Cet exercice traite des bases de données.
Pour gérer son activité, une petite entreprise de travaux d'extérieur à domicile utilise un système de gestion de base de données avec les relations suivantes:
prestations
id_prestation
id_client
date
heure_debut
duree
type
employe
876272 · 5232 · 15/06/2020 · 15:00 · 2 · tonte · Didier
876273 · 5231 · 15/06/2020 · 15:30 · 2 · tonte · Sylvie
876274 · 5229 · 16/06/2020 · 09:00 · 2 · haies · Sylvie
876275 · 5229 · 16/06/2020 · 11:00 · 1 · tonte · Sylvie
876276 · 5233 · 16/06/2020 · 10:00 · 1 · tonte · Didier
876277 · 5228 · 16/06/2020 · 14:00 · 2 · tonte · Didier
876278 · 5230 · 16/06/2020 · 14:00 · 2 · tonte · Sylvie
876279 · 5234 · 17/06/2020 · 09:00 · 3 · bucheronnage · Didier
876935 · 5228 · 18/11/2020 · 09:00 · 2 · haies · Didier
876936 · 5231 · 18/11/2020 · 10:00 · 1 · nettoyage · Sylvie
876937 · 5228 · 18/11/2020 · 11:00 · 1 · nettoyage · Didier
876938 · 5234 · 18/11/2020 · 14:00 · 4 · engazonnement · Sylvie
876939 · 5233 · 18/11/2020 · 14:00 · 2 · plantations · Didier
876940 · 5229 · 19/11/2020 · 09:00 · 2 · haies · Sylvie
876941 · 5230 · 19/11/2020 · 09:00 · 3 · bucheronnage · Didier
876942 · 5229 · 19/11/2020 · 11:00 · 1 · nettoyage · Sylvie
876943 · 5235 · 19/11/2020 · 14:00 · 2 · haies · Didier
876944 · 5232 · 19/11/2020 · 14:00 · 1 · haies · Sylvie
876945 · 5232 · 19/11/2020 · 15:00 · 1 · plantations · Sylvie
Remarque: la durée est un nombre entier d'heures.
clients
id_client
nom
adresse
code_postal
ville
telephone
5228 · Ouellet · 8, rue de Verdun · 26200 · Montélimar · 0475016031
5229 · Rouze · 29, rue Reine Elisabeth · 07400 · Meysse · 0475494977
5230 · Bonenfant · 58, rue des Soeurs · 26780 · Espeluche · 0475568463
5231 · Foucault · 67, rue Michel Ange · 26200 · Montélimar · 0475918885
5232 · Croteau · 98, rue du Gue Jacquet · 26200 · Montélimar · 0475460794
5233 · Therriault · 11, rue de l'Epeule · 26160 · Puygiron · 0475091013
5234 · Rivard · 15, rue des Coteaux · 26200 · Montélimar · 0475339127
5235 · Blanchard · 12, rue du Château · 26740 · Sauzet · 0475305408
1. On n'oubliera pas de justifier les réponses pour les questions a. et b.
a)
Identifier pour chacune de ces deux relations une clé primaire possible.
b)
Identifier la relation qui possède une clé étrangère. Donner cette clé étrangère.
c)
Donner le type pour chacun des deux premiers attributs de la relation clients.
On manipule les données en utilisant le langage SQL.
2.
a)
Donner les valeurs renvoyées par la requête suivante:
SELECT nom, telephone
FROM clients
WHERE ville='Montélimar';
b)
Écrire la requête permettant d'obtenir la date et l'heure de début des prestations de plus d'une heure, réalisées par Didier.
3.
Avec les informations présentées en page précédente, donner les valeurs renvoyées par la requête suivante (le mot-clé DISTINCT permet d'éviter les doublons dans le résultat de la requête):
SELECT DISTINCT nom
FROM clients JOIN prestations
ON clients.id_client=prestations.id_client
WHERE prestations.employe='Sylvie';
4. Pour permettre au logiciel de préparer les factures, on souhaite ajouter le tarif horaire de chaque prestation dans ce jeu de données.
a)
Expliquer quel(s) problème(s) peuvent apparaître si on décide d'ajouter uniquement un attribut tarif_horaire à la relation prestations.
b)
Proposer un schéma relationnel qui permet d'éviter ce(s) problème(s). On pourra donner la réponse sous la forme:
Schéma relationnel:
tarifs(premier attribut, deuxième attribut,...)
prestations(premier attribut,...)
clients(premier attribut,...)
On indiquera explicitement pour chaque relation les attributs, la clé primaire et les éventuelles clés étrangères (on ne demande pas d'indiquer les types).

Corrigé
Corrigé proposé par AprenAI (non officiel)
1. a. Identifier pour chacune de ces deux relations une clé primaire possible.
Réponse : prestations : id_prestation / clients : id_client
1. b. Identifier la relation qui possède une clé étrangère. Donner cette clé étrangère.
Réponse : La relation prestations possède la clé étrangère id_client (faisant référence à clients.id_client).
1. c. Donner le type pour chacun des deux premiers attributs de la relation clients.
Réponse : id_client : entier (INT / INTEGER) / nom : chaîne de caractères (TEXT / VARCHAR)
2. a. Donner les valeurs renvoyées par la requête suivante : SELECT nom, telephone FROM clients WHERE ville='Montélimar';
Réponse : Ouellet : 0475016031 Foucault : 0475918885 Croteau : 0475460794 Rivard : 0475339127
Les réponses des 4 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 2 - Bases de données · Liban 2023 (jour 1)