cours1 min de lecture

Les systèmes de gestion de bases de données

Persistance, accès concurrents, efficacité et sécurité — les quatre services rendus par un SGBD relationnel.
programme

Introduction

Un système de gestion de bases de données (SGBD) est le logiciel qui réalise concrètement le modèle relationnel : il stocke les fichiers, applique les contraintes du schéma, exécute les requêtes SQL et arbitre les accès simultanés de multiples utilisateurs. Sans SGBD, on aurait des fichiers ; avec un SGBD, on a une base. Le programme retient quatre services que vous devez savoir nommer et expliquer.

Une image utile : le SGBD est au stockage des données ce qu'un bibliothécaire est à un fonds de livres. Il sait où chaque ouvrage est rangé (les index), peut prêter à plusieurs lecteurs sans confusion (concurrence), tient des registres de tous les mouvements (journalisation) et n'ouvre ses réserves qu'à des lecteurs munis d'une carte (sécurité). Vous n'avez pas besoin de fouiller les rayons : vous posez votre demande, le bibliothécaire s'en occupe.

Quelques noms à connaître : SQLite (le plus simple, embarqué, un seul fichier), PostgreSQL et MySQL/MariaDB (serveurs open-source incontournables), Oracle et SQL Server (propriétaires, marché entreprise).

Service n°1 — Persistance des données

Le SGBD garantit la durée de vie des données au-delà de l'exécution d'un programme. Une donnée écrite reste écrite, même si l'application plante, même si la machine s'éteint, même après un mois sans usage. Cette persistance est obtenue par stockage sur disque (et pas seulement en mémoire vive) et par un journal de transactions qui permet de rejouer ou d'annuler une opération en cas d'incident.

C'est ce service qui distingue une base de données d'une simple structure Python en mémoire : la liste disparaît à la fin du script, la table de la base demeure.

Service n°2 — Gestion des accès concurrents

Plusieurs utilisateurs peuvent interroger ou modifier la base en même temps. Sans précaution, deux écritures simultanées peuvent se corrompre mutuellement. Le SGBD organise alors les transactions — des séquences d'opérations qui s'exécutent comme un tout indivisible : ou tout réussit, ou tout est annulé. Cette propriété de « tout ou rien » s'appelle l'atomicité. Pour la garantir lorsque deux transactions touchent les mêmes données, le SGBD met en place des verrous qui sérialisent les accès, comme un feu rouge à un croisement.

Exemple — virement bancaire :

-- Transaction (logique) :
UPDATE Compte SET solde = solde - 100 WHERE id = 'A';
UPDATE Compte SET solde = solde + 100 WHERE id = 'B';

Sans gestion de concurrence, une panne entre les deux instructions laisserait la somme de 100 € envolée. Le SGBD applique l'atomicité : ou les deux instructions réussissent, ou aucune ne prend effet.

Que se passe-t-il si deux transactions modifient simultanément le solde du même compte ?

Service n°3 — Efficacité de traitement des requêtes

Une table de 10 millions de lignes ne se parcourt pas naïvement. Le SGBD construit des index — structures auxiliaires (souvent des arbres équilibrés) qui pointent vers les lignes correspondant à une valeur donnée. Une recherche par clé primaire passe ainsi de O(n)O(n) à O(logn)O(\log n).

Avant chaque exécution, le SGBD calcule un plan d'exécution : l'ordre des opérations (quel index utiliser, dans quel ordre joindre les relations, où appliquer les filtres). C'est l'optimiseur de requêtes qui traduit la requête déclarative en une stratégie efficace.

C'est pour cela que le SQL est déclaratif : vous décrivez le résultat voulu, le SGBD choisit la stratégie. Vous ne pouvez pas toujours en faire autant avec un programme Python que vous écrivez vous-même.

Service n°4 — Sécurisation des accès

Toutes les données ne sont pas accessibles à tous. Le SGBD gère un système de droits : qui peut lire quelle relation, qui peut y écrire, qui peut modifier le schéma. Les droits sont attribués explicitement avec GRANT et révoqués avec REVOKE :

GRANT SELECT ON Eleve TO professeur;
GRANT INSERT, UPDATE ON Inscription TO secretariat;
REVOKE INSERT ON Eleve FROM stagiaire;

Au-delà des droits, le SGBD gère aussi le chiffrement des communications, l'authentification des utilisateurs, et la journalisation des accès (qui a lu quoi, qui a modifié quoi, à quelle heure). Ces mécanismes sont indispensables dès qu'une base contient des données personnelles soumises au RGPD.

Quel mot-clé SQL retire un droit à un utilisateur ?

Synthèse — les quatre services

ServiceCe que le SGBD garantit
PersistanceLes données survivent à l'arrêt de l'application et de la machine.
Accès concurrentsPlusieurs utilisateurs simultanés sans corruption mutuelle, via transactions et verrous.
EfficacitéIndex, plans d'exécution, optimiseur — requêtes rapides même sur grandes tables.
SécuritéDroits (GRANT/REVOKE), authentification, chiffrement, journalisation.

Le programme ne demande pas d'en détailler le fonctionnement interne — il demande de savoir nommer et expliquer le rôle de chaque service. Apprenez ce tableau.