Terminale NSI Bases de données relationnelles

01 · Découvrir

Bases de données relationnelles

Structurer, relier et interroger des données sans perdre leur cohérence.

  • Lire un schéma relationnel
  • Identifier les clés
  • Écrire des requêtes SQL
SELECT comprendre
FROM donnees
WHERE relations = 'claires';
résultat1 idée bien organisée

02 · Le besoin

Pourquoi une base de données ?

Quand les informations se multiplient, un simple fichier devient difficile à partager, vérifier et mettre à jour.

Fichiers isolés

Les mêmes faits sont recopiés

Une adresse corrigée ici reste fausse ailleurs. Les doublons créent des contradictions.

Base de données

Les faits sont structurés

Les données suivent un schéma commun et les liens entre elles sont explicités.

SGBD

Les règles sont appliquées

Le système stocke, recherche, modifie, protège et contrôle la cohérence des données.

Idée clé : une base n’est pas seulement un ensemble de tableaux ; c’est un ensemble organisé de données soumis à des règles.

03 · Le vocabulaire

Une relation se lit comme une table.

Relation
la table entière
Attribut
une colonne nommée
Tuple
une ligne de valeurs
Domaine
les valeurs autorisées
Schéma
nom, attributs et domaines

LIVRE (id_livre, titre, annee, id_auteur)

id_livretitreanneeid_auteur
101Dune19651
102Parable du semeur19932
103La Main gauche de la nuit19693
attribut tuple valeur

04 · Modéliser

Un fait, un seul endroit.

On sépare les objets du problème puis on les relie par leurs identifiants.

Conséquence : le nom de l’auteur n’est stocké qu’une fois. Chaque livre pointe vers lui grâce à id_auteur.

05 · Garantir la cohérence

Les clés et les contraintes.

PK

Clé primaire

Identifie chaque ligne de manière unique. Elle ne peut être ni vide ni dupliquée.

FK

Clé étrangère

Référence la clé primaire d’une autre table et matérialise une relation.

✓

Contraintes de domaine

Imposent un type, une plage de valeurs ou une propriété comme NOT NULL.

TentativeINSERT INTO Livre VALUES (104, 'Nouveau livre', 2026, 99);

Rejetée si aucun auteur n’a pour identifiant 99 : l’intégrité référentielle est protégée.

06 · Interroger

Une requête, trois questions.

  1. Quelles colonnes ?SELECT
  2. Dans quelle table ?FROM
  3. Sous quelle condition ?WHERE
Les livres publiés depuis 1990
SELECT titre, annee
FROM Livre
WHERE annee >= 1990;
Parable du semeur1993

07 · Résumer

Trier, regrouper, compter.

SQL peut produire une synthèse sans récupérer toutes les lignes dans un programme.

Nombre de livres par auteur
SELECT id_auteur, COUNT(*) AS nb_livres
FROM Livre
GROUP BY id_auteur
ORDER BY nb_livres DESC;
ORDER BYclasse le résultat
GROUP BYforme des groupes
COUNTcompte les lignes
AVG · MIN · MAXcalculent une synthèse

08 · Relier

La jointure reconnecte les tables.

SELECT l.titre, a.nom
FROM Livre AS l
JOIN Auteur AS a
  ON l.id_auteur = a.id_auteur;

À lire ainsi : pour chaque livre, chercher l’auteur dont l’identifiant correspond à la clé étrangère.

09 · Faire évoluer

Modifier sans casser.

Les contraintes continuent de s’appliquer quand on ajoute, corrige ou supprime des données.

AjouterINSERT INTO Livre (…)
VALUES (…);
CorrigerUPDATE Livre
SET annee = 1965
WHERE id_livre = 101;
SupprimerDELETE FROM Livre
WHERE id_livre = 101;
Réflexe indispensableAvant un UPDATE ou un DELETE, vérifier la condition WHERE. Sans elle, toutes les lignes sont concernées.

10 · Programmer

Python dialogue avec SQLite.

  • ouvrir une connexion ;
  • exécuter une requête paramétrée ;
  • récupérer puis exploiter les lignes ;
  • fermer la connexion.
import sqlite3

connexion = sqlite3.connect("mediatheque.db")
curseur = connexion.cursor()
curseur.execute(
    "SELECT titre FROM Livre WHERE annee >= ?",
    (2020,)
)

for ligne in curseur.fetchall():
    print(ligne)

connexion.close()

Pourquoi le symbole ? ? Il sépare la requête des valeurs fournies et évite de fabriquer du SQL par concaténation.

11 · Être responsable

Une donnée utile reste une donnée à protéger.

01

Minimiser

Ne collecter que les données nécessaires à l’objectif annoncé.

02

Autoriser

Limiter les accès selon les rôles et protéger les comptes.

03

Fiabiliser

Corriger les erreurs, sauvegarder et restaurer les informations.

04

Limiter la durée

Supprimer les données personnelles devenues inutiles.

Question à débattre : une médiathèque a-t-elle besoin de conserver tout l’historique des emprunts d’un lecteur ?

12 · Passer à la pratique

À vous de jouer.

L’activité guidée construit une médiathèque SQLite en mémoire, puis vous fait interroger et modifier ses données.

  1. Observer le schéma et exécuter les premières cellules.
  2. Résoudre les défis SELECT, WHERE et JOIN.
  3. Tester les contraintes puis enrichir la base.

1 / 12

Clavier : ← → pour naviguer · F pour le plein écran