Aller au contenu

Bases de données

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

Une base de données est une collection organisée d’informations, stockée électroniquement, que l’on peut interroger, modifier et protéger grâce à un logiciel dédié : le système de gestion de base de données (SGBD).

Dit plus simplement, c’est un peu comme un ensemble de grands tableurs Excel reliés entre eux, avec des fonctions pour trier, filtrer, ajouter, modifier et supprimer des données. À une différence près : une base de données peut contenir des millions de lignes, être utilisée par des milliers de personnes en même temps sans que les données se mélangent, et garantir qu’une opération est soit entièrement faite, soit pas du tout.

Une base de données est un ensemble de données :

  • Organisées : les données sont rangées dans des tables (ou des documents, selon le type de base), ce qui facilite leur recherche et leur manipulation.

  • Structurées : chaque information a un type (texte, nombre, date…), ce qui permet de les trier, de les filtrer et de les retrouver facilement.

  • Gérées : le SGBD permet d’ajouter, de modifier et de supprimer des données, de les protéger contre les accès non autorisés et de les sauvegarder.

Vous en utilisez tous les jours sans le savoir :

  • La liste de contacts et les messages de votre téléphone, stockés dans une base SQLite sur Android comme sur iPhone

  • Le catalogue d’une bibliothèque ou d’une boutique en ligne

  • Votre compte bancaire, vos commandes, votre historique de navigation

  • Les pages, articles, utilisateurs et réglages d’un site WordPress, stockés dans MySQL ou MariaDB

Par abus de langage, on appelle souvent « base de données » le logiciel lui-même. En réalité, MySQL, PostgreSQL ou SQLite sont des SGBD : chacun gère une ou plusieurs bases de données.

Le vocabulaire à connaître

  • Table : un ensemble de données du même genre, par exemple la table des articles ou celle des utilisateurs. C’est l’équivalent d’une feuille de tableur.

  • Ligne (ou enregistrement) : un élément de la table, par exemple un article précis.

  • Colonne (ou champ) : une information présente sur chaque ligne, avec un type : le titre (texte), la date de publication (date), le nombre de vues (nombre).

  • Clé primaire : l’identifiant unique de chaque ligne, le plus souvent un numéro (ID).

  • Clé étrangère : une colonne qui pointe vers la clé primaire d’une autre table. C’est elle qui crée les « relations » : un article pointe vers son auteur.

  • Index : une structure qui accélère les recherches sur une colonne, comme l’index à la fin d’un livre.

  • Requête : une question posée à la base, le plus souvent écrite en SQL (Structured Query Language).

  • Transaction : un groupe d’opérations exécutées « tout ou rien ». Si un virement échoue au milieu, aucun compte n’est débité.

Exemple : cette requête SQL sélectionne les 5 derniers articles publiés de la base de données d’un site WordPress, avec le nom de leur auteur.

SQL7 lignes
SELECT p.post_title, p.post_date, u.display_name
FROM wp_posts AS p
JOIN wp_users AS u ON u.ID = p.post_author
WHERE p.post_type = 'post'
  AND p.post_status = 'publish'
ORDER BY p.post_date DESC
LIMIT 5;

Même sans connaître le SQL, on devine ce qu’elle fait : c’est ce qui fait son succès depuis les années 1970. Le JOIN relie les deux tables grâce à la clé étrangère post_author, qui contient l’ID de l’auteur dans la table wp_users.

Les différents types de bases de données

Il n’existe pas une seule façon de ranger des données. Chaque famille de bases a été inventée pour résoudre un problème précis : les bases relationnelles restent la norme, et les autres se sont imposées pour des usages spécialisés.

Les bases relationnelles (SQL)

Les données sont rangées dans des tables reliées entre elles, avec un schéma défini à l’avance : chaque colonne a un nom et un type. On les interroge en SQL. Elles garantissent les propriétés ACID (Atomicité, Cohérence, Isolation, Durabilité) : une donnée enregistrée est fiable, même en cas de panne.

