ACID est un acronyme qui représente les quatre propriétés fondamentales des transactions dans les systèmes de gestion de bases de données :
Atomicité : Une transaction est traitée dans son intégralité ou pas du tout. Si une partie de la transaction échoue, l'ensemble est annulé.
Cohérence : La transaction maintient l'intégrité des données, assurant que la base de données passe d'un état valide à un autre.
Isolation : Les transactions s'exécutent de manière isolée, sans interférence entre elles, même si elles sont simultanées.
Durabilité : Une fois la transaction validée, les modifications sont permanentes et survivent aux pannes système.
Ces propriétés garantissent la fiabilité des opérations sur les données, particulièrement dans les environnements où plusieurs utilisateurs accèdent simultanément à la base de données.
Exemple pratique :
BEGIN TRANSACTION;
UPDATE compte SET solde = solde - 100 WHERE id = 1;
UPDATE compte SET solde = solde + 100 WHERE id = 2;
COMMIT;
Dans cet exemple, le transfert d'argent entre deux comptes est soit entièrement réalisé, soit complètement annulé en cas d'erreur, préservant ainsi l'intégrité des données bancaires.
Le concept ACID est étroitement lié aux systèmes de gestion de bases de données relationnelles (SGBDR), mais il s'applique également à d'autres types de systèmes de stockage de données. Certaines bases de données NoSQL, par exemple, peuvent sacrifier certaines propriétés ACID au profit de la performance ou de la scalabilité, adoptant des modèles de cohérence plus souples comme la cohérence éventuelle.