Menu
Coddy logo textTech

Qu'est-ce qu'une base de données ?

Une base de données est un ensemble organisé de données stocké sur un ordinateur pour que des programmes puissent les retrouver, les ajouter, les modifier et les supprimer rapidement et en toute sécurité. Elle est gérée par un logiciel appelé système de gestion de base de données (SGBD), comme PostgreSQL, MySQL, SQLite ou MongoDB.

Par Kevin Spektor, Cofondateur et CTO

Mis à jour le 24 septembre 2026

Quand tu te connectes à un site web, le site doit trouver ton compte parmi des millions d'autres, vérifier ton mot de passe et charger tes réglages, le tout en quelques millisecondes. Il n'ouvre pas un fichier texte pour le lire ligne par ligne. Il envoie une requête comme SELECT * FROM users WHERE email = 'ana@example.com' à une base de données, et la base de données saute directement à la bonne ligne grâce à un index, un peu comme l'index à la fin d'un livre.

Comment fonctionne une base de données

Deux éléments travaillent ensemble. La base de données, ce sont les données, organisées selon une structure fixe. Le système de gestion de base de données (SGBD, ou DBMS en anglais) est le programme qui stocke ces données dans des fichiers, les garde cohérentes et répond aux requêtes. PostgreSQL, MySQL et SQLite sont des SGBD ; ta liste de clients est la base de données.

Dans une base de données relationnelle, les données vivent dans des tables. Chaque table a des colonnes (nom, pays, points) et des lignes (une par utilisateur). Une requête passe par ces étapes :

  1. Ton programme envoie une requête, généralement écrite en SQL (Structured Query Language, langage de requête structuré).
  2. Le SGBD analyse la requête et prévoit comment y répondre : quelles tables lire et si un index permet de sauter la plupart des lignes.
  3. Il lit les données sur le disque par pages de taille fixe (4 096 octets par défaut dans SQLite, 8 Ko dans PostgreSQL), en gardant en mémoire les pages souvent utilisées.
  4. Il filtre, trie et combine les lignes, puis renvoie le résultat.

Python est livré avec SQLite, donc tu peux faire tourner une vraie base de données ici même :

Kenji 340
Omar 340
Ana 120
users: 4 average points: 222.5

Le programme ne dit jamais comment chercher. Il décrit le résultat qu'il veut, et le SGBD décide comment l'obtenir. C'est la principale différence entre interroger une base de données et écrire une boucle sur une liste.

Les types de bases de données

TypeStocke les données sous forme deExemplesUsage typique
Relationnelle (SQL)Tables de lignes et de colonnes, reliées par des clésPostgreSQL, MySQL, SQLite, Oracle, SQL ServerUtilisateurs, commandes, paiements : la plupart des applications
Orientée documentsDocuments proches du JSONMongoDB, Firestore, CouchDBEnregistrements dont les champs varient de l'un à l'autre
Clé-valeurUne valeur retrouvée par une cléRedis, DynamoDBCaches, sessions, compteurs
Orientée colonnesLignes aux colonnes flexibles réparties sur de nombreux serveursCassandra, HBaseTrès gros volumes d'écriture
Orientée graphesDes nœuds et les relations entre euxNeo4jRéseaux sociaux, recommandations
Séries temporellesMesures indexées par le tempsInfluxDB, TimescaleDBMétriques, relevés de capteurs
VectorielleListes de nombres (embeddings)pgvector, Pinecone, MilvusRecherche par similarité pour les fonctions d'IA

Tout ce qui n'est pas relationnel est souvent regroupé sous le nom de NoSQL. Les bases relationnelles restent le choix par défaut de la plupart des applications, car les tables, les contraintes et le SQL couvrent bien un large éventail de problèmes. Beaucoup de produits combinent aussi plusieurs types : PostgreSQL stocke des documents JSON, et pgvector lui ajoute la recherche vectorielle.

Les transactions : tout ou rien

Transférer de l'argent d'Ana à Ben demande deux modifications : ajouter à Ben, retirer à Ana. Si le programme plante entre les deux, de l'argent apparaît de nulle part. Une transaction regroupe des modifications pour qu'elles soient soit toutes enregistrées, soit aucune. Ici, la seconde modification enfreint une règle (un solde ne peut pas passer sous zéro), donc la base de données annule aussi la première :

transfer 30 done
{'ana': 20, 'ben': 30}
transfer 40 failed: CHECK constraint failed: balance >= 0
{'ana': 20, 'ben': 30}

