Exercice 2 - Bases de données relationnelles et S… · Bac Numérique et Sciences Informatiques Métropole 2025 (sujet 2)

Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Métropole France 2 (2025)

Énoncé

Exercice 2 (6 points)

Cet exercice porte sur les bases de données relationnelles, le langage SQL et la programmation.

Une ludothèque municipale a décidé de moderniser sa gestion en créant une base de données informatique. Cette base de données permettra de suivre les jeux disponibles, les emprunts effectués par les adhérents, ainsi que les avis laissés sur les différents jeux. Pour commencer, quatre tables principales ont été identifiées: jeu, adhérent, emprunt et avis. Ces tables et leurs relations vont permettre de stocker toutes les informations essentielles au bon fonctionnement de la ludothèque. On va considérer que la ludothèque n'a qu'un exemplaire de chaque jeu (deux jeux de la ludothèque ne peuvent donc pas avoir le même nom).

Dans la figure ci-dessus, les clés primaires de chacune des tables sont soulignées et les clés étrangères sont précédées du symbole #.

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) et JOIN... ON;

construire des requêtes d'insertion et de mise à jour à l'aide de UPDATE, INSERT et DELETE;

affiner les recherches à l'aide de DISTINCT et ORDER BY;

réaliser des agrégations à l'aide de COUNT.

Par exemple, l'instruction SQL:

SELECT COUNT(nomJeu) FROM jeu;

donne le nombre de jeux présents dans la table jeu.

1.

Expliquer pourquoi on ne peut pas prendre l'attribut nom comme clé primaire pour la relation adherent.

2.

Décrire ce que donne la requête SQL suivante:

SELECT nomJeu, editeur

FROM jeu

ORDER BY nomJeu;

Lorsque qu'un jeu est emprunté et n'a pas encore été rendu, la valeur de l'attribut dateRendu de la table emprunt est à NULL.

3.

Écrire une requête permettant de connaitre le nom de tous les jeux qui sont en cours d'emprunt.

4.

Écrire une requête SQL pour afficher le nom et le prénom de tous les adhérents qui ont emprunté le jeu "Catan".

5.

Claire VOYANT, adhérente de longue date à cette ludothèque, a emprunté le jeu "Catan" et l'a rendu le 3 juin 2025. Lors de l'emprunt, la valeur de id_emprunt était 1538.

Écrire une requête SQL qui a permis de mettre à jour la base de données afin qu'elle prenne en compte que ce jeu a été rendu. Toutes les dates de la base de données sont écrites sous le format 'AAAA-MM-JJ'.

6.

Écrire une requête SQL qui permet de trouver le nom et la catégorie de tous les jeux de la ludothèque sortis à partir de 2010 et dont l'âge minimum est strictement inférieur à 10 ans.

La ludothèque décide d'organiser des événements. Pour cela, elle ajoute une relation evenement à sa base de données. En outre, pour chaque événement, elle souhaite garder en mémoire une trace des adhérents qui y ont participé. À cette fin, elle complète sa base avec une relation participation.

7.

Proposer les clés étrangères de la table participation en précisant le nom des attributs auxquels elles font référence.

Énoncé: Exercice 2 - Bases de données relationnelles et S… · Bac Numérique et Sciences Informatiques Métropole 2025 (sujet 2)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Expliquer pourquoi on ne peut pas prendre l'attribut nom comme clé primaire pour la relation adherent.

Réponse : L'attribut nom ne garantit pas l'unicité des enregistrements car plusieurs adhérents peuvent porter le même nom de famille (homonymes).

2. Décrire ce que donne la requête SQL suivante : SELECT nomJeu, editeur FROM jeu ORDER BY nomJeu;

Réponse : Cette requête renvoie le nom et l'éditeur de tous les jeux de la table jeu, triés par ordre alphabétique croissant selon leur nom.

3. Écrire une requête permettant de connaitre le nom de tous les jeux qui sont en cours d'emprunt.

Réponse : SELECT nomJeu FROM emprunt WHERE dateRendu IS NULL; / SELECT DISTINCT nomJeu FROM emprunt WHERE dateRendu IS NULL;

4. Écrire une requête SQL pour afficher le nom et le prénom de tous les adhérents qui ont emprunté le jeu "Catan".

Réponse : SELECT adherent.nom, adherent.prenom FROM adherent JOIN emprunt ON adherent.idAdherent = emprunt.idAdherent WHERE emprunt.nomJeu = 'Catan';

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 - Bases de données relationnelles et S… · Métropole 1 remplacement 2025 · Exercice 3 - Bases de données · Métropole 2 remplacement 2025 ›

Plus d’exercices de Bases de données relationnelles, SGBD et langage SQL