Axe 9 — Bases de données
🎯 Objectif global : choisir et utiliser la bonne base pour chaque problème, écrire des requêtes performantes, et opérer en prod sans perdre de données.
Prérequis
Section intitulée « Prérequis »- 9.1 (SQL) : axes 1 + 3 (modélisation) — peut se faire avant l’axe 8.
- 9.2 → 9.4 (NoSQL, ORM, opérations) : axes 1, 3, 8 (au moins un parcours backend).
Objectifs
Section intitulée « Objectifs »À l'issue de cet axe, tu sauras :
- Modéliser un domaine en relationnel (3NF) et savoir dénormaliser à bon escient
- Écrire des requêtes SQL avec jointures, CTE, fenêtrage
- Lire un plan d'exécution (EXPLAIN ANALYZE) et indexer correctement
- Choisir entre PostgreSQL, MongoDB, Redis, Neo4j, pgvector selon le cas
- Utiliser un ORM (Prisma 7, Drizzle, SQLAlchemy 2, Eloquent) sans tomber dans les pièges N+1
- Mettre en place migrations, sauvegardes (PITR), réplication
Contenu de l’axe
Section intitulée « Contenu de l’axe » 9.1 — Bases relationnelles (SQL) ⚡ avant l'axe 8 PostgreSQL 17, DDL/DML, jointures, CTE, fenêtrage, ACID, indexes, EXPLAIN ANALYZE. Le bagage à avoir AVANT de manipuler un ORM.
9.2 — NoSQL Document (Mongo), key-value (Redis), graphe (Neo4j), search (Meilisearch), vector (pgvector).
9.3 — ORM & query builders Prisma 7, Drizzle, SQLAlchemy 2, Eloquent — pièges N+1, transactions, raw SQL, migrations.
9.4 — Données opérationnelles Sauvegardes, PITR, réplication, sharding, partitionnement, hébergement managé, monitoring.
Projet de l’axe
Section intitulée « Projet de l’axe »E-commerce PostgreSQL — schéma à 7 tables (ENUM, JSONB, contraintes), seed de 1 M orders + 6 M order_lines, 10 queries analytiques (CTE, window functions, full-text trigram, anti-join, JSONB), stratégie d’indexation B-tree composite + partiel + couvrant + GIN. Cible : 9/10 queries sous 200 ms (5/10 sous 10 ms).
Ressources clés
Section intitulée « Ressources clés »- PostgreSQL Documentation — postgresql.org/docs
- Use The Index, Luke! — use-the-index-luke.com
- Designing Data-Intensive Applications — Martin Kleppmann
- MongoDB University — cours gratuits
- Redis University — university.redis.com