💻sciences

Bases de données NSI : le modèle relationnel vs SQL, fini la confusion

14 août 2026 7 min de lecture

En NSI, les bases de données sont un thème central en Terminale. Mais entre le modèle relationnel et le langage SQL, beaucoup d'élèves se mélangent les pinceaux. Pas de panique ! Dans cet article, on va clarifier ces deux notions une bonne fois pour toutes. Tu vas comprendre pourquoi on les confond, ce qu'elles sont réellement, et comment les utiliser ensemble pour réussir tes évaluations. Prêt ? C'est parti !

Le modèle relationnel : le plan de ta base

Imagine que tu veuilles construire une maison. Avant de poser les briques, tu as besoin d'un plan. Ce plan, c'est le modèle relationnel. Il décrit la structure de ta base de données : quelles tables existent, quelles colonnes elles contiennent, et comment elles sont reliées entre elles. C'est un concept abstrait, purement logique, qui ne dépend d'aucun logiciel.

Les tables et les attributs

Dans le modèle relationnel, on organise les données dans des tables (aussi appelées relations). Chaque table a un nom, et possède des attributs (les colonnes). Par exemple, une table Eleves pourrait avoir les attributs : id, nom, prenom, classe.

Chaque ligne de la table est un enregistrement (ou tuple). C'est une instance concrète des attributs. Par exemple : 1 | Dupont | Jean | T1.

Les clés primaires et étrangères

Deux notions essentielles : la clé primaire et la clé étrangère. La clé primaire est un attribut (ou un ensemble d'attributs) qui identifie de manière unique chaque enregistrement. Dans Eleves, id est la clé primaire. La clé étrangère, elle, permet de faire le lien entre deux tables. Par exemple, une table Notes pourrait avoir une clé étrangère eleve_id qui référence Eleves.id.

Le modèle relationnel définit aussi des contraintes : intégrité de domaine, de référence, etc. Mais pour le bac, retiens l'essentiel : c'est la structure logique.

Le langage SQL : l'outil pour interagir avec la base

Si le modèle relationnel est le plan, le langage SQL (Structured Query Language) est la boîte à outils qui permet de construire et d'interroger la base. C'est un langage concret, utilisé par les SGBD (systèmes de gestion de bases de données) comme MySQL, PostgreSQL ou SQLite.

Avec SQL, tu peux :

  • Créer des tables avec CREATE TABLE
  • Insérer des données avec INSERT
  • Interroger avec SELECT
  • Modifier avec UPDATE
  • Supprimer avec DELETE

Le SQL est un langage déclaratif : tu dis ce que tu veux, pas comment le faire. Par exemple, SELECT * FROM Eleves; demande tous les élèves, sans préciser l'algorithme de recherche.

Exemple concret en SQL

Créons une table Eleves :

CREATE TABLE Eleves (
    id INTEGER PRIMARY KEY,
    nom TEXT NOT NULL,
    prenom TEXT NOT NULL,
    classe TEXT
);

Insérons un élève :

INSERT INTO Eleves (nom, prenom, classe) VALUES ('Dupont', 'Jean', 'T1');

Interrogeons :

SELECT nom, prenom FROM Eleves WHERE classe = 'T1';

C'est clair ? Le SQL manipule des données concrètes, tandis que le modèle relationnel définit la structure.

Pourquoi on les confond souvent ?

La confusion vient du fait que les deux sont liés : le SQL permet de créer et d'exploiter une base relationnelle. De plus, certains logiciels de modélisation génèrent directement du SQL à partir d'un diagramme. Mais retiens bien : le modèle relationnel est la théorie, le SQL est la pratique.

Une analogie : le modèle relationnel est comme la grammaire d'une langue, et le SQL est la parole. Tu peux connaître la grammaire sans parler, mais pour communiquer, il faut les deux.

Utiliser SQL en Python avec sqlite3

En NSI, tu seras amené à utiliser SQL depuis Python. Le module sqlite3 est parfait pour cela. Voici un exemple complet :

import sqlite3

# Connexion à une base (fichier)
conn = sqlite3.connect("base.db")
cursor = conn.cursor()

# Création de la table
cursor.execute("""CREATE TABLE IF NOT EXISTS Eleves (
    id INTEGER PRIMARY KEY,
    nom TEXT NOT NULL,
    prenom TEXT NOT NULL
)""")

# Insertion
cursor.execute("INSERT INTO Eleves (nom, prenom) VALUES (?, ?)", ("Martin", "Lucie"))
conn.commit()

# Requête
cursor.execute("SELECT * FROM Eleves")
print(cursor.fetchall())  # [(1, 'Martin', 'Lucie')]

conn.close()

Ce code illustre parfaitement la différence : la structure (modèle relationnel) est définie dans le CREATE TABLE, puis le SQL (le langage) est utilisé pour interagir.

Cas d'usage concret : un mini-projet

Imaginons que tu doives gérer une bibliothèque. Le modèle relationnel te permettra de définir les tables Livres, Auteurs et la relation entre elles. Ensuite, avec SQL, tu pourras répondre à des questions comme : « Quels livres ont été écrits par tel auteur ? »

Étape 1 : Modèle relationnel

  • Table Auteurs : id (clé primaire), nom
  • Table Livres : id (clé primaire), titre, auteur_id (clé étrangère vers Auteurs.id)

Étape 2 : Implémentation SQL

CREATE TABLE Auteurs (
    id INTEGER PRIMARY KEY,
    nom TEXT NOT NULL
);
CREATE TABLE Livres (
    id INTEGER PRIMARY KEY,
    titre TEXT NOT NULL,
    auteur_id INTEGER,
    FOREIGN KEY (auteur_id) REFERENCES Auteurs(id)
);

Étape 3 : Requête avec jointure

SELECT Livres.titre, Auteurs.nom
FROM Livres
JOIN Auteurs ON Livres.auteur_id = Auteurs.id
WHERE Auteurs.nom = 'Hugo';

Cet exemple montre comment le modèle relationnel guide la conception, et le SQL l'exploitation.

Conseils pour le bac NSI et tes révisions

Au bac, tu seras évalué sur ta capacité à :

  • Identifier les clés primaires et étrangères dans un schéma relationnel.
  • Écrire des requêtes SQL simples (SELECT, INSERT, UPDATE, DELETE).
  • Expliquer la différence entre le modèle relationnel et le langage SQL.

Mon conseil : entraîne-toi avec des exercices variés. Par exemple, crée une base de données pour un club de sport, et écris des requêtes pour lister les membres, les matchs, etc. N'hésite pas à consulter nos exercices NSI pour t'entraîner.

Pense aussi à revoir les cours NSI pour consolider les fondamentaux. Et si tu veux approfondir le SQL, notre page dédiée SQL est faite pour toi.

Pour aller plus loin, tu peux aussi consulter des ressources en ligne comme AlloBAC ou AlloLycée pour des révisions supplémentaires.

Conclusion : le duo gagnant

En résumé, le modèle relationnel est la structure logique de tes données (les tables, les clés, les relations), tandis que le langage SQL est l'outil pour créer, manipuler et interroger cette structure. Ils sont complémentaires et indispensables en NSI.

Ne te décourage pas : avec de la pratique, ces notions deviendront naturelles. Et souviens-toi, chaque expert a commencé par confondre les deux ! Continue à t'exercer, et tu verras, ça va cliquer.

📚 Pour aller plus loin

Questions fréquentes

Quelle est la différence entre une base de données relationnelle et le langage SQL ?

Une base de données relationnelle est un ensemble de données organisées selon le modèle relationnel, c'est-à-dire dans des tables avec des relations. Le langage SQL est le langage utilisé pour créer, interroger et gérer cette base. En résumé, la base est le conteneur, le SQL est l'outil.

Pourquoi confond-on souvent modèle relationnel et SQL ?

Car ils sont étroitement liés : le SQL permet d'implémenter le modèle relationnel dans un SGBD. On parle souvent de 'base de données SQL' alors qu'on devrait dire 'base de données relationnelle utilisant SQL'.

Qu'est-ce qu'une clé primaire dans le modèle relationnel ?

Une clé primaire est un attribut (ou une combinaison d'attributs) qui identifie de manière unique chaque ligne d'une table. Elle permet de garantir l'intégrité des données et de faciliter les relations entre tables.

Comment utiliser SQL en Python pour gérer une base de données ?

En Python, on utilise le module sqlite3 pour interagir avec une base SQLite. On se connecte, on exécute des requêtes SQL via cursor.execute(), on valide avec commit() et on ferme la connexion.

Quelles requêtes SQL sont au programme de NSI ?

Au programme de Terminale NSI, tu dois savoir utiliser SELECT (avec WHERE, ORDER BY, JOIN), INSERT, UPDATE, DELETE, et CREATE TABLE. Ces commandes couvrent les opérations de base sur les données.

Comment réviser le modèle relationnel pour le bac NSI ?

Pour réviser, entraîne-toi à créer des schémas relationnels à partir d'énoncés, identifie les clés primaires/étrangères, et pratique les requêtes SQL. Utilise des exercices en ligne et les annales du bac.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
bases de données NSImodèle relationnelSQLlangage SQLbase de données relationnelleNSI Terminale
Pixel