Numérique et sciences informatiques (spécialité) · TerminaleBac
Base de données relationnelle et SGBD : cours de Terminale NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
- Une base de données relationnelle organise l'information en tables (relations) : les lignes sont des enregistrements (n-uplets), les colonnes des attributs. 2
- Chaque table a une clé primaire qui identifie ses lignes ; une clé étrangère relie une table à une autre. 2
- Le schéma relationnel décrit les relations, leurs attributs, leurs domaines et leurs clés ; il se distingue des données elles-mêmes. 1
- Le SGBD est le logiciel qui stocke, manipule, protège et partage les données ; on l'interroge et on le met à jour en SQL. 31
- Le SGBD garantit la cohérence : pas de doublon ni de valeur absente dans une clé primaire, et des liens entre tables qui restent valides. 3
Pourquoi des bases de données ?
Un site de commerce en ligne, une bibliothèque municipale, une application de réservation, un lycée : tous doivent conserver beaucoup d'informations, les retrouver vite, les modifier sans rien casser. Stocker tout cela dans des fichiers séparés devient vite ingérable : une même information est recopiée à plusieurs endroits, et il suffit d'en corriger une copie pour que les autres deviennent fausses.
Le modèle relationnel, au programme de Terminale, est justement la réponse la plus répandue à ce problème. 1 Dans ce chapitre, tu en reprends les notions une à une et tu découvres le logiciel qui fait tourner tout cela : le système de gestion de base de données, ou SGBD. Ce cours prépare directement les deux chapitres suivants, consacrés aux requêtes SQL et aux jointures.
Le programme de NSI retient pour cette rubrique : relation, attribut, domaine, clef primaire, clef étrangère et schéma relationnel, ainsi que le langage SQL pour interroger et mettre à jour une base. 1 Ce sont exactement les notions qui structurent ce cours.
Le modèle relationnel : tables, lignes, colonnes
Prenons une petite table Eleve d'un lycée fictif :
| id_eleve | nom | prenom | classe |
|---|---|---|---|
| 101 | Martin | Léa | T1 |
| 102 | Durand | Karim | T1 |
| 103 | Petit | Inès | T2 |
Cette relation possède 4 attributs (id_eleve, nom, prenom, classe) et 3 enregistrements. Le premier enregistrement est le n-uplet (101, Martin, Léa, T1). Chaque case contient une seule valeur : on ne met pas deux prénoms dans la même case.
| id_eleve | nom | prenom | classe |
|---|---|---|---|
| 101 | Martin | Léa | T1 |
| 102 | Durand | Karim | T1 |
| 103 | Petit | Inès | T2 |
Domaine et schéma relationnel
Chaque attribut ne peut pas contenir n'importe quoi. Dans la table Eleve, id_eleve est un nombre entier, nom est un texte, une date de naissance serait une date. L'ensemble des valeurs que peut prendre un attribut s'appelle son domaine. Cette notion figure explicitement au programme. 1
Un domaine est une contrainte utile : il empêche d'écrire un nom à la place d'un numéro, et il permet au logiciel de savoir comment comparer ou trier les valeurs.
Clé primaire : identifier chaque enregistrement
Dans une table d'élèves, deux élèves peuvent s'appeler Martin, ou avoir le même prénom, ou être dans la même classe. Comment désigner sans ambiguïté un élève précis ? On ajoute un attribut dont la valeur est unique pour chaque ligne : c'est le rôle de la clé primaire.
Dans le modèle relationnel, on peut atteindre n'importe quelle valeur en indiquant trois choses : la table, la colonne et la clé primaire de la ligne voulue. 3 C'est comme une adresse en trois parties : la table, la ligne (grâce à la clé) et la colonne.
Clé étrangère : relier les tables entre elles
Une base réaliste contient plusieurs tables, parce qu'on ne veut pas recopier l'intitulé et la salle d'une classe à chaque ligne d'élève. Selon le modèle relationnel, plusieurs relations sont connectées implicitement par les valeurs qu'elles contiennent. Chaque enregistrement rassemble des informations sur un même sujet, et ces sujets sont en rapport les uns avec les autres. Les liens sont conservés dans les champs des enregistrements, grâce aux clés primaires et aux clés étrangères. 2
Le SGBD : le logiciel qui gère la base
Concrètement, grâce au SGBD on peut enregistrer, rechercher, corriger, classer, transformer ou éditer les informations de la base. Il dispose de mécanismes pour garder les données cohérentes, limiter les pertes en cas de panne, protéger leur confidentialité et ouvrir la base à d'autres logiciels. 3
Tu peux te le représenter comme un bibliothécaire très rigoureux : tu lui demandes un renseignement, il va le chercher dans les rayons sans que tu aies à savoir comment les livres sont rangés, et il refuse de ranger un livre au mauvais endroit.
SGBD
- Stocker
- Tables
- Catalogue
- Protéger
- Cohérence
- Pannes
- Confidentialité
- Partager
- Utilisateurs
- Autres logiciels
- Interroger
- Langage SQL
- Mise à jour
Les SGBD sont des logiciels universels, indépendants de l'usage qu'on fait des bases de données. On les trouve derrière de nombreuses applications : guichets automatiques bancaires, logiciels de réservation, bibliothèques numériques, logiciels d'inventaire, et la plupart des blogs et sites web. 3 En 2011, la majorité des SGBD du marché manipulaient des bases relationnelles. 3
Dialoguer avec le SGBD : le langage SQL
Pour parler à un SGBD relationnel, on utilise presque toujours le langage SQL (Structured Query Language). Pratiquement tous les systèmes relationnels l'emploient pour interroger les bases. 2 Ce langage est né avec System R, le SGBD qu'IBM a développé à partir des travaux de Codd pour démontrer la faisabilité d'un SGBD relationnel. 3
Le programme de NSI distingue deux familles d'actions : les requêtes d'interrogation (lire des données) et les requêtes de mise à jour (les modifier). 1 Tu les pratiqueras dans les deux chapitres suivants ; ici, on prépare le terrain.
Méthode : analyser une base de données au bac
- LireRepérer tables, attributs et clés
- RelierAssocier chaque clé étrangère à sa clé primaire
- ReformulerDire quelles données sont demandées et où
- VérifierContrôler unicité et références
Exercices corrigés
Exercice 1 Repérer les éléments d'une table
Voici la table Film d'un cinéma de quartier :
| id_film | titre | annee | duree |
|---|---|---|---|
| 1 | Le Grand Voyage | 2019 | 105 |
| 2 | Nuit blanche | 2021 | 92 |
| 3 | Le Grand Voyage | 2022 | 110 |
- Donne le nombre d'attributs et le nombre d'enregistrements.
titrepeut-il être clé primaire ? Justifie.- Quelle clé primaire proposes-tu ?
Indice 1
Un titre peut-il apparaître deux fois ? Regarde les lignes 1 et 3.
Indice 2
Une clé primaire est unique et jamais vide.
Voir la correction pas à pas
Les colonnes sont les attributs :
id_film,titre,annee,duree, soit 4 attributs ; il y a 3 lignes, donc 3 enregistrements.« Le Grand Voyage » apparaît deux fois (lignes 1 et 3) :
titren'est pas unique, donc ne peut pas être clé primaire.id_filmest différent sur chaque ligne et toujours renseigné : c'est une bonne clé primaire.
Une clé primaire se juge sur son unicité et sur sa présence, pas sur sa position dans le tableau.
Exercice 2 Compter les valeurs d'une relation
Une table Emprunt possède 5 attributs et 24 enregistrements. Chaque case du tableau contient exactement une valeur. Combien de valeurs la table contient-elle au total ?
Indice 1
Chaque enregistrement contient une valeur par attribut.
Voir la correction pas à pas
Un enregistrement contient une valeur pour chacun des 5 attributs.
Il y a 24 enregistrements : le nombre total de valeurs est 24 × 5.
24 × 5 = 120.
La table contient 120 valeurs.
Exercice 3 Identifier les clés d'un schéma
Une médiathèque utilise le schéma suivant :
Adherent(id_adherent, nom, prenom, email)Document(id_document, titre, type)Pret(id_pret, id_adherent, id_document, date_pret)
- Indique la clé primaire de chaque table.
- Quelles sont les clés étrangères de
Pret? Vers quelles tables pointent-elles ? - Peut-on ajouter dans
Pretune ligne avecid_adherent = 999si aucun adhérent n'a ce numéro ? Pourquoi ?
Indice 1
Une clé étrangère porte le nom d'une clé primaire d'une autre table.
Indice 2
Pense à ce qu'un SGBD vérifie avant d'accepter une insertion.
Voir la correction pas à pas
Les clés primaires sont
id_adherent,id_documentetid_pret.Dans
Pret,id_adherentest une clé étrangère versAdherent, etid_documentune clé étrangère versDocument.Non : la valeur 999 n'existe pas dans
Adherent. Le lien serait cassé, donc la base deviendrait incohérente, et le SGBD doit refuser l'insertion.
La table Pret relie les deux autres : une ligne signifie « tel adhérent a emprunté tel document à telle date ».
Exercice 4 Écrire un schéma relationnel
Un club de sport veut gérer ses adhérents (numéro, nom, date de naissance) et ses séances (numéro, discipline, date). Chaque adhérent s'inscrit à plusieurs séances et chaque séance accueille plusieurs adhérents.
- Propose un schéma relationnel avec trois relations.
- Précise les clés primaires et étrangères.
- Explique pourquoi une troisième table est nécessaire.
Indice 1
Une case ne peut contenir qu'une seule valeur.
Indice 2
La troisième table contient deux clés étrangères.
Voir la correction pas à pas
Schéma :
Adherent(id_adherent, nom, date_naissance);Seance(id_seance, discipline, date_seance);Inscription(id_inscription, #id_adherent, #id_seance).Les clés primaires sont
id_adherent,id_seanceetid_inscription; les clés étrangères sontid_adherentetid_seancedansInscription.Mettre plusieurs séances dans une seule case d'un adhérent violerait le principe d'une valeur par case ; la table
Inscriptionenregistre chaque couple adhérent-séance sur une ligne.
Quand deux sujets sont liés « plusieurs à plusieurs », on crée une table de liaison portant deux clés étrangères.
Exercice 5 Combien de couples avec un produit cartésien ?
Le produit cartésien de deux relations associe chaque enregistrement de la première à chaque enregistrement de la seconde. La table Eleve contient 6 enregistrements et la table Classe en contient 4. Combien d'enregistrements le produit cartésien Eleve × Classe contient-il ? Combien de ces lignes sont réellement utiles si chaque élève appartient à une seule classe ?
Indice 1
Pour chaque élève, combien de classes peut-on lui associer ?
Indice 2
Les lignes utiles sont celles où la clé étrangère correspond à la clé primaire.
Voir la correction pas à pas
Chaque élève est associé à chacune des 4 classes : 6 × 4 = 24 enregistrements.
Un élève ne fait partie que d'une classe : une seule association sur 4 est cohérente, soit 6 lignes utiles.
Les 18 autres lignes sont éliminées : c'est ce que fait une jointure, qui garde seulement les lignes où la clé étrangère égale la clé primaire.
Le produit cartésien contient 24 enregistrements, dont 6 seulement sont utiles ; la jointure en est la version sélective.
Quiz
8 questions · correction immédiate · ton score reste sur ton appareil.
-
Les colonnes sont les attributs. 2 Un enregistrement ou n-uplet est une ligne, ce qui est l'erreur tentante ; une relation est la table entière.
-
Les règles de cohérence imposent l'absence de redondance ou de valeur nulle pour les clés primaires. 3 Une clé peut être un texte, et sa place dans le tableau n'a pas d'importance.
-
Les liens entre informations sont stockés sous forme de clé primaire et de clé étrangère. 2 La clé étrangère ne chiffre ni ne trie : elle matérialise un lien.
-
Le programme cite relation, attribut, domaine, clef primaire, clef étrangère et schéma relationnel. 1 Les index B-arbre n'y figurent pas.
-
Le dièse signale une clé étrangère qui renvoie à la clé primaire de
Classe. La clé primaire deEleveestid_eleve. -
Chaque enregistrement contient une valeur par attribut : 15 × 7 = 105. Additionner 15 et 7 (22) serait une erreur : on compte des cases d'un tableau.
Les questions qu'on se pose
Quelle est la différence entre une base de données et un SGBD ?
La base de données est l'ensemble des données organisées (les tables et leur contenu). Le SGBD est le logiciel qui permet de la créer, de l'utiliser et de la maintenir. 2 Une même base est manipulée par le SGBD, pas par toi directement dans les fichiers.
Peut-on avoir une clé primaire composée de plusieurs attributs ?
Oui, une clé peut être formée d'un groupe d'attributs dont la combinaison identifie chaque ligne. Dans ce cours on utilise surtout un identifiant unique, plus simple. Retiens la règle commune : valeurs uniques et jamais vides. 3
Pourquoi ne pas tout mettre dans une seule grande table ?
Parce que les mêmes informations seraient recopiées sur de nombreuses lignes : c'est de la redondance, et une correction oubliée à un endroit rend la base incohérente. Le modèle relationnel vise justement à éviter la redondance. 3 Séparer en plusieurs tables reliées par des clés étrangères règle le problème.
Qu'est-ce qui tombe au bac sur ce chapitre ?
Le programme porte sur le modèle relationnel (relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel) et sur le langage SQL. 1 On te demande surtout de lire un schéma, de justifier un choix de clé, de repérer une incohérence puis d'écrire des requêtes.
Sources
- Épreuves NSI - Bulletin officiel n° 36 du 30 septembre 2022, Académie de Paris. Consulté le 7 novembre 2026.
- Base de données relationnelle, Wikipédia. Consulté le 7 novembre 2026.
- 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.