Les 40 de Ben ont été ajoutés puis retirés, donc les totaux restent justes. Les bases relationnelles garantissent quatre propriétés pour les transactions, appelées ACID : atomicité (tout ou rien), cohérence (des règles comme CHECK sont toujours respectées), isolation (deux utilisateurs qui exécutent des transactions en même temps ne voient pas le travail à moitié fini de l'autre) et durabilité (une fois enregistrée, une modification survit à un plantage ou à une coupure de courant).

Base de données, tableur ou fichier

Fichier texte ou CSVTableurBase de données
TailleCe que ton programme peut charger1 048 576 lignes par feuille dans ExcelDes milliards de lignes
Plusieurs écritures simultanéesNonLimitéOui, avec des verrous et des transactions
Trouver un enregistrementLire tout le fichierFiltrer ou chercherRecherche par index
Règles sur les donnéesAucuneValidation facultativeTypes, contraintes, clés étrangères
Poser des questionsÉcrire ton propre codeFormulesSQL ou une API de requêtes

Un tableur est un bon outil pour une personne qui consulte quelques milliers de lignes. Dès que plusieurs programmes ou utilisateurs écrivent des données en même temps, ou que les données doivent respecter des règles, la base de données est le bon outil.

Comment les bases de données protègent les données

Un SGBD écrit chaque modification dans un journal avant de toucher aux fichiers de données (le journal d'écriture anticipée, ou write-ahead log), donc après un plantage, il peut rejouer ou annuler le travail inachevé. PostgreSQL peut stocker un checksum sur chaque page de 8 Ko et signaler un échec de checksum quand un disque défaillant renvoie des données abîmées. Les utilisateurs et les permissions décident qui peut lire ou modifier quelles tables, et la réplication garde des copies sur d'autres serveurs. Les programmes doivent aussi passer les entrées des utilisateurs en paramètres, comme les marqueurs ? ci-dessus, et jamais en les collant dans le texte SQL, car c'est ainsi que se produisent les attaques par injection SQL.

Idées reçues

  • « SQL est une base de données. » SQL est le langage. PostgreSQL, MySQL et SQLite sont des bases de données qui le comprennent.
  • « NoSQL veut dire pas de SQL du tout. » Le terme se lit généralement comme « not only SQL » (pas seulement SQL), et plusieurs bases NoSQL ont des langages de requête qui ressemblent au SQL, comme le CQL de Cassandra.
  • « Une base de données, c'est toujours un gros serveur. » SQLite est un simple fichier qu'un programme ouvre directement, sans aucun serveur. Il tourne dans chaque téléphone Android et iOS.
  • « Les données d'une base de données sont à l'abri pour toujours. » Une base de données protège contre les plantages, pas contre quelqu'un qui lance un DELETE par erreur. Les sauvegardes restent nécessaires.

Pour aller plus loin

Le cours SQL enseigne les requêtes à partir du premier SELECT. La documentation SQLite couvre les étapes suivantes : ce qu'est SQLite, créer une table, les index et se protéger de l'injection SQL. Pour voir comment les données sont organisées sur le disque, lis qu'est-ce qu'un octet, et la page checksum explique comment les pages abîmées sont détectées.

Questions fréquentes

Qu'est-ce qu'une base de données, en termes simples ?
Une base de données est l'endroit où un programme range ses informations pour pouvoir les retrouver vite. Imagine un classeur avec un index parfait : tu demandes « toutes les commandes de la semaine dernière » et tu obtiens la réponse en quelques millisecondes, même quand il y a des millions d'enregistrements.
Quel est un exemple de base de données ?
Les contacts de ton téléphone sont stockés dans une base de données : Android comme iOS sont livrés avec SQLite. Une banque garde les comptes de ses clients dans une base de données comme Oracle ou PostgreSQL, et Wikipédia stocke ses articles dans MariaDB. Une boutique en ligne garde ses produits, ses clients et ses commandes dans des tables liées entre elles.
Quels sont les quatre types de bases de données ?
Il n'existe pas de liste officielle de quatre. Les quatre les plus souvent cités sont les bases relationnelles (tables et SQL), les bases orientées documents (enregistrements proches du JSON), les bases clé-valeur (une valeur retrouvée par une clé) et les bases orientées graphes (nœuds et relations). Les manuels plus anciens citent aussi les bases hiérarchiques et les bases réseau.
Quelles sont les 5 bases de données les plus utilisées ?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL et MongoDB occupent depuis des années les cinq premières places du classement de popularité DB-Engines. Chez les développeurs, PostgreSQL est la base de données la plus utilisée dans l'enquête Stack Overflow Developer Survey depuis 2023, et SQLite est la plus déployée, puisqu'elle est intégrée aux téléphones et aux navigateurs.
Quelle est la différence entre une base de données et un SGBD ?
La base de données, ce sont les données elles-mêmes, organisées en tables ou en documents. Le SGBD est le logiciel qui stocke ces données sur le disque et répond aux requêtes, comme PostgreSQL ou MySQL. On dit souvent « base de données » pour les deux.
Faut-il apprendre le SQL pour utiliser une base de données ?
Pour les bases relationnelles, oui : le SQL sert à créer des tables et à interroger les données, et ses bases s'apprennent en quelques jours. Beaucoup de programmes utilisent une bibliothèque qui écrit le SQL à ta place, mais connaître le SQL aide beaucoup à comprendre ce que fait cette bibliothèque et pourquoi une requête est lente.
Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER