La base de données est le premier élément d'un système à subir les contraintes liées à la charge, aux exigences de cohérence et aux schémas de requêtes réels. Ce cours propose une approche accessible aux débutants pour analyser ces arbitrages, en abordant tout, des choix fondamentaux de stockage aux répliques et au partitionnement (sharding), jusqu'à la décision finale entre SQL, NoSQL ou une configuration hybride. À l'issue de la formation, le choix de la base de données lors de la conception d'un système ne relèvera plus de la conjecture, mais d'une décision argumentée fondée sur des contraintes précises.
Ce cours aborde la contribution d'une base de données à une application, l'influence des modèles d'accès sur le choix du schéma, ainsi que l'impact de l'indexation sur la latence de lecture et le coût d'écriture. Il traite également de la réplication, du basculement, des arbitrages en matière de cohérence, du partitionnement (sharding), du choix de la clé de partitionnement et d'une méthodologie reproductible pour choisir entre SQL, NoSQL ou une architecture hybride.