Datenbank-Transaktionen und ACID
Kurz: Eine Transaktion fasst mehrere Datenbankschritte zu einer Einheit zusammen: Entweder gelingen alle oder keiner. ACID beschreibt die Garantien dahinter.
Genauer: Klassisches Beispiel: Überweisung von 100 € von Konto A auf B. Abbuchen und Gutschreiben müssen zusammen gelingen. Fällt der Strom dazwischen aus, wird alles zurückgerollt.
Im Detail
- A – Atomicity (Unteilbarkeit): Alles oder nichts.
- C – Consistency (Konsistenz): Regeln der Datenbank (Schlüssel, Prüfungen) bleiben erfüllt.
- I – Isolation: Gleichzeitige Transaktionen stören sich nicht. Isolationsstufen regeln, wie streng.
- D – Durability (Dauerhaftigkeit): Bestätigte Änderungen überleben einen Absturz.
- Kommandos:
BEGIN,COMMIT,ROLLBACK. - Probleme: Dirty Read, Non-repeatable Read, Phantom Read, Deadlocks (Deadlock).
- Verteilt: Über mehrere Dienste hinweg gibt es keine einfache Transaktion, dort helfen Muster wie Saga und Idempotenz.
Siehe auch: Datenbank-Migration, SQL-Index