Base de données et SGBD : qui fait quoi ?
What you'll learn
- faire la différence entre une base de données (un stockage organisé) et un SGBD — le programme qui exécute les requêtes SQL et gère les données
- décrire le trajet d'une requête « SQL → SGBD → résultat » et comprendre pourquoi des fichiers Excel ne tiennent pas face à des milliers d'utilisateurs en même temps
- citer ce qu'un SGBD apporte en plus de « simples fichiers » : les , le journal de récupération (), le contrôle d'accès (
GRANT) et les contrôles d'intégrité
Chapitre 1 — « La carte de l'archive »
L'instantané de « Kotomarket » n'est plus un signal perdu venu d'un secteur mort : il repose dans un sas de quarantaine de la station Vault-9, et sous la dernière ligne de son figure toujours la même signature : « K. ». Ce matin, une nouvelle entrée s'allume sur ton holopanneau : « Habilitation : index de l'archive. Délivrée par : module S.Q.L. » La porte du coffre coulisse sur le côté ; derrière elle, dans une lueur ambrée, des baies de serveurs ronronnent à un rythme régulier.
QUERY : Avant de lire la mémoire de quelqu'un d'autre, comprends comment elle est construite. Commençons par l'essentiel : ici, qu'est-ce qui stocke les données, et qui les garde ?
Base de données et SGBD
Une base de données (BD) est un espace de stockage organisé. L'instantané de « Kotomarket » contient des acheteurs, des produits, des commandes et des événements : pas des fichiers éparpillés, mais une structure claire. C'est précisément pour cela qu'on peut encore les lire cent soixante ans plus tard.
Mais le stockage, à lui seul, ne répond pas aux questions. Il faut un programme capable de créer des tables, d'enregistrer de nouvelles commandes, de lire les données et de veiller à ce que les liens ne se rompent jamais. Ce programme, c'est le SGBD (système de gestion de base de données). Exemples : PostgreSQL, MySQL, ClickHouse. Notre instantané est une base PostgreSQL, et elle parle encore le même SQL qu'à l'époque où la boutique tournait.
Tu écris une requête en SQL → tu l'envoies au SGBD → le SGBD va chercher les données demandées et renvoie le résultat. Excel est parfait pour un tableur personnel, mais il n'est pas fait pour une boutique où des milliers d'utilisateurs consultent des produits, passent des commandes et laissent des événements dans le système, tous au même moment.

Database and DBMS
A database is an organized store. The Kotomarket holds buyers, products, orders, and events — not scattered across files, but in a clear structure. That’s exactly why it can still be read a hundred and sixty years later.
But the store itself doesn’t answer questions. You need a program that can create tables, record new orders, read data, and make sure the links never break. That’s a (database management system). Examples: PostgreSQL, MySQL, ClickHouse. Our snapshot is a PostgreSQL database, and it still speaks the same SQL it did when the shop was alive.
You write a query in SQL → send it to the DBMS → the DBMS fetches the data you asked for and returns the result. Excel is fine for a personal spreadsheet, but not for a shop where thousands of users browse products, place orders, and leave events in the system all at once.
Ce qu'un SGBD sait faire, contrairement à de « simples fichiers »
À première vue, la boutique pourrait vivre sans SGBD : il suffirait d'écrire les commandes dans un CSV ou un fichier Excel. À l'échelle d'un carnet personnel, c'est exactement ce qu'on fait — jusqu'au moment où apparaissent les problèmes pour lesquels le SGBD a été inventé.
- Accès concurrent. Dans le « Kotomarket » vivant, les acheteurs passaient leurs commandes en même temps. Deux processus qui écrivent dans le même fichier risquent d'écraser mutuellement leurs modifications ; un SGBD exécute les modifications sous forme de et coordonne les opérations parallèles. PostgreSQL le fait grâce au mécanisme : les lecteurs ne bloquent pas les écritures, et inversement.
- Récupération après panne. L'alimentation clignote au milieu d'une écriture : le fichier est corrompu, et impossible de savoir quelle moitié de la commande a été enregistrée. Le SGBD inscrit d'abord la modification dans un journal (sous PostgreSQL, le — write-ahead log), puis la rejoue après la panne : la commande est soit enregistrée en entier, soit pas du tout.
- Contrôle d'accès. Un fichier est ouvert en entier, ou pas ouvert du tout. Dans un SGBD, les droits sont granulaires — jusqu'à une table précise :
-- L'analyste : lecture seule des commandes, sans droit de les modifier
GRANT SELECT ON orders TO analyst;
- Intégrité. Un SGBD n'acceptera pas une commande dont le prix est du texte, ni une référence vers un acheteur qui n'existe pas : les types des colonnes et les contraintes sont vérifiés à chaque écriture. Un fichier, lui, ne se préoccupe pas de ce qu'il contient.
- Questions déclaratives. « Montre-moi les commandes de plus de 5000 » tient en une ligne de SQL. Avec un fichier, il faudrait écrire un programme pour faire le même travail — et l'écrire sans erreur.
Le SGBD est l'intermédiaire entre toi et les données : il reçoit les requêtes SQL, les exécute et empêche la base de sombrer dans le chaos. Dans ce cours, nous travaillons avec PostgreSQL, un outil très courant en analyse de données comme en backend. Tu connais désormais le gardien. Mais avant d'ouvrir l'index de notre instantané, QUERY t'emmène dans la section voisine : le registre des autres archives de la vieille Terre — pour que tu comprennes pourquoi la nôtre, précisément, a survécu intacte.
Interview question
Question d'entretien : quelle est la différence entre une base de données et un SGBD ? Pourquoi une application ne devrait-elle pas simplement stocker ses données dans des fichiers ?
Bonne réponse : une base de données, ce sont des données organisées ; un SGBD est le programme qui les gère (PostgreSQL, MySQL, ClickHouse). Les fichiers n'offrent ni accès concurrent fiable (les écritures parallèles peuvent s'écraser), ni récupération après panne (un SGBD tient un journal et rejoue les modifications inachevées), ni droits granulaires, ni contrôles d'intégrité. Surtout, un SGBD répond à des requêtes SQL déclaratives, alors qu'un fichier doit être analysé par du code que tu écris toi-même.