Exemples : MySQL, MariaDB, PostgreSQL, SQLite, Microsoft SQL Server, Oracle Database, IBM Db2.

Pour quoi faire : la grande majorité des sites et applications : CMS, e-commerce, comptabilité, gestion, banque. Si vous hésitez, c’est presque toujours le bon choix.

Les bases clé-valeur

Le modèle le plus simple : une clé (un nom) associée à une valeur, comme un dictionnaire géant. Elles sont très rapides, car souvent gardées en mémoire vive.

Pour quoi faire : cache, sessions utilisateurs, files d’attente, compteurs en temps réel. Sur WordPress, Redis ou Memcached servent de « cache objet » pour soulager MySQL.

Les bases orientées documents

Chaque élément est un « document » au format JSON, qui peut contenir des listes et des sous-objets. Deux documents d’une même collection n’ont pas forcément les mêmes champs : aucun schéma n’est imposé.

Pour quoi faire : catalogues de produits aux caractéristiques variées, contenus, applications mobiles, prototypes qui évoluent vite.

Les bases orientées colonnes (wide-column)

Inspirées de Bigtable, le système interne de Google, elles répartissent d’énormes volumes de données sur des dizaines ou des centaines de serveurs et encaissent des écritures massives.

Pour quoi faire : messageries, objets connectés, historiques d’événements à très grande échelle (Netflix, Apple ou Discord les utilisent).

Les bases orientées graphes

Les données sont des nœuds (personnes, produits, lieux) reliés par des liens. Elles sont idéales quand les relations comptent autant que les données elles-mêmes.

Pour quoi faire : réseaux sociaux (« les amis de mes amis »), recommandations, détection de fraude, cartographie de réseaux.

Les bases de séries temporelles

Elles sont optimisées pour des mesures horodatées qui arrivent en continu, et savent les agréger ou les effacer automatiquement après un certain temps.

Exemples : InfluxDB, TimescaleDB (une extension de PostgreSQL), Prometheus, QuestDB.

Pour quoi faire : monitoring de serveurs, capteurs, cours de bourse, statistiques de visites.

Les bases analytiques (OLAP) et entrepôts de données

Elles stockent les données par colonne plutôt que par ligne, ce qui permet de calculer des sommes et des moyennes sur des milliards de lignes en quelques secondes. Elles ne servent pas à faire tourner un site, mais à analyser son activité.

Pour quoi faire : tableaux de bord, business intelligence, analyse des ventes et des logs.

Les moteurs de recherche

Spécialisés dans la recherche plein texte, ils gèrent la tolérance aux fautes de frappe, le classement par pertinence et les filtres à facettes. Ils complètent généralement une base relationnelle, qui reste la source de vérité.

Pour quoi faire : barre de recherche d’un site e-commerce, recherche dans une documentation ou dans des logs.

Les bases vectorielles

La famille la plus récente, portée par l’intelligence artificielle. Un texte ou une image est transformé en « vecteur », une liste de nombres qui représente son sens. La base retrouve alors les éléments les plus proches par le sens, et non par les mots exacts.

Exemples : pgvector (une extension de PostgreSQL), Pinecone, Qdrant, Weaviate, Milvus, Chroma.

Pour quoi faire : recherche sémantique, chatbots qui répondent à partir de vos propres documents (RAG), recommandations.

Les bases embarquées

Pas de serveur à installer : la base est un simple fichier, lu directement par l’application. SQLite est, selon ses auteurs, le moteur de base de données le plus déployé au monde : il est présent dans chaque smartphone et chaque navigateur.

Exemples : SQLite (relationnelle), DuckDB (analytique), RocksDB, LMDB.

Pour quoi faire : applications mobiles, logiciels de bureau, navigateurs, petits sites et outils.

En résumé :

Type

Comment les données sont rangées

