Propriétés ACID
Les SGBD relationnels garantissent les propriétés ACID pour les transactions.
Atomicité : une transaction s’effectue entièrement ou pas du tout. Pas d’état intermédiaire.
Cohérence : les effets d’une transaction validée respectent toujours les contraintes d’intégrité.
Isolation : une transaction ne voit jamais les résultats intermédiaires d’autres transactions.
Durabilité : une fois validée (COMMIT), une transaction ne peut pas être perdue (même en cas de panne).
Règles pour garantir ACID
Write Ahead Log (WAL) : les images avant et après modification doivent être écrites dans le log avant que les modifications soient appliquées sur la BD.
Force Log at Commit : la marque de COMMIT doit être écrite dans le log sur disque au moment du COMMIT.
Exemple de transaction
BEGIN
UPDATE comptes SET solde = solde - 100 WHERE id = 1;
UPDATE comptes SET solde = solde + 100 WHERE id = 2;
COMMIT;
END;Si la transaction échoue avant le COMMIT, toutes les modifications sont annulées (atomicité).
Après le COMMIT, les modifications sont garanties permanentes (durabilité).