Exercice 2 - Bases de données et SQL · Bac Numérique et Sciences Informatiques Nouvelle-Calédonie 2025 (jour 1)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 1 (2025)
Énoncé
Cet exercice porte sur les bases de données et la programmation orientée objet.
Dans cet exercice, on pourra utiliser les clauses du langage SQL pour:
construire des requêtes d'interrogation à l'aide de SELECT, FROM, WHERE (avec les opérateurs logiques AND, OR), JOIN... ON;
construire des requêtes d'insertion et de mise à jour à l'aide de UPDATE, INSERT, DELETE;
affiner les recherches à l'aide de DISTINCT et ORDER BY.
Susie décide de créer une base de données qui recense des randonnées allant d'un parking à un lac.
Elle crée trois relations représentées sur le schéma ci-dessous (figure 1).
Les clés primaires sont signalées par une clé. Dans la relation rando:
depart est une clé étrangère qui référence l'attribut idP de la relation parking;
arrivee est une clé étrangère qui référence l'attribut idL de la relation lac.
L'altitude, exprimée en mètre, est un entier.
Voici un extrait des enregistrements de ces trois relations.
parking
idP · commune · altitude · coord_GPS
1 · Chamonix · 1 026 · (45.98;6.89)
2 · Argentiere · 1 429 · (45.99;6.92)
3 · Passy · 600 · (45.92;6.72)
4 · Passy · 1 181 · (45.95;6.71)
5 · Nevache · 2 022 · (45.05;6.52)
rando
idR · depart · arrivee
1 · 1 · 1
2 · 2 · 1
3 · 1 · 2
4 · 3 · 3
lac
idL · nom · altitude
1 · Lac Blanc · 2 354
2 · Lacs Noirs · 2 564
3 · Lac Vert · 1 266
4 · Lac Rouge · 2 585
1.
Indiquer ce que renvoie la requête suivante lorsqu'on l'applique aux extraits précédents:
SELECT nom
FROM lac
WHERE altitude <= 2000;
2.
Indiquer les noms des lacs qu'on peut atteindre depuis le parking de Chamonix d'après la base de données de Susie.
À partir de maintenant, on travaille sur la totalité des enregistrements et non plus seulement sur les extraits précédents.
3.
Donner une requête permettant d'obtenir les coordonnées GPS des parkings situés dans la commune de Passy à une altitude comprise strictement entre 800 et 1 000 mètres.
4.
Donner une requête permettant d'obtenir les noms des lacs qu'il est possible d'atteindre depuis le parking situé à 1 300 mètres d'altitude dans la commune de Cordon (on admet qu'un tel parking existe dans la base de données).
Dans les questions suivantes, l'ordre des requêtes SQL est important. On considère une nouvelle randonnée qui part du parking dont l'identifiant est 3 à Passy et qui conduit au lac d'Anterne situé à 2 059 mètres d'altitude.
Le parking est déjà dans la base de données mais par contre, ni la randonnée, ni le lac n'y figurent.
5.
Donner les requêtes permettant à Susie d'ajouter à sa base de données cette randonnée et ce lac (on pourra utiliser l'identifiant 42 pour le lac et l'identifiant 100 pour la randonnée).
6.
Susie a fait une erreur de saisie en insérant le nom du lac, elle a écrit 'Lc d Anterne'. Donner la requête permettant de corriger cette erreur.
7.
Le parking dont l'identifiant est 28 a été transformé en un parc et n'existe plus.
Donner les requêtes permettant de supprimer ce parking de la base de données.

Corrigé
Corrigé proposé par AprenAI (non officiel)
1. Indiquer ce que renvoie la requête suivante lorsqu'on l'applique aux extraits précédents.
Réponse : Lac Vert
2. Indiquer les noms des lacs qu'on peut atteindre depuis le parking de Chamonix d'après la base de données de Susie.
Réponse : Lac Blanc, Lacs Noirs
3. Donner une requête permettant d'obtenir les coordonnées GPS des parkings situés dans la commune de Passy à une altitude comprise strictement entre 800 et 1 000 mètres.
Réponse : ```sql SELECT coord_GPS FROM parking WHERE commune = 'Passy' AND altitude > 800 AND altitude < 1000; ```
4. Donner une requête permettant d'obtenir les noms des lacs qu'il est possible d'atteindre depuis le parking situé à 1300 mètres d'altitude dans la commune de Cordon (on admet qu'un tel parking existe dans la base de données).
Réponse : ```sql SELECT lac.nom FROM lac JOIN rando ON lac.idL = rando.arrivee JOIN parking ON rando.depart = parking.idP WHERE parking.commune = 'Cordon' AND parking.altitude = 1300; ```
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 2 · Nouvelle-Calédonie 2025 (jour 2) ›