Concepts d'architecture

Architecture client-serveur

Une base de données fonctionne selon une architecture client-serveur.

Le SGBD est un service qui :

Chaque SGBD utilise un port par défaut :

Les clients peuvent être :

Sécurité de base

Deux paramètres de sécurité sont importants :

Par défaut, il est recommandé de n'autoriser que les machines nécessaires à se connecter à la base de données. Ne jamais exposer directement une base de données sur Internet sans protection.

Cas particulier : SQLite

SQLite est un SGBD qui se distingue radicalement des bases de données traditionnelles comme MySQL ou PostgreSQL. Contrairement à ces dernières, SQLite n'utilise pas d'architecture client-serveur.

Une base de données embarquée

SQLite fonctionne comme une bibliothèque intégrée directement dans l'application :

Différences avec un SGBD traditionnel

Caractéristique MySQL / PostgreSQL SQLite
Architecture Client-serveur Embarquée (bibliothèque)
Processus serveur Oui Non
Port réseau 3306 / 5432 Aucun
Stockage Répertoire dédié Fichier unique
Accès concurrent Multi-utilisateurs Limité (verrouillage fichier)
Accès réseau Oui (natif) Non
Configuration Complexe Aucune

Cas d'usage

SQLite est idéal pour :

SQLite est le moteur de base de données le plus déployé au monde. Il est intégré dans Android, iOS, tous les navigateurs web, et de nombreuses applications.

SQLite n'est pas adapté aux applications web à fort trafic ou nécessitant des accès concurrents multiples. Dans ces cas, privilégiez MySQL, MariaDB ou PostgreSQL.

Déploiement avec Docker

Les SGBD peuvent être facilement déployés via Docker, ce qui offre plusieurs avantages :

Images Docker officielles

Les SGBD relationnels majeurs disposent d'images officielles sur Docker Hub :

Exemple de lancement d'une base MySQL avec Docker :

docker run -d \
  --name ma-base-mysql \
  -e MYSQL_ROOT_PASSWORD=motdepasse \
  -e MYSQL_DATABASE=ma_base \
  -p 3306:3306 \
  mysql:latest

Persistance des données

Comme vu dans le cours Docker, les conteneurs sont volatiles. Pour persister les données de la base, il est indispensable d'utiliser des volumes Docker.

Exemple avec un volume :

docker run -d \
  --name ma-base-mysql \
  -e MYSQL_ROOT_PASSWORD=motdepasse \
  -v mysql-data:/var/lib/mysql \
  -p 3306:3306 \
  mysql:latest

Le volume mysql-data stocke les fichiers de la base de données. Même si le conteneur est supprimé, les données persistent.

Le théorème de CAP

Le théorème de CAP est un concept fondamental en architecture distribuée. Il stipule qu'un système de base de données distribuée ne peut garantir simultanément que deux des trois propriétés suivantes :

En pratique :

Réplication : architecture Maître / Esclave

L'architecture maître / esclave (aussi appelée primary / replica) est une technique de réplication permettant d'améliorer les performances et la disponibilité.

Principe

Un serveur maître :

Un ou plusieurs serveurs esclaves :

Avantages

Concepts avancés

Quelques concepts liés à la réplication :


Revision #5
Created 1 January 2026 10:35:56 by Thibaud FRICHET
Updated 15 January 2026 12:17:53 by Thibaud FRICHET