Rappels sur les bases de données#
Théoreme CAP#
Trois contraintes#
Cohérence (Consistency)
- Tous les noeuds du système voient les mêmes données au même moment
Disponibilité (Availability)
- Garantie que toutes les requêtes (en lecture ou en écriture) reçoivent une réponse
Tolérence au partitionnement (Partition tolerance)
- Aucune panne moins importante qu'une coupure totale du réseau ne doit empecher le systeme de répondre correctement
- En cas de morcellement en sous-réseaux, chacun doit pouvoir fonctionner de maniere autonome comme un seul système
Énoncé du théorème CAP, et propriétés des BDD#
D'après le théorème CAP (ou de Brewer):
- Il est impossible sur un systeme informatique de calcul distribué de garantir en même temps (de manière synchrone) les trois contraintes C-A-P.
- Un système de calcul distribué ne peut garantir que deux de ces contraintes.
Note
En général, les SGBD essayent de compenser la partie qu'elles ne peuvent pas garantir, au moins pour certains cas d'usage.
Le modèle ACID#
Atomicité (Atomic)
- Une transaction est entière : l'ensemble des instructions sont exécutées ou bien aucune (modèle "tout ou rien"). Pour cela il faut en général des transactions.
Cohérence (Consistent)
- Une transaction amène la base d’un état stable et cohérent à un autre état stable et cohérent.
Isolation (Isolated)
- Les transactions n’agissent pas les unes sur les autres.
Durabilité (Durable)
- Une transaction validée provoque des changements permanents.
Les propriétés ACID sont quatre propriétés essentielles d’un sous-système de traitement de transactions d’un système de gestion de base de données
Important
On considère souvent que seuls les SGBD qui respectent ces propriétés sont dignes d’être considérées comme des bases de données.
Le modèle BASE#
Basically Available (Disponibilité de Base)
- Le système est conçu pour maximiser la disponibilité. Cela peut impliquer des compromis sur la cohérence pour assurer que le système reste opérationnel et accessible.
- La disponibilité est souvent assurée par la réplication et la distribution des données à travers de nombreux nœuds ou clusters.
Soft State (État Souple)
- L'état du système peut changer avec le temps, même en l'absence d'opérations d'entrée. Cela est souvent dû à la nature distribuée des bases de données NoSQL et à la nécessité de répliquer les données entre les nœuds.
- Cela signifie que le système peut être dans un état de flux, où la cohérence des données n'est pas toujours garantie.
Eventually Consistent (Cohérence Éventuelle)
- Le système garantit que, si aucune nouvelle mise à jour n'est apportée à un élément donné, tous les accès à cet élément retourneront éventuellement le même résultat. En d'autres termes, le système atteindra une cohérence à un moment donné.
- Cela contraste avec le modèle ACID, où la cohérence est garantie après chaque transaction.
Important
Il s'agit donc d'une approche statistique, dont la fiabilité moyenne est bonne, mais il n'y a pas de garanties.