ACID ist das Akronym für die vier Eigenschaften, die eine Transaktion in einer Datenbank zuverlässig machen: Atomicity (Atomarität), Consistency (Konsistenz), Isolation und Durability (Dauerhaftigkeit). Ein System, das ACID einhält, garantiert, dass Daten auch bei Stromausfall, Absturz oder gleichzeitigen Zugriffen konsistent bleiben.
Die vier ACID-Eigenschaften
- Atomicity (Atomarität): Eine Transaktion wird entweder vollständig ausgeführt oder gar nicht. Schlägt ein Schritt fehl, werden alle bereits gemachten Änderungen zurückgerollt (Rollback).
- Consistency (Konsistenz): Nach jeder Transaktion befindet sich die Datenbank in einem gültigen Zustand. Alle Regeln wie Constraints und Fremdschlüssel sind eingehalten.
- Isolation: Parallele Transaktionen beeinflussen sich nicht gegenseitig. Änderungen einer noch nicht abgeschlossenen Transaktion sind für andere Sitzungen unsichtbar.
- Durability (Dauerhaftigkeit): Nach dem Commit bleibt das Ergebnis dauerhaft gespeichert — auch bei einem Stromausfall unmittelbar danach.
ACID in der Praxis: Beispiel
Klassisches Beispiel ist eine Geldüberweisung. Der Soll-Betrag muss vom einen Konto abgezogen und auf dem anderen gutgeschrieben werden:
BEGIN;
UPDATE konten SET saldo = saldo - 100 WHERE konto_id = 1;
UPDATE konten SET saldo = saldo + 100 WHERE konto_id = 2;
COMMIT;
Falls das zweite UPDATE fehlschlägt, macht ROLLBACK beide Änderungen rückgängig — es wird nie Geld „verloren“.
ACID vs. NoSQL
Klassische relationale Datenbanken wie MySQL, MariaDB oder PostgreSQL setzen ACID um. Viele NoSQL-Systeme lockern einzelne Eigenschaften bewusst (sogenannte BASE-Systeme), um höhere Skalierbarkeit zu erreichen. Welches Modell passt, hängt vom Einsatzfall ab: Bei Finanz- und Buchhaltungsdaten ist ACID Pflicht.
Verwandte Grundlagen: SQL-Grundlagen, Datenbank-Normalisierung, Transaktionen.