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.

Énoncé: Exercice 3 - Bases de données relationnelles · Bac Numérique et Sciences Informatiques Centres étrangers (Afrique) 2026 (jour 1)

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