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é).