Base de données relationnelle

Définition, exemple concret, explications détaillées, piège à éviter et questions corrigées. NSI, niveau Terminale.

💻 NSITerminale
Sur cette page
  1. Un exemple concret
  2. Le piège à éviter
  3. Pour aller plus loin
  4. Ne pas confondre
  5. Dans ta copie
  6. À retenir
  7. Teste-toi
  8. Questions fréquentes
  9. Notions liées
DéfinitionUne base de données relationnelle organise les données en tables (relations). Chaque ligne est identifiée de façon unique par une clé primaire ; une clé étrangère fait référence à la clé primaire d'une autre table et crée un lien entre elles. On l'interroge avec le langage SQL.

Un exemple concret

Une table Élèves (clé primaire : id_eleve) et une table Notes, dont la colonne id_eleve est une clé étrangère qui indique à quel élève appartient chaque note.

Le piège à éviter

Une clé primaire ne peut contenir ni doublon ni valeur vide : deux élèves ne peuvent pas avoir le même identifiant.

Pour aller plus loin

Le modèle relationnel a été proposé en 1970 par l'informaticien britannique Edgar F. Codd, qui travaillait chez IBM. Son idée était de décrire les données sous forme de tables, sans dépendre de la manière dont elles sont stockées physiquement. Le langage SQL, dérivé de travaux menés à IBM dans les années 1970, a ensuite été normalisé et reste le langage standard des bases relationnelles. Les logiciels qui gèrent ces bases s'appellent des systèmes de gestion de bases de données (SGBD) : SQLite, que l'on utilise en NSI, mais aussi MySQL ou PostgreSQL.

Le principal intérêt du modèle est d'éviter la redondance. Plutôt que de répéter le nom et l'adresse d'un élève sur chaque note, on les place une seule fois dans la table Élèves, et la table Notes y renvoie grâce à la clé étrangère. La cohérence des liens s'appelle l'intégrité référentielle : on ne peut pas enregistrer une note pour un identifiant d'élève qui n'existe pas. On interroge la base avec SQL. Par exemple, SELECT nom, note FROM Eleves JOIN Notes ON Eleves.id_eleve = Notes.id_eleve WHERE note >= 15 renvoie les noms des élèves ayant obtenu au moins 15, grâce à la jointure.

Cette notion figure dans le programme de NSI en Terminale, dans le thème « Bases de données », qui prolonge le travail de Première sur les données en tables. Les opérations de base sont regroupées sous le sigle CRUD : créer (INSERT), lire (SELECT), modifier (UPDATE) et supprimer (DELETE). Les clauses principales d'une requête sont SELECT pour choisir les colonnes, FROM pour la table, WHERE pour filtrer et ORDER BY pour trier. On rencontre les bases relationnelles partout : sites marchands, applications bancaires, réservations ou dossiers de santé. Les maîtriser, c'est comprendre où et comment les informations sont rangées.

Ne pas confondre

  • Tableur : Un tableur stocke des données sans mécanisme garantissant leur cohérence entre plusieurs feuilles. Une base relationnelle impose des contraintes (clés, types) et gère les liens entre les tables.
  • Fichier CSV : C'est un simple fichier texte contenant une table. Il ne permet pas à lui seul de définir des relations entre tables ni d'interroger les données avec SQL.
  • SGBD et SQL : SQL est un langage de requêtes. Le SGBD est le logiciel qui stocke les données et exécute ces requêtes.

Dans ta copie

Pour concevoir la base d'une médiathèque, je sépare l'information en deux tables : Livres et Auteurs. Chaque auteur a une clé primaire id_auteur, et la table Livres contient une clé étrangère id_auteur qui renvoie à lui. Cette organisation évite de recopier le nom de l'auteur pour chacun de ses livres, ce qui réduit les risques d'erreurs et d'incohérences. Si l'adresse d'un auteur change, il suffit de la modifier à un seul endroit. Pour obtenir le titre d'un livre avec le nom de son auteur, j'utilise ensuite une jointure SQL entre les deux tables, en reliant les clés.

À retenir

  • Une base relationnelle organise les données en tables, reliées entre elles par des clés.
  • La clé primaire identifie chaque ligne de façon unique ; la clé étrangère pointe vers la clé primaire d'une autre table.
  • La séparation en plusieurs tables évite la redondance des données.
  • SQL interroge et modifie la base avec SELECT, INSERT, UPDATE, DELETE.

Teste-toi

NSI · question corrigée

Quel est le rôle d'une clé étrangère ?

Voir la réponse

Réponse B. Elle relie une table à une autre en référençant sa clé primaire.

NSI · question corrigée

Quelle clause SQL permet de ne garder que les lignes qui vérifient une condition ?

Voir la réponse

Réponse B. La clause WHERE filtre les lignes selon une condition, par exemple WHERE note >= 15. SELECT choisit les colonnes, FROM désigne la table et ORDER BY trie les résultats.

Questions fréquentes

Pourquoi ne pas tout mettre dans une seule table ?

Parce que les mêmes informations seraient répétées de nombreuses fois, ce qui gaspille de la place et crée des erreurs : si une donnée change, il faut la modifier partout. Plusieurs tables reliées par des clés permettent de ne la saisir qu'une fois.

Peut-on utiliser le nom comme clé primaire ?

C'est une mauvaise idée, car deux personnes peuvent porter le même nom. Une clé primaire doit être unique pour chaque ligne, d'où l'usage d'un identifiant numérique propre à la base.

Notions liées

Pour réviser tout le chapitre, va sur la page NSI, ou retrouve toutes les définitions dans le lexique du bac. Dans l'application, les quiz reprennent ces notions sur le programme de ta série.

Le matériel conseillé

Ce que je conseille pour compléter tes révisions sur RéviBac :

Liens sponsorisés. En tant que Partenaire Amazon, RéviBac réalise un bénéfice sur les achats remplissant les conditions requises.

Continue sur RéviBac

Des quiz corrigés et expliqués sur le programme officiel de ta série. Gratuit pour commencer.

Commencer gratuitement