Familles
| Famille | Idée | Exemple cité |
|---|---|---|
| Relationnelle | tables + clés + SQL | PostgreSQL, MySQL/MariaDB, SQLite, SQL Server |
| Documents | JSON/BSON imbriqués | MongoDB |
| Clé-valeur | clé vers valeur/structure | Redis |
| Colonnes larges | non documenté ici | non vérifié |
Embarqué (fichier, SQLite) ou serveur (processus + réseau).
Clés et contraintes
| Notion | Rappel |
|---|---|
| Clé primaire | identifie une ligne, unique, jamais nulle |
| Clé étrangère | référence la clé d'une autre table |
UNIQUE | pas de doublons ; traitement de NULL variable selon le moteur |
NOT NULL | valeur obligatoire |
CHECK | règle sur la valeur |
| Association N:N | table avec deux clés étrangères |
SQLite : clés étrangères désactivées par défaut (à activer par connexion).
Normalisation
- 1re forme : une valeur atomique par cellule.
- 2e forme : dépend de toute la clé.
- 3e forme : pas de dépendance entre attributs non clés.
- Dénormaliser : après mesure, en connaissance de la cohérence à maintenir.
Index
| Sujet | Repère |
|---|---|
| Gain | égalité, plage, tri, jointure |
| Coût | espace, écritures plus lentes |
| PostgreSQL | B-tree (défaut), Hash, GiST, SP-GiST, GIN, BRIN |
| Composite | l'ordre des colonnes compte (à confirmer par moteur) |
| Vérifier | EXPLAIN avant et après |
ACID et isolation
| Lettre | Sens |
|---|---|
| A | atomicité : tout ou rien |
| C | cohérence : contraintes respectées |
| I | isolation : transactions simultanées sans interférence |
| D | durabilité : un COMMIT survit à une panne |
| Moteur | Niveau par défaut |
|---|---|
| PostgreSQL | Read Committed (Read Uncommitted se comporte comme lui) |
| MySQL 8.4 (InnoDB) | Repeatable Read |
| SQL Server | Read Committed (versionnement de lignes en option) |
| SQLite | sérialisable, un seul écrivain |
Repeatable Read / Serializable (PostgreSQL) : erreur 40001 possible, rejouer la transaction.
Sauvegarde et restauration
| Type | Exemple | Remarque |
|---|---|---|
| Logique | pg_dump, mysqldump, .dump (SQLite) | portable, restauration plus lente |
| Physique | copie de fichiers, instantané | liée à la version |
| Continue / PITR | WAL (PostgreSQL), journal binaire (MySQL) | restauration à un instant |
| Redis | RDB, AOF, les deux, aucune | RDB copiable à chaud |
pg_dump: une base, vue cohérente, sans bloquer ; pas les rôles (pg_dumpall).- SQLite : ne pas copier le fichier en cours d'écriture ;
.backup,VACUUM INTO. - Restaurer en test, chiffrer, garder une copie hors de la machine.
Réplication
| Mode | Effet |
|---|---|
| Synchrone | pas de perte à la bascule, plus lent |
| Asynchrone | rapide, perte possible à la bascule, lectures parfois périmées |
Une réplique n'est pas une sauvegarde (elle copie aussi les erreurs).
Performances
- Mesurer. 2. Lire le plan (
EXPLAIN). 3. Corriger (index, requête, volume). 4. Remesurer.
PostgreSQL : EXPLAIN ANALYZE exécute la requête ; pour une écriture, BEGIN puis ROLLBACK.
Sécurité des accès
- Moindre privilège, un compte par application, lecture seule si possible.
- Écoute limitée (boucle locale en développement), TLS, pare-feu.
- Aucun secret dans le code, les commits, les URL ni les journaux.
- Requêtes paramétrées, jamais de concaténation de texte saisi.
- Sauvegardes protégées comme la base ; ne pas copier la production en développement sans anonymiser.
Check-list avant d'agir sur une base
- Quel moteur, quelle version, quel environnement (jamais la production par défaut) ?
- Lecture ou écriture ? Quel effet sur les données ?
- Sauvegarde récente et restauration testée ?
- Commande relue,
WHEREprésent pour toute modification ? - Vérification du résultat, retour arrière connu.
Sources
Consultées le 17 octobre 2026.
- SQLite (s’ouvre dans un nouvel onglet) · types (s’ouvre dans un nouvel onglet) · clés étrangères (s’ouvre dans un nouvel onglet) · isolation (s’ouvre dans un nouvel onglet) · sauvegarde (s’ouvre dans un nouvel onglet) · shell (s’ouvre dans un nouvel onglet)
- PostgreSQL versions (s’ouvre dans un nouvel onglet) · isolation (s’ouvre dans un nouvel onglet) · sauvegarde (s’ouvre dans un nouvel onglet) · pg_dump (s’ouvre dans un nouvel onglet) · réplication (s’ouvre dans un nouvel onglet) · EXPLAIN (s’ouvre dans un nouvel onglet) · index (s’ouvre dans un nouvel onglet) · rôles (s’ouvre dans un nouvel onglet)
- MySQL 8.4 isolation (s’ouvre dans un nouvel onglet) · sauvegarde (s’ouvre dans un nouvel onglet) · MariaDB (navigation, non vérifié) (s’ouvre dans un nouvel onglet)
- SQL Server isolation (s’ouvre dans un nouvel onglet) · MongoDB transactions (s’ouvre dans un nouvel onglet) · Redis persistance (s’ouvre dans un nouvel onglet)