Exemples

Usage typique

Relationnelle

Tables reliées entre elles

MySQL, MariaDB, PostgreSQL

Sites, CMS, e-commerce, gestion

Clé-valeur

Une clé → une valeur

Redis, Valkey, Memcached

Cache, sessions

Documents

Documents JSON

MongoDB, Firestore

Contenus et catalogues variés

Colonnes (wide-column)

Lignes réparties sur de nombreux serveurs

Cassandra, ScyllaDB

Très gros volumes d’écriture

Graphe

Nœuds et liens

Neo4j, Neptune

Réseaux sociaux, fraude

Séries temporelles

Mesures horodatées

InfluxDB, TimescaleDB

Monitoring, capteurs

Analytique (OLAP)

Stockage par colonne

BigQuery, Snowflake, ClickHouse

Tableaux de bord, BI

Moteur de recherche

Index inversé

Elasticsearch, Meilisearch

Recherche plein texte

Vectorielle

Vecteurs (embeddings)

pgvector, Pinecone, Qdrant

IA, recherche sémantique

Embarquée

Un fichier local

SQLite, DuckDB

Mobile, logiciels, petits sites

SQL ou NoSQL : quelles différences ?

NoSQL signifie « Not only SQL ». Le terme regroupe toutes les bases qui ne suivent pas le modèle relationnel classique. Il s’est popularisé en 2009, quand les géants du web ont eu besoin de stocker plus de données que ce qu’un seul serveur MySQL pouvait encaisser.

Critère

SQL (relationnel)

NoSQL

Structure

Tables, lignes, colonnes

Documents, clé-valeur, colonnes, graphes

Schéma

Défini à l’avance, strict

Souple, peut varier d’un élément à l’autre

Langage

SQL, standardisé

Propre à chaque base (API, JSON…)

Relations

Jointures entre tables

Données souvent imbriquées ou dupliquées

Montée en charge

Surtout verticale (un serveur plus puissant)

Horizontale (on ajoute des serveurs)

Cohérence

Transactions ACID strictes

Souvent « cohérence à terme », au profit de la disponibilité

Exemples

MySQL, PostgreSQL, SQL Server

MongoDB, Redis, Cassandra, Neo4j

Aujourd’hui, la frontière est beaucoup plus floue qu’en 2010. PostgreSQL et MySQL savent stocker et indexer du JSON, MongoDB gère les transactions ACID depuis sa version 4.0 (2018), et des bases dites « NewSQL » comme CockroachDB, TiDB ou Google Spanner offrent le SQL et l’ACID tout en se répartissant sur plusieurs serveurs. La plupart des projets combinent d’ailleurs les deux : une base relationnelle comme source de vérité, et Redis ou Elasticsearch à côté.

MySQL, MariaDB, PostgreSQL, SQLite : les bases les plus utilisées

SGBD

Création

Licence

Points forts

Utilisé par

MySQL

1995, en Suède

Open source (GPL) et édition commerciale, propriété d’Oracle

Simple, rapide en lecture, proposé par tous les hébergeurs

WordPress, Drupal, Joomla, PrestaShop, Meta

MariaDB

2009

Open source (GPL)

Fork de MySQL par son créateur, compatible et 100% libre

Hébergeurs mutualisés, distributions Linux, WordPress

PostgreSQL

1996 (héritier de Postgres, 1986)

Open source, licence très permissive

Robuste, très complet, extensible (JSON, géographie, vecteurs)

Supabase, Instagram, Reddit, applications métier

SQLite

2000

Domaine public

Un seul fichier, zéro configuration

Smartphones, navigateurs, logiciels de bureau

Microsoft SQL Server

1989

Propriétaire (édition Express gratuite)

Intégration Windows et .NET

Entreprises, ERP, applications .NET

Oracle Database

1979

Propriétaire

Haute disponibilité, très grands volumes

Banques, administrations, grands groupes

