Brigade des Requêtes

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 relationnelOù le rencontre-t-on ?
SQLiteintégré aux téléphones, aux navigateurs et à de nombreuses applications (c'est lui qui tourne dans ce site)
MySQL / MariaDBsites web et applications en ligne
PostgreSQLprojets exigeants, très complet, libre
Microsoft SQL Serverentreprises, écosystème Microsoft
Oracle Databasegrandes 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...).

idnomgradespecialite
1MaréchalCommissaireDirection
2VasseurCapitaineFilatures

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.

idtitrestatutenqueteur_id
1Le vol de L'Étoile de Port-Noirouverte1
2Les cambriolages du Portouverte2
  • 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 vers enqueteurs).
  • Type : chaque colonne a un type de données (INTEGER pour un entier, TEXT pour un texte...) que la base vérifie.
Mot courantVocabulaire relationnel
un tableauune table (ou relation)
une ligneun enregistrement (ou n-uplet)
une colonneun attribut (ou champ)
un numéro uniqueune clé primaire
un renvoi vers une autre tableune clé étrangère
le plan de la basele 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.
Exemple : trouver les capitaines de la brigade
SELECT nom, specialite
FROM enqueteurs
WHERE grade = 'Capitaine';
FamilleRôleMots-clésDans ce site
Lecture (DQL)interroger les donnéesSELECTchapitres 1 à 6
Manipulation (DML)ajouter, modifier, supprimer des lignesINSERT, UPDATE, DELETEchapitre 7
Définition (DDL)créer ou modifier la structure des tablesCREATE, ALTER, DROPCours seul : chapitre 8
Contrôle (DCL)gérer les droits d'accèsGRANT, REVOKECours seul : chapitre 9
Transactions (TCL)valider ou annuler un groupe d'opérationsCOMMIT, ROLLBACKCours 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

Afficher tout le contenu de la table des enquêteurs
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 ___.

Passer à l'énigme : Le premier jour à la brigade