Bases de données : Théorie et modélisation

ACID vs BASE

 

 

ACID

Nous avons vu précédement que les bases de données ont été créées pour répondre à un certain nombre d'objectifs. Pour garantir cela, le mécanisme des transactions a été créé.

Ce mécanisme transactionnel a été construit autour du principe ACID :

- Atomique : tout ou rien, une modification des données doit être réalisée dans son intégralité ou pas du tout.

- Cohérent : les données doivent toujours être cohérentes entre elles, même en cas d'erreur. Dans ce cas là, on effectuera un RollBack.

- Isolée : Pas d'interférences entre les transactions. Utilisation des verrous et des points de synchronisation.

- Durable : Lorsqu'une transaction s'est achevée, avec succès (Commit) ou en erreur (Rollback), les données doivent être dans un état stable et cohérent.

 

Le concept ACID fonctionne très bien pour les bases de données relationnelles qui répondent aux objectifs précédemment cités.

BASE

Cependant, avec le développement du Cloud computing et des systèmes distribués, de nouvelles bases de données ont été conçues pour répondre à des contraintes différentes.

Un nouveau concept opposé à ACID est apparu, le concept BASE :

- Basic Availability : le sytème doit toujours être accessible.

- Soft state : l'état de la base de données n'est pas garanti à un instant t.

- Eventually Consistent : la cohérence des données à un instant t n'est pas primordiale.