NSI · terminale speGratuit
Chapitre 2 — Bases de données relationnelles et SQL
L'essentiel en 30 secondes
Une base de données relationnelle organise les données en tables (relations). Chaque table a des colonnes (attributs) et des lignes (enregistrements). La clé primaire identifie de façon unique chaque ligne. La clé étrangère relie deux tables entre elles. On interroge la base avec SQL : SELECT pour lire, WHERE pour filtrer, JOIN pour croiser des tables, et les fonctions d'agrégation (COUNT, SUM, AVG) pour calculer.
Notions clés
- Relation (table)
- Ensemble de n-uplets (lignes) partageant le même schéma (même liste d'attributs typés).
- Clé primaire
- Attribut (ou groupe d'attributs) qui identifie de façon unique chaque enregistrement. Jamais NULL, jamais de doublon.
- Clé étrangère
- Attribut d'une table qui référence la clé primaire d'une autre table. Assure l'intégrité référentielle.
- Requête SELECT
- Instruction SQL de lecture : SELECT attributs FROM table WHERE condition ORDER BY attribut.
- Jointure (JOIN)
- Opération qui combine les lignes de deux tables selon une condition de correspondance entre clé primaire et clé étrangère.
- Fonctions d'agrégation
- COUNT, SUM, AVG, MIN, MAX — opèrent sur un ensemble de lignes, souvent avec GROUP BY.
Formules
SELECT avec filtre et tri
Condition : Requête de base : projection + sélection + tri
JOIN entre deux tables
Condition : Croisement de tables via clé étrangère
Agrégation avec GROUP BY
Condition : HAVING filtre après agrégation (WHERE filtre avant)
INSERT / UPDATE / DELETE
Condition : Modification des données — à connaître mais rarement au bac
A retenir
- WHERE filtre les lignes AVANT agrégation, HAVING filtre APRÈS agrégation.
- Une clé primaire est unique et non nulle ; une clé étrangère peut être nulle.
- JOIN sans condition (ou avec un mauvais ON) produit un produit cartésien — explosion du nombre de lignes.
Erreurs classiques
Erreur : Confondre WHERE et HAVING
Correction : WHERE s'applique aux lignes individuelles. HAVING s'applique aux groupes formés par GROUP BY.
Erreur : Oublier le ON dans un JOIN
Correction : Sans ON, tu obtiens un produit cartésien (toutes les combinaisons). Toujours préciser la condition de jointure.
Erreur : Mettre une colonne non agrégée dans SELECT avec GROUP BY
Correction : Avec GROUP BY, chaque colonne dans SELECT doit être soit dans GROUP BY, soit dans une fonction d'agrégation.
Astuce méthode
Face à une requête SQL complexe au bac, décompose-la étape par étape dans l'ordre d'exécution : d'abord FROM (quelles tables ?), puis WHERE (quelles lignes ?), puis GROUP BY, puis SELECT. Écris le résultat intermédiaire à chaque étape.