Chapitre 0 : SGBD relationnel, tables, clés, SQL
Introduction : SGBD et SQL
Avant d'écrire la moindre requête, un bon enquêteur connaît son terrain. Ce chapitre répond à deux questions : qu'est-ce qu'un SGBD relationnel, et qu'est-ce que SQL ? Pas de panique : il n'y a aucun prérequis, et tu lanceras ta première requête avant la fin.
Pourquoi une base de données ?
Dès qu'on manipule beaucoup d'informations (les élèves d'un lycée, les clients d'un magasin, les suspects d'une enquête), un simple tableur ou un tas de fichiers devient vite ingérable : les doublons s'accumulent, deux personnes modifient la même fiche en même temps, une erreur de saisie passe inaperçue.
Une base de données est un ensemble organisé d'informations, stocké durablement et structuré pour être retrouvé facilement. Bien conçue, elle permet de :
- éviter les doublons : chaque information est écrite une seule fois ;
- garder des données cohérentes : la base refuse ce qui n'a pas de sens ;
- retrouver vite une information parmi des millions de lignes ;
- partager les données entre plusieurs utilisateurs sans conflit ;
- contrôler les accès : chacun ne voit et ne modifie que ce qu'il a le droit.
Le SGBD : le logiciel qui gère la base
On ne manipule pas une base de données à la main : on passe par un SGBD, un Système de Gestion de Bases de Données. C'est le logiciel qui stocke les données, les protège, gère les accès simultanés et répond aux demandes des utilisateurs et des applications.
| SGBD relationnel | Où le rencontre-t-on ? |
|---|---|
| SQLite | intégré aux téléphones, aux navigateurs et à de nombreuses applications (c'est lui qui tourne dans ce site) |
| MySQL / MariaDB | sites web et applications en ligne |
| PostgreSQL | projets exigeants, très complet, libre |
| Microsoft SQL Server | entreprises, écosystème Microsoft |
| Oracle Database | grandes entreprises et administrations |
Le modèle relationnel : des tables reliées entre elles
Un SGBD est dit relationnel (SGBDR) quand il range les données dans des tables reliées entre elles. Une table ressemble à un tableau : chaque ligne décrit un élément (un enquêteur, une affaire), chaque colonne une information sur cet élément (son nom, son grade...).
| id | nom | grade | specialite |
|---|---|---|---|
| 1 | Maréchal | Commissaire | Direction |
| 2 | Vasseur | Capitaine | Filatures |
Pour ne pas répéter les informations, on les écrit une seule fois et on crée des liens : ci-dessous, chaque affaire ne contient que le numéro de son enquêteur, pas son nom ni son grade.
| id | titre | statut | enqueteur_id |
|---|---|---|---|
| 1 | Le vol de L'Étoile de Port-Noir | ouverte | 1 |
| 2 | Les cambriolages du Port | ouverte | 2 |
- Clé primaire (PK) : la colonne qui identifie chaque ligne de façon unique (ici
id). Deux lignes ne peuvent jamais avoir la même. - Clé étrangère (FK) : une colonne qui reprend la clé primaire d'une autre table pour créer un lien (ici
enqueteur_id, qui renvoie versenqueteurs). - Type : chaque colonne a un type de données (
INTEGERpour un entier,TEXTpour un texte...) que la base vérifie.
| Mot courant | Vocabulaire relationnel |
|---|---|
| un tableau | une table (ou relation) |
| une ligne | un enregistrement (ou n-uplet) |
| une colonne | un attribut (ou champ) |
| un numéro unique | une clé primaire |
| un renvoi vers une autre table | une clé étrangère |
| le plan de la base | le schéma |
SQL : le langage des bases de données
SQL (Structured Query Language, « langage de requêtes structuré ») est le langage standard pour interroger et modifier une base relationnelle. Tu écris une requête, le SGBD l'exécute et te renvoie un résultat, le plus souvent un tableau.
- Déclaratif : tu décris ce que tu veux obtenir, pas la manière de le chercher. C'est le SGBD qui choisit comment faire.
- Standardisé (norme ISO) : les bases communes se retrouvent partout, avec de petites variantes (des « dialectes ») selon le SGBD.
- Lisible : une requête ressemble à une phrase en anglais.
SELECT nom, specialite
FROM enqueteurs
WHERE grade = 'Capitaine';| Famille | Rôle | Mots-clés | Dans ce site |
|---|---|---|---|
| Lecture (DQL) | interroger les données | SELECT | chapitres 1 à 6 |
| Manipulation (DML) | ajouter, modifier, supprimer des lignes | INSERT, UPDATE, DELETE | chapitre 7 |
| Définition (DDL) | créer ou modifier la structure des tables | CREATE, ALTER, DROP | Cours seul : chapitre 8 |
| Contrôle (DCL) | gérer les droits d'accès | GRANT, REVOKE | Cours seul : chapitre 9 |
| Transactions (TCL) | valider ou annuler un groupe d'opérations | COMMIT, ROLLBACK | Cours seul : chapitre 10 |
Le trajet d'une requête
- 1. Tu écris une requête SQL.
- 2. Elle est transmise au SGBD.
- 3. Le SGBD vérifie la syntaxe, choisit la meilleure façon de lire les données, puis les lit.
- 4. Il renvoie le résultat sous forme de tableau.
Ta première requête
SELECT * FROM enqueteurs;SELECT dit quoi afficher (* signifie « toutes les colonnes »), FROM dit où le chercher (le nom de la table). Le point-virgule marque la fin de la requête. Le chapitre 1 détaille tout cela.
Comment fonctionne ce site
- Chaque chapitre a deux volets : un cours (avec un exercice à trous) et une énigme à résoudre.
- Écris ta requête dans l'éditeur, puis exécute-la avec le bouton ou Ctrl+Entrée.
- Clique sur Valider : ton résultat est comparé à la bonne réponse. Trois indices progressifs t'aident si tu bloques.
- Chaque chapitre terminé te rapporte un badge. Ta progression est sauvegardée dans ton navigateur.
- L'aide-mémoire de l'en-tête rappelle la syntaxe à tout moment.
À toi de jouer : Exercice guidé
Affiche toute la table des enquêteurs. Pour trouver son nom, regarde la liste des tables dans la barre latérale, puis remplace le ___.