Exercice 3 - Bases de données relationnelles · Bac Numérique et Sciences Informatiques Centres étrangers (Afrique) 2026 (jour 1)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 1 (2026)
Énoncé
Cet exercice porte sur la programmation orientée objet, la récursivité et les bases de données relationnelles.
Le champ de mines du démineur est représenté par une grille.
Chaque case de cette grille peut cacher une mine, ou être vide.
Le déroulement du jeu:
Si on choisit sur une case libre qui a au moins une mine dans une case voisine, un chiffre apparaît. Ce chiffre indique combien de mines se trouvent dans les cases voisines. Une case a au maximum 8 cases voisines.
Si on choisit une case vide dont toutes les cases voisines sont vides, la case s'affiche vide. Ensuite, le jeu dévoile automatiquement toutes les cases vides voisines, et ainsi de suite, jusqu'à ce qu'il rencontre des cases avec des chiffres.
La fin de la partie: Si on choisit sur une mine, la partie est perdue. Si on découvre toutes les cases libres, la partie est gagnée.
La figure 1 représente une grille du jeu du démineur de 6 lignes: hauteur et de 7 colonnes: largeur, où l'on a dévoilé la position des 8 mines de la grille représentées par l'entier relatif -1 ainsi que les informations utiles au joueur qui lui seront dévoilées au fur et à mesure du jeu.
La case de coordonnées (1, 2) contient le chiffre 3 car elle a trois de ses cases voisines qui contiennent une mine: les cases (0, 1), (2, 2) et (1, 3).
La case (3, 6) contient le chiffre 0 car aucune case qui lui est voisine ne contient de mine.
Partie D: Jouer en ligne au démineur
Dans cette partie, 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.
On donne la possibilité aux joueurs d'enregistrer les scores en ligne pour le jeu du démineur.
On dispose d'une base de données relationnelles avec les tables suivantes:
Table Joueur: enregistrement du pseudo et du mot de passe de connexion du joueur.
id_joueur
pseudo
mot_de_passe
1 · Grimdal · EgxGB6a3bEinllon
2 · Raptor · J17NtfMS3Dudjjln
3 · PetiteFée · UuukBSvj01VrGoGD
4 · Kirna · 7NcDFPNl0Xy1MEPb
Table Meilleur_score: enregistrement du meilleur score d'un joueur pour chaque niveau joué.
joueur
niveau
score
temps
1 · facile · 1200 · 72
2 · expert · 1196 · 366
3 · intermédiaire · 997 · 230
2 · intermédiaire · 997 · 200
4 · expert · 1097 · 400
Table Demineur: enregistrement des caractéristiques de chaque niveau du démineur.
niveau
dimension
pourcentage mines
facile · 8x8 · 15.6
intermédiaire · 16x16 · 15.6
expert · 30x16 · 20.6
9.
Donner les clés étrangères de la table Meilleur_score en précisant pour chacune d'elle à quelle clé primaire elle fait référence.
10.
Une requête envoyée à la base de données a renvoyé la réponse suivante:
niveau · score
expert · 1196
intermédiaire · 997
11.
Kirna change son mot de passe par cGhxDE4 en place de 7NcDFPNl0Xy1MEPb.
12.
On donne la requête suivante:
SELECT pseudo FROM Joueur
JOIN Meilleur_score
ON Joueur.id_joueur = Meilleur_score.joueur
WHERE niveau = 'expert' AND score > 1000 AND temps < 400;
13.
Une erreur a été faite à la création de la table Demineur. Le niveau facile doit être désigné par le mot débutant.

Corrigé
Corrigé proposé par AprenAI (non officiel)
9. Donner les clés étrangères de la table Meilleur_score en précisant pour chacune d'elle à quelle clé primaire elle fait référence.
Réponse : Les deux clés étrangères de la table Meilleur_score sont : - `joueur`, qui fait référence à la clé primaire `id_joueur` de la table `Joueur` ; - `niveau`, qui fait référence à la clé primaire `niveau` de la table `Demineur`.
10. Donner une requête qui permet d'obtenir les informations du tableau précédent.
Réponse : ```sql SELECT niveau, score FROM Meilleur_score WHERE joueur = 2; ```
11. Écrire la requête qui permet de mettre à jour la table Joueur.
Réponse : ```sql UPDATE Joueur SET mot_de_passe = 'cGhxDE4' WHERE pseudo = 'Kirna'; ```
Les réponses des 2 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 - Parties A et B · Centres étrangers (Afrique) 2026 (jour 2) ›
Plus d’exercices de Bases de données relationnelles, SGBD et langage SQL
- Exercice 2 - Parties A et B · Centres étrangers (Afrique) 2026 (jour 2)
- Exercice 3 - Bases de données relationnelles · Centres étrangers (Afrique) 2025 (jour 1)
- Exercice 1 · Centres étrangers (Afrique) 2025 (jour 2)
- Exercice 3 - Partie A · Centres étrangers (Afrique) 2024 (jour 1)
- Exercice 3 - Partie B · Centres étrangers (Afrique) 2024 (jour 2)
- Exercice 1 · Centres étrangers (Afrique) 2023 (jour 1)
- Exercice 2 · Centres étrangers (Afrique) 2023 (jour 2)
- Exercice 4 · Centres étrangers (Afrique) 2022 (jour 1)
- Exercice 3 · Centres étrangers (Afrique) 2022 (jour 2)
- Exercice 4 · Centres étrangers (Afrique) 2021 (jour 2)