Aller au contenu

Numérique et sciences informatiques (spécialité) · TerminaleBac

Base de données relationnelle et SGBD : exercices de Terminale NSI

Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur

L'essentiel

  • Une base relationnelle range les données dans des tables (relations) : les lignes sont des nuplets, les colonnes des attributs.2
  • La clé primaire identifie chaque enregistrement ; la clé étrangère relie une table à une autre.2
  • Le SGBD est le logiciel qui stocke, manipule et partage les données en garantissant leur cohérence.3
  • Découper les données en plusieurs tables reliées par des clés évite de répéter la même information.3
  • Au bac, la partie bases de données porte sur le modèle relationnel (relation, attribut, domaine, clés, schéma) et sur le langage SQL.1

Comment utiliser ces exercices

Ces exercices portent sur le modèle relationnel et sur le rôle du système de gestion de base de données. Ils préparent les requêtes SQL du chapitre suivant : si tu sais lire un schéma et repérer les clés, écrire une requête devient beaucoup plus simple. Pour l'épreuve écrite du bac, cette rubrique se limite à la relation, l'attribut, le domaine, la clef primaire, la clef étrangère et le schéma relationnel, ainsi qu'au langage SQL.1

Les exercices

Exercice 1 Lire une relation

★☆☆Environ 5 min

On considère la relation ELEVE suivante.

id_eleve nom classe
1 Amel T1
2 Bruno T2
3 Chloé T1
4 David T3
  1. Donne le nom de la relation, ses attributs et le nombre de nuplets.
  2. Combien de valeurs sont stockées au total dans les lignes de cette relation (sans compter la ligne des noms de colonnes) ?
Indice 1

Les colonnes sont les attributs, les lignes sont les nuplets.

Indice 2

Nombre de valeurs = nombre de nuplets × nombre d'attributs.

Voir la correction pas à pas
  1. Le nom de la relation est ELEVE.

  2. Les attributs (colonnes) sont id_eleve, nom et classe : il y en a 3.

  3. Les nuplets (lignes) sont au nombre de 4.

  4. Chaque nuplet contient une valeur par attribut, donc 4 × 3 = 12 valeurs.

La relation ELEVE a 3 attributs et 4 nuplets, soit 12 valeurs. Dans une base relationnelle, les lignes sont les nuplets et les colonnes les attributs.2

Exercice 2 Choisir une clé primaire

★☆☆Environ 6 min

Une relation LIVRE contient les attributs isbn, titre, auteur et annee. Dans la bibliothèque, plusieurs livres peuvent porter le même titre (éditions différentes) et un même auteur a écrit plusieurs livres. Deux livres ne partagent jamais le même isbn.

  1. Quel attribut peut servir de clé primaire ? Justifie.
  2. Pourquoi titre et auteur ne conviennent-ils pas ?
  3. Quelle propriété doit respecter une clé primaire pour qu'on puisse retrouver n'importe quelle donnée ?
Indice 1

Une clé primaire doit désigner un seul enregistrement.

Indice 2

Cherche l'attribut dont les valeurs ne se répètent jamais.

Voir la correction pas à pas
  1. On cherche un attribut dont la valeur est différente pour chaque livre : c'est isbn, puisque deux livres n'en partagent jamais.

  2. titre ne convient pas, car plusieurs livres peuvent avoir le même titre : une valeur désignerait alors plusieurs lignes.

  3. auteur ne convient pas non plus, car un auteur a écrit plusieurs livres.

  4. La clé primaire ne doit ni se répéter ni être vide : ainsi, le nom de la table, le nom de la colonne et la valeur de la clé suffisent à retrouver une donnée précise.

La clé primaire de LIVRE est isbn. Dans le modèle relationnel, une donnée se retrouve grâce au nom de la table, au nom de la colonne et à la clé primaire, et les règles de cohérence imposent l'absence de doublon et de valeur nulle pour les clés primaires.3

Exercice 3 Repérer une clé étrangère

★☆☆Environ 7 min

Une base contient deux relations :

  • AUTEUR(id_auteur, nom, pays)
  • LIVRE(id_livre, titre, id_auteur, annee)

Les attributs en gras sont les clés primaires.

  1. Quel attribut de LIVRE est une clé étrangère ? Vers quelle relation pointe-t-elle ?
  2. À quoi sert-elle concrètement ?
  3. Écris le schéma relationnel de LIVRE en soulignant la clé primaire et en plaçant # devant la clé étrangère.
Indice 1

Cherche dans LIVRE un attribut qui reprend la clé primaire d'une autre relation.

Indice 2

Pour le schéma, on peut écrire : LIVRE(id_livre, titre, #id_auteur, annee).

Voir la correction pas à pas
  1. Dans LIVRE, l'attribut id_auteur reprend le nom et les valeurs de la clé primaire de AUTEUR.

  2. C'est donc la clé étrangère de LIVRE, qui pointe vers la relation AUTEUR.

  3. Elle sert à relier chaque livre à son auteur sans recopier le nom et le pays de l'auteur dans chaque ligne de LIVRE.

  4. Le schéma s'écrit : LIVRE(id_livre, titre, #id_auteur, annee), avec # devant la clé étrangère.

La clé étrangère est id_auteur, qui renvoie à AUTEUR. Les relations sont connectées par les valeurs qu'elles contiennent, et ces liens passent par une clé primaire d'un côté et une clé étrangère de l'autre.2

Exercice 4 Accepter ou refuser une insertion

★★☆Environ 10 min

Une bibliothèque gère deux relations :

  • LECTEUR(id_lecteur, nom) contient les lecteurs 1, 2 et 3.
  • EMPRUNT(id_emprunt, #id_lecteur, date) contient déjà les emprunts 101 et 102.

On tente d'ajouter successivement six emprunts, notés (id_emprunt, id_lecteur) : (103, 2) ; (101, 3) ; (104, 5) ; (105, 1) ; (102, 9) ; (106, 3).

  1. Pour chaque insertion, indique si elle respecte les contraintes de clé primaire et de clé étrangère.
  2. Combien d'insertions sont refusées ?
Indice 1

Une clé primaire ne peut pas apparaître deux fois dans la relation.

Indice 2

Une clé étrangère doit renvoyer à un enregistrement qui existe vraiment dans l'autre relation.

Voir la correction pas à pas
  1. (103, 2) : 103 est nouveau et le lecteur 2 existe. Acceptée.

  2. (101, 3) : 101 existe déjà comme clé primaire. Refusée (doublon).

  3. (104, 5) : 104 est nouveau, mais le lecteur 5 n'existe pas. Refusée (lien vers rien).

  4. (105, 1) : 105 est nouveau et le lecteur 1 existe. Acceptée.

  5. (102, 9) : 102 existe déjà et le lecteur 9 n'existe pas. Refusée pour les deux raisons.

  6. (106, 3) : 106 est nouveau et le lecteur 3 existe. Acceptée.

  7. Trois insertions sont acceptées sur six, donc 6 − 3 = 3 sont refusées.

3 insertions sont refusées. Une clé primaire n'admet pas de doublon3, et une clé étrangère sert à relier des enregistrements : un lien vers un lecteur inexistant ne relie plus rien.2

Exercice 5 Écrire un schéma relationnel

★★☆Environ 12 min

Un club de sport veut enregistrer ses adhérents (numéro, nom, date de naissance) et ses activités (code, intitulé, jour de la semaine). Chaque adhérent est inscrit à une seule activité, mais une activité accueille plusieurs adhérents.

  1. Propose deux relations avec leurs attributs.
  2. Indique la clé primaire de chacune.
  3. Où place-t-on la clé étrangère ? Écris le schéma relationnel complet.
  4. Donne un domaine pertinent pour l'attribut jour.
Indice 1

La clé étrangère se place du côté « plusieurs » : celui qui est relié à un seul élément de l'autre côté.

Indice 2

Le domaine d'un attribut est l'ensemble des valeurs qu'il peut prendre.

Voir la correction pas à pas
  1. On crée ADHERENT(num_adherent, nom, date_naissance) et ACTIVITE(code, intitule, jour).

  2. Les clés primaires sont num_adherent et code, car chacune identifie une seule ligne.

  3. Un adhérent n'a qu'une activité : on ajoute le code de l'activité dans ADHERENT, ce qui donne la clé étrangère #code.

  4. Le schéma est : ADHERENT(num_adherent, nom, date_naissance, #code) et ACTIVITE(code, intitule, jour).

  5. Le domaine de jour est l'ensemble des sept jours de la semaine : lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche.

On obtient deux relations reliées par code. Placer la clé étrangère dans ADHERENT évite de recopier l'intitulé et le jour de l'activité pour chaque adhérent. Relation, attribut, domaine, clé primaire, clé étrangère et schéma relationnel sont les notions évaluées à l'écrit du bac pour cette partie.1

Exercice 6 Mesurer la redondance

★★☆Environ 12 min

Une boutique stocke ses commandes dans une seule relation :

COMMANDE(id_cmd, produit, id_client, nom_client, ville_client)

Elle contient 6 commandes passées par seulement 2 clients différents. Chaque commande remplit les 5 attributs.

  1. Combien de valeurs sont stockées dans cette relation unique ?
  2. On sépare en deux relations : COMMANDE(id_cmd, produit, #id_client) et CLIENT(id_client, nom_client, ville_client). Combien de valeurs sont stockées maintenant ?
  3. Quelle information n'est plus répétée ? Combien de valeurs économise-t-on ?
Indice 1

Valeurs = nuplets × attributs, à calculer pour chaque relation.

Indice 2

Dans la relation unique, le nom et la ville d'un client sont recopiés à chaque commande.

Voir la correction pas à pas
  1. Relation unique : 6 nuplets × 5 attributs = 30 valeurs.

  2. Après séparation, COMMANDE a 6 nuplets × 3 attributs = 18 valeurs.

  3. CLIENT a 2 nuplets (un par client) × 3 attributs = 6 valeurs.

  4. Total : 18 + 6 = 24 valeurs.

  5. L'économie est de 30 − 24 = 6 valeurs : le nom et la ville de chaque client ne sont plus recopiés à chaque commande.

On économise 6 valeurs, et surtout on ne modifie une ville qu'à un seul endroit, ce qui évite les incohérences. Le modèle relationnel vise justement à contrôler la cohérence et à éviter la redondance.3

Exercice 7 Le rôle du SGBD

★★★Environ 12 min

Un site de réservation de billets stocke ses données dans une base relationnelle gérée par un SGBD. Deux clients valident la dernière place d'un spectacle au même instant, puis le serveur s'arrête brutalement pendant l'enregistrement.

  1. Qu'est-ce qu'un SGBD ? Le programmeur du site doit-il écrire lui-même le stockage des fichiers ?
  2. Cite deux garanties que l'on attend du SGBD dans cette situation.
  3. Pourquoi dit-on qu'un SGBD est un logiciel « universel » ?
Indice 1

Un SGBD ne dépend pas du type d'application qui l'utilise.

Indice 2

Pense à la cohérence des informations et aux pannes.

Voir la correction pas à pas
  1. Un SGBD est un logiciel qui sert à stocker, manipuler ou gérer et partager des données d'une base. Le programmeur du site s'appuie sur lui au lieu de gérer lui-même les fichiers.

  2. Première garantie : la cohérence des informations, pour que la dernière place ne soit pas attribuée aux deux clients.

  3. Deuxième garantie : éviter la perte d'informations due à une panne, comme l'arrêt brutal du serveur.

  4. Un SGBD est universel parce qu'il est indépendant de l'usage fait de la base : le même logiciel sert pour des réservations, des inventaires ou des bibliothèques numériques.

Le SGBD stocke et partage les données en garantissant leur qualité, leur pérennité et leur confidentialité tout en cachant la complexité des opérations.3 Il comporte des mécanismes de cohérence et de protection contre les pertes dues aux pannes, et il sert à de nombreuses applications, dont les logiciels de réservation.3

Exercice 8 Rapprocher deux relations

★★★Environ 15 min

Une base de lycée contient :

CLASSE

id_classe niveau
1 Terminale
2 Première
3 Terminale

ELEVE

id_eleve nom #id_classe
1 Amel 1
2 Bruno 1
3 Chloé 2
4 David 3
5 Emma 2

On veut obtenir la liste des élèves avec le niveau de leur classe, puis ne garder que les élèves de Terminale.

  1. Quelle clé permet de rapprocher les deux relations ?
  2. Combien de nuplets contient le rapprochement complet (un nuplet par élève, avec son niveau) ?
  3. Combien d'élèves de Terminale obtient-on après sélection ?
  4. Quel nom donne-t-on à l'opération du 2, et à celle du 3 ?
Indice 1

Pour chaque élève, on cherche la classe dont l'id_classe a la même valeur.

Indice 2

Compte les élèves dont la classe a le niveau « Terminale » : classes 1 et 3.

Voir la correction pas à pas
  1. Le rapprochement se fait par id_classe, clé étrangère de ELEVE qui reprend la clé primaire de CLASSE.

  2. Chaque élève correspond à une seule classe : il y a donc 5 nuplets dans le résultat.

  3. Les classes de Terminale sont les classes 1 et 3. La classe 1 compte Amel et Bruno (2 élèves), la classe 3 compte David (1 élève).

  4. On obtient 2 + 1 = 3 élèves de Terminale.

  5. Le rapprochement des deux relations est une jointure ; le fait de garder seulement certains nuplets est une sélection.

Le résultat compte 3 élèves de Terminale sur 5. La jointure et la sélection sont des opérations d'algèbre relationnelle utilisées pour rapprocher des enregistrements et créer de nouvelles relations, et le langage SQL permet de les demander.2 C'est exactement ce que tu écriras dans les chapitres suivants.

Les questions qu'on se pose

Quelle différence entre une base de données et un SGBD ?

La base de données contient les informations (les tables et leurs nuplets). Le SGBD est le logiciel qui permet de les stocker, de les manipuler et de les partager.3 Quand le modèle est relationnel, on parle de SGBD relationnel : il exploite le contenu des tables par des opérations comme la jointure, la sélection et la projection.2

Une table peut-elle ne pas avoir de clé étrangère ?

Oui. Une relation comme AUTEUR ou LECTEUR dans les exercices n'a besoin que de sa clé primaire. La clé étrangère n'apparaît que lorsqu'une relation doit être reliée à une autre, car les liens entre informations passent par une clé primaire d'un côté et une clé étrangère de l'autre.2

Faut-il connaître SQL pour réussir ces exercices ?

Non, ils reposent sur le modèle relationnel : vocabulaire, clés, schémas, cohérence. Le programme associe ces notions au langage SQL, qui sert aux requêtes d'interrogation et de mise à jour,1 mais SQL fait l'objet des chapitres suivants. Maîtriser les clés rend ensuite les requêtes bien plus faciles.

Sources

  1. Épreuves NSI - Bulletin officiel n° 36 du 30 septembre 2022, Académie de Paris. Consulté le 7 novembre 2026.
  2. Base de données relationnelle, Wikipédia. Consulté le 7 novembre 2026.
  3. Système de gestion de base de données, Wikipédia. Consulté le 7 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page