MySQL ou MariaDB ? En 2008, Sun Microsystems rachète MySQL AB pour 1 milliard de dollars, puis Oracle rachète Sun en 2010. Inquiet pour l’avenir libre du projet, Michael « Monty » Widenius, cocréateur de MySQL, lance MariaDB en 2009. Les deux restent compatibles pour un site WordPress, et beaucoup d’hébergeurs proposent aujourd’hui MariaDB sous l’étiquette « MySQL ».

Petite anecdote : MySQL doit son nom à My, la fille aînée de Monty Widenius, et MariaDB à sa cadette, Maria.

Histoire : les bases de données il y a 30 ans, 20 ans, 10 ans et aujourd’hui

Les bases de données ont plus de 60 ans. Voici ce qu’utilisaient les entreprises et les développeurs web à chaque époque, et pourquoi les choses ont changé.

Les fondations (1960-1990)

  • Années 1960 : premières bases hiérarchiques, comme IMS d’IBM, conçu pour gérer les pièces du programme Apollo.

  • 1970 : Edgar F. Codd, chercheur chez IBM, publie le modèle relationnel : ranger les données dans des tables et les interroger avec un langage déclaratif.

  • 1974 : IBM crée le langage SEQUEL, qui deviendra SQL.

  • 1979 : Oracle commercialise la première base relationnelle SQL du marché.

  • Années 1980 : IBM DB2 (1983), dBase sur les premiers PC, Postgres à l’université de Berkeley (1986), et SQL devient une norme ANSI (1986).

Il y a 30 ans (milieu des années 1990) : l’arrivée du web

Au milieu des années 1990, Internet grand public décolle à peine. En entreprise, on utilise Oracle, IBM DB2, Sybase, Informix ou Microsoft SQL Server sur de gros serveurs, et sur les PC de bureau Microsoft Access, FoxPro, dBase, Paradox ou FileMaker.

Côté web, la plupart des sites sont de simples pages HTML statiques. Les rares sites dynamiques stockent leurs données dans des fichiers texte lus par des scripts CGI en Perl, ou dans de petites bases comme mSQL. C’est à ce moment que naissent les briques du web dynamique : MySQL et PHP (1995), puis PostgreSQL (1996). Ils sont gratuits, alors qu’une licence Oracle coûte une fortune.

Il y a 20 ans (milieu des années 2000) : le règne de LAMP

Vers 2006, le web dynamique est partout et une pile domine : LAMP, pour Linux, Apache, MySQL et PHP. Presque tous les CMS et forums l’utilisent (WordPress, sorti en 2003, Joomla, Drupal, phpBB), et des géants comme Facebook, Wikipédia, YouTube ou Flickr tournent sur MySQL. On administre sa base avec phpMyAdmin, fourni par tous les hébergeurs.

En entreprise, Oracle et SQL Server dominent, et Access reste l’outil des PME. SQLite se diffuse discrètement dans les logiciels : Firefox, puis l’iPhone en 2007.

Mais les plus gros sites atteignent les limites d’un serveur MySQL unique. Ils ajoutent Memcached (2003) comme cache, découpent leurs bases en morceaux, et Google (Bigtable, 2006) puis Amazon (Dynamo, 2007) publient comment ils ont construit leurs propres systèmes. C’est l’acte de naissance du NoSQL.

Il y a 10 ans (milieu des années 2010) : NoSQL et cloud

Vers 2016, le NoSQL est à la mode. MongoDB (2009) devient la base des startups, notamment avec la pile MEAN (MongoDB, Express, Angular, Node.js). Redis (2009) s’impose pour le cache et les files d’attente, Elasticsearch (2010) pour la recherche, Cassandra pour les très gros volumes.

Surtout, les bases de données passent dans le cloud : plus besoin d’installer un serveur, on loue une base managée en quelques clics avec Amazon RDS, Aurora, DynamoDB, Google Firebase ou Azure. Pour l’analyse, BigQuery, Redshift et Snowflake remplacent les entrepôts de données installés dans les locaux de l’entreprise.

Côté sites web, MySQL reste majoritaire grâce à WordPress, mais MariaDB le remplace dans de nombreuses distributions Linux et chez beaucoup d’hébergeurs. Et PostgreSQL commence sa remontée, notamment grâce au type JSONB (2014), qui lui permet de faire une partie du travail de MongoDB.

Aujourd’hui (2026) : PostgreSQL, serverless et IA

Le balancier est revenu vers le relationnel. PostgreSQL est devenu le choix par défaut des nouveaux projets : c’est la base la plus utilisée par les développeurs dans l’enquête Stack Overflow 2025, devant MySQL, SQLite, SQL Server et Redis. Supabase, Neon et la plupart des plateformes d’hébergement d’applications le proposent en un clic.

Les grandes tendances du moment :

  • Le serverless : des bases qui se mettent en veille quand personne ne s’en sert, et que l’on peut dupliquer comme une branche Git pour tester une modification (Neon, PlanetScale, Supabase).

  • Le retour de SQLite : utilisé aussi côté serveur et au plus près des visiteurs (Cloudflare D1, Turso), il suffit largement pour beaucoup de sites.

  • L’analytique sans entrepôt : DuckDB et ClickHouse analysent des milliards de lignes sur un simple ordinateur portable ou un petit serveur.

  • L’IA et la recherche vectorielle : les bases stockent désormais des vecteurs pour la recherche sémantique et les chatbots (pgvector, Pinecone, Qdrant).

  • Les licences : après le passage de Redis sous une licence non libre en 2024, la communauté a lancé le fork Valkey, soutenu par la Linux Foundation. Redis est revenu à une licence open source (AGPL) en 2025.

MySQL et MariaDB restent omniprésents : WordPress, qui fait tourner plus de 40% des sites web, les utilise toujours.

Ce qu’il faut retenir, époque par époque :

Époque

Bases les plus utilisées

Pour un site web

Outil d’accès typique

Il y a 30 ans (~1996)

Oracle, DB2, Sybase, Informix, SQL Server, Access

Pages statiques, fichiers texte, mSQL, MySQL naissant

Ligne de commande, Access

Il y a 20 ans (~2006)

Oracle, SQL Server, MySQL

LAMP : MySQL + PHP

phpMyAdmin

Il y a 10 ans (~2016)

MySQL, SQL Server, PostgreSQL, MongoDB, Redis

MySQL ou MariaDB, MongoDB pour les applications Node.js

phpMyAdmin, MySQL Workbench, consoles cloud

Aujourd’hui (2026)

PostgreSQL, MySQL, SQLite, SQL Server, Redis

PostgreSQL managé, MySQL ou MariaDB pour WordPress, SQLite

DBeaver, TablePlus, Adminer, consoles web, ORM

Quelle base de données choisir ?

  • Un site WordPress, PrestaShop ou Drupal : MySQL ou MariaDB, imposé par le CMS et fourni par l’hébergeur. Rien à choisir.

  • Une nouvelle application web ou un SaaS : PostgreSQL. Robuste et gratuit, il couvre l’essentiel des besoins (JSON, recherche plein texte, géolocalisation, vecteurs) avant qu’une autre base ne devienne nécessaire.

  • Une application mobile ou un logiciel de bureau : SQLite, embarqué dans l’application.

  • Un cache ou des sessions : Redis ou Valkey, en complément de la base principale.

  • Des données sans structure fixe : MongoDB, ou PostgreSQL avec ses colonnes JSONB.

  • Des tableaux de bord sur de gros volumes : ClickHouse, BigQuery ou DuckDB.

  • Un chatbot ou une recherche « par le sens » : pgvector si vous avez déjà PostgreSQL, sinon Qdrant ou Pinecone.

Comment accéder à une base de données ?

On accède à une base de données de trois façons : avec un logiciel à interface graphique, en ligne de commande, ou depuis le code d’une application.

  • Interfaces web : phpMyAdmin (MySQL et MariaDB, présent chez presque tous les hébergeurs, dans cPanel comme dans Plesk), Adminer (un seul fichier PHP, compatible MySQL, PostgreSQL, SQLite…), pgAdmin (PostgreSQL).

  • Logiciels de bureau : DBeaver (gratuit, compatible avec presque toutes les bases), HeidiSQL (Windows), TablePlus, MySQL Workbench, DataGrip (JetBrains).

  • Ligne de commande : mysql, psql, sqlite3, ou WP-CLI (wp db) pour un site WordPress.

  • Depuis le code : avec des requêtes SQL directes, ou un ORM qui traduit le code en requêtes : Prisma ou Drizzle en JavaScript, Eloquent (Laravel) ou Doctrine (Symfony) en PHP, $wpdb dans WordPress.

Les avantages d’une base de données

  • Facilité d’accès : retrouver une information parmi des millions en une fraction de seconde, grâce aux index.

  • Efficacité : une donnée modifiée à un seul endroit est à jour partout où elle est utilisée.

  • Intégrité : les types, les contraintes et les clés étrangères empêchent les incohérences, comme un article sans auteur ou une date invalide.

  • Accès simultanés : des milliers d’utilisateurs lisent et écrivent en même temps sans écraser le travail des autres.

  • Sécurité : comptes, droits par utilisateur et par table, chiffrement des données.

  • Partage : plusieurs applications peuvent utiliser les mêmes données (le site, l’application mobile, la comptabilité).

  • Sauvegarde : toute la base s’exporte et se restaure en une commande.

Questions fréquentes

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. Le SGBD (système de gestion de base de données) est le logiciel qui les stocke et les gère : MySQL, PostgreSQL, SQLite… Dans le langage courant, on dit souvent « base de données » pour les deux.

Une base de données, est-ce la même chose qu’un fichier Excel ?

Non. Un tableur convient pour quelques milliers de lignes manipulées par une seule personne. Une base de données gère des millions de lignes, des accès simultanés, des relations entre tables et des droits d’accès, et garantit qu’aucune donnée n’est perdue en cas de panne.

Quelle base de données utilise WordPress ?

MySQL, ou son fork compatible MariaDB. Une installation standard crée 12 tables, dont wp_posts (pages, articles, menus), wp_postmeta, wp_options (réglages du site), wp_users et wp_comments. Les extensions en ajoutent souvent d’autres.

MySQL est-il gratuit ?

Oui, l’édition Community de MySQL est open source et gratuite, y compris pour faire tourner un site commercial. Oracle vend une édition Enterprise avec support et outils supplémentaires. MariaDB et PostgreSQL sont entièrement libres et gratuits.

Faut-il apprendre le SQL ?

Pour gérer un site WordPress, ce n’est pas indispensable. Pour développer, oui : c’est un langage stable depuis 50 ans, utilisé par presque toutes les bases relationnelles et par de nombreux outils d’analyse. Les bases (SELECT, INSERT, UPDATE, DELETE, JOIN) s’apprennent en quelques heures.

Le NoSQL va-t-il remplacer le SQL ?

Non. Après la vague NoSQL des années 2010, les bases relationnelles ont absorbé une bonne partie de ses avantages (JSON, répartition sur plusieurs serveurs), et PostgreSQL est aujourd’hui la base préférée des développeurs. Le NoSQL reste excellent pour des besoins précis : cache, très gros volumes, graphes.

Auteur : Jean-Noël Mathonnet

Commentaires

Pas encore de commentaire. Soyez le premier !

Laisser un commentaire

Lorsque vous achetez via des liens sur ce site, nous pouvons toucher une commission d'affiliation. + d'infos