Was sind ACID-Transaktionen?

Aktualisiert: September 2026

Eine ACID-Transaktion ist eine Gruppe von Datenbankoperationen, die als eine Einheit festgeschrieben wird – atomar, konsistent, isoliert und dauerhaft. Die Idee ist älter als das Akronym: Jim Gray definierte die Garantien 1981, Härder und Reuter nannten sie 1983 ACID, und vierzig Jahre später ist sie noch immer der Vertrag, der es erlaubt, Geld in Software zu bewegen, ohne gelegentlich welches zu erfinden oder zu vernichten.

Das Wichtigste in Kürze

FrageAntwort
Die vier BuchstabenAtomar (alles oder nichts) · Konsistent (Regeln gelten) · Isoliert (keine Störung) · Dauerhaft (übersteht Abstürze)
Klassisches BeispielDie Überweisung: Belastung und Gutschrift werden gemeinsam festgeschrieben oder gar nicht
Der ReglerIsolationsstufen – Performance gegen Leseanomalien abgewogen
Der GegenspielerBASE / Eventual Consistency – Verfügbarkeit gegen veraltete Daten abgewogen
Die heutige RealitätAuch Dokumentdatenbanken beherrschen ACID; das Kleingedruckte ist der Geltungsbereich

Wie ACID-Transaktionen in SQL funktionieren (Beispiel Überweisung)

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 'alice';
UPDATE accounts SET balance = balance + 100 WHERE id = 'bob';

-- Absturz oder Fehler zwischen den beiden Updates? Die Engine rollt zurück:
-- ROLLBACK;  →  beide Änderungen verschwinden; kein Geld geht verloren

COMMIT;       -- oder beide werden gültig: atomar und dauerhaft

Anwendungscode begegnet denselben Garantien in kleineren Portionen – atomare Feldoperationen, die das Wettrennen beim Lesen-Ändern-Schreiben beenden, und Batches, die gemeinsam festgeschrieben werden:

// JavaScript / Node.js — Back4app JS SDK
// Atomicity where apps actually need it
counter.increment('sold', 1);        // atomic single-field update — no
await counter.save();                // read-modify-write race possible

// All-or-nothing batch: both rows commit, or neither does
await Parse.Object.saveAll([debitEntry, creditEntry], { transaction: true });

Der Lebenszyklus einer Transaktion: BEGIN, COMMIT und ROLLBACK

Lebenszyklus einer TransaktionEine Transaktion beginnt, führt Operationen auf einem Arbeitszustand aus und wird entweder festgeschrieben – alle Änderungen werden dauerhaft – oder bei jedem Fehler zurückgerollt, wodurch der vorherige gültige Zustand wiederhergestellt wird.

alle erfolgreich

ein Fehler

BEGIN

Operationen
Lesen + Schreiben, isoliert

COMMIT
festgeschrieben, dauerhaft

ROLLBACK
als wäre nichts geschehen

Eine Transaktion beginnt, führt Operationen auf einem Arbeitszustand aus und wird entweder festgeschrieben – alle Änderungen werden dauerhaft – oder bei jedem Fehler zurückgerollt, wodurch der vorherige gültige Zustand wiederhergestellt wird.

Die vier Eigenschaften, jeweils beschrieben durch das, was ohne sie kaputtgeht: Atomarität – ohne sie gibt es halbe Schreibvorgänge (die belastete, aber nie gutgeschriebene Überweisung). Konsistenz – ohne sie gibt es festgeschriebene Zustände, die Ihre eigenen Regeln verletzen (negativer Lagerbestand, verwaiste Referenzen). Isolation – ohne sie lesen gleichzeitige Transaktionen die halbfertige Arbeit der anderen. Dauerhaftigkeit – ohne sie gibt es “festgeschriebene” Daten, die ein Absturz stillschweigend wieder löscht. Unter der Haube liefern drei Mechanismen diese Eigenschaften: Undo-Logs für den Rollback, Write-Ahead-Logging für das Überstehen von Abstürzen und Sperren oder MVCC für die Nebenläufigkeit.

Isolationsstufen vs. Leseanomalien

Die Übersicht, die man sonst selten an einem Ort findet – welche Stufe welche Anomalie verhindert:

StufeDirty ReadNon-Repeatable ReadPhantom ReadKosten
Read Uncommittedmöglichmöglichmöglicham niedrigsten
Read Committedverhindertmöglichmöglichniedrig
Repeatable Readverhindertverhindertmöglichmittel
Serializableverhindertverhindertverhindertam höchsten

Zur Einordnung: Ein Dirty Read sieht noch nicht festgeschriebene Arbeit; ein Non-Repeatable Read erhält auf dieselbe Frage zweimal unterschiedliche Antworten; ein Phantom sieht mitten in der Transaktion neue Zeilen auftauchen. Die meisten modernen Engines arbeiten standardmäßig mit MVCC-basierten Snapshots – jede Transaktion liest einen konsistenten Snapshot, während Schreiber weiterarbeiten –, weshalb “Leser blockieren keine Schreiber” zur Regel statt zur Ausnahme geworden ist.

ACID vs. BASE – und das Homonym Konsistenz

DimensionACIDBASE
Optimiert aufKorrektheit pro TransaktionVerfügbarkeit bei großer Last
KonsistenzSofort, regelwahrendEventual (letztendlich)
Natürliches EinsatzgebietGeld, Lagerbestände, BuchungenFeeds, Zähler, Caches
SkalierungsverhaltenDurch Koordination begrenztVon Grund auf horizontal
FehlerbildLangsamer bei Konkurrenz um SperrenVorübergehend veraltete Lesezugriffe

Eine Klarstellung trägt diesen ganzen Vergleich: Das C in ACID und das C in CAP sind verschiedene Wörter mit demselben Buchstaben. ACID-Konsistenz bedeutet, dass jede Transaktion Ihre deklarierten Regeln wahrt. CAP-Konsistenz bedeutet, dass sich alle Knoten genau jetzt einig sind. Eine Datenbank auf einem einzigen Knoten ist vollständig ACID-konform, ohne dass CAP überhaupt ins Spiel kommt; ein verteiltes System wählt seinen CAP-Trade-off und seine Transaktionsgarantien getrennt voneinander.

Wer was garantiert

Engine-FamilieACID-Status
PostgreSQLVolles ACID, MVCC, Serializable verfügbar
MySQLVolles ACID mit InnoDB – die Wahl der Storage Engine zählt
SQLiteVolles ACID, ein einzelner Schreiber, WAL-Modus
MongoDBAtomarität einzelner Dokumente immer; Transaktionen über mehrere Dokumente seit 4.0 (2018), Snapshot-Isolation
Verteilte SQL-EnginesACID über Konsens-Replikation – Serializable zu Netzwerkpreisen
Wide-Column- / Eventual-StoresEinstellbar, teilweise – BASE von Grund auf

Verteilte Transaktionen verdienen eine ehrliche Fußnote: Two-Phase Commit (Zwei-Phasen-Commit) erkauft Atomarität über Knoten hinweg mit Latenz und einem blockierenden Koordinator. Deshalb setzen Microservice-Architekturen zunehmend auf Sagas – Folgen lokaler Transaktionen mit kompensierenden Rollbacks, die sofortige Konsistenz gegen Verfügbarkeit tauschen. Wenn ein Workflow Kompensation wirklich nicht verträgt, ist das ein Beleg dafür, dass er in eine einzige Datenbank gehört, nicht über mehrere verteilt.

Typische Anwendungsfälle

  • Geldbewegungen. Überweisungen, Auszahlungen, Hauptbücher – der klassische Fall und noch immer der eindeutigste.
  • Lagerbestand und Buchungen. Bestand verringern und Bestellung bestätigen, beides gemeinsam – sonst kaufen zwei Kunden den letzten Platz.
  • Invarianten über mehrere Zeilen. Bestellung + Positionen, Konto + Audit-Eintrag – Datensätze, die nur gültig sind, wenn sie gemeinsam entstehen.
  • Zähler, richtig gemacht. Atomare Inkremente – die kleinste nützliche Dosis ACID – beenden das Wettrennen beim Lesen-Ändern-Schreiben ohne vollständige Transaktionen.
  • Die Ergänzung durch Eventual Consistency. Feeds, Likes, Analytics: bewusst weg von den Kosten der Transaktionen geleitet.

Muss es ACID sein? Eine Entscheidungsmatrix

Bestehen Sie auf vollständigen Transaktionen, wenn …Eventual Consistency genügt, wenn …
Geld oder Eigentum den Besitzer wechseltEin veralteter Zähler nichts kostet
Halbe Schreibvorgänge ungültige Zustände erzeugenJeder Schreibvorgang für sich gültig ist
Aufsichtsbehörden nach der Invariante fragen werdenDie Daten abgeleitet und rekonstruierbar sind
Zwei Zeilen immer übereinstimmen müssenSpätere Konvergenz für die UX akzeptabel ist
Überverkauf eine Klage bedeutetÜberzählen ein Achselzucken ist

Die Kunst liegt im Routing pro Schreibvorgang: Der Checkout nutzt Transaktionen, der Aufrufzähler ein atomares Inkrement, der Feed verträgt eine Sekunde Abweichung – eine Anwendung, drei Preisstufen für Konsistenz.

Grenzen und Trade-offs

  • Koordination ist der Kostentreiber. Sperren konkurrieren, WAL-Syncs gehen auf die Platte, Serializable-Wiederholungen brechen ab – Korrektheit kostet Durchsatz, und genau deshalb gibt es BASE.
  • Isolationsstufen sind ein folgenreicher Standard. Die meisten Engines verwenden standardmäßig nicht Serializable; kennen Sie Ihre Stufe, sonst sind Anomalien, die Sie für unmöglich hielten, bloß unwahrscheinlich.
  • Lange Transaktionen sind ein Warnsignal. Wer Sperren über die Bedenkzeit von Nutzern oder über Netzwerkaufrufe hinweg hält, macht aus Garantien Konkurrenz um Sperren; halten Sie Transaktionen kurz und entschieden.
  • Verteiltes ACID ist von Natur aus teuer. Konsensrunden bei jedem Commit – zahlen Sie das dort, wo Invarianten es verlangen, nicht reflexhaft überall.
  • ACID kann Ihre Regeln nicht für Sie validieren. Konsistenz wahrt deklarierte Constraints; Geschäftsregeln, die nie codiert wurden, werden zuverlässig nicht durchgesetzt.

ACID-Transaktionen mit Back4app

Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Ihr Transaktionswerkzeug entspricht der Art, wie Apps ACID tatsächlich nutzen: Jeder Schreibvorgang auf ein einzelnes Objekt ist in der zugrunde liegenden Dokument-Engine atomar, atomare Inkremente und Array-Operationen beenden die klassischen Wettrennen bei Zählern (siehe Code-Tabs oben), Batch-Speichervorgänge bündeln Schreibvorgänge, und mehrstufige Invarianten gehören in Cloud Code – serverseitig validiert und ausgeführt, wo ein beforeSave-Trigger jeden Schreibvorgang ablehnen kann, der die Regeln verletzen würde. Die Entscheidungsmatrix ist eingebaut: günstige Atomarität als Standard, volle Koordination dort, wo Sie sie anfordern.

Häufige Fragen

Wofür steht ACID?

Für Atomicity, Consistency, Isolation, Durability – auf Deutsch Atomarität, Konsistenz, Isolation und Dauerhaftigkeit: die vier Garantien, die eine Datenbanktransaktion geben muss, damit Daten trotz Fehlern, Abstürzen und gleichzeitiger Nutzer korrekt bleiben. Jim Gray definierte die Kerneigenschaften 1981; Theo Härder und Andreas Reuter prägten das Akronym 1983 in ihrem Artikel über transaktionsorientierte Wiederherstellung.

Was ist eine ACID-Transaktion, einfach erklärt?

Eine Gruppe von Lese- und Schreibvorgängen, die als eine Alles-oder-nichts-Einheit ausgeführt wird. Entweder wird jede Operation festgeschrieben und dauerhaft, oder jede Operation wird zurückgerollt, als wäre nichts geschehen. Das klassische Beispiel ist eine Überweisung: ein Konto belasten, ein anderes gutschreiben – ein Absturz zwischen beiden Schritten darf das Geld nie belastet, aber nicht gutgeschrieben zurücklassen.

Was sind Isolationsstufen?

Der Regler, der bei gleichzeitig laufenden Transaktionen Performance gegen Schutz abwägt. Der SQL-Standard definiert vier – Read Uncommitted, Read Committed, Repeatable Read, Serializable –, von denen jede mehr Anomalien verhindert (Dirty Reads, nicht wiederholbare Lesevorgänge, Phantome) und dafür mehr kostet. In der Praxis verwenden die meisten modernen Engines standardmäßig eine Snapshot-Isolation über MVCC, bei der Leser einen konsistenten Snapshot sehen und Schreiber nie blockieren.

Was ist der Unterschied zwischen ACID und BASE?

Zwei Antworten auf die Kosten der Korrektheit. ACID zahlt mit Koordination, um zu garantieren, dass jede Transaktion einen gültigen Zustand vorfindet und hinterlässt. BASE – Basically Available, Soft State, Eventually Consistent – zahlt mit vorübergehend veralteten Daten, um verfügbar zu bleiben und horizontal zu skalieren. Keines ist überlegen; sie bepreisen Konsistenz unterschiedlich, und reale Systeme mischen beide je nach Workload.

Ist Konsistenz bei ACID dasselbe wie Konsistenz im CAP-Theorem?

Nein – und die Verwechslung ist das häufigste Missverständnis bei diesem Thema. ACID-Konsistenz bedeutet, dass jede Transaktion die deklarierten Regeln wahrt: Constraints gelten, Invarianten bleiben erhalten. CAP-Konsistenz bedeutet, dass jeder Knoten eines verteilten Systems zur selben Zeit dieselben Daten sieht. Eine Datenbank auf einem einzigen Knoten kann vollständig ACID-konform sein, ohne dass CAP dazu irgendetwas aussagt.

Sind NoSQL-Datenbanken ACID-konform?

Zunehmend – mit Kleingedrucktem. Dokumentdatenbanken schreiben einzelne Dokumente seit jeher atomar, was zusammen mit eingebetteten verwandten Daten die meisten Anforderungen von Apps abdeckt. ACID-Transaktionen über mehrere Dokumente kamen mit MongoDB 4.0 (2018) samt Snapshot-Isolation – zu spürbaren Performancekosten. Die alte Behauptung "NoSQL heißt keine Transaktionen" ist schlicht veraltet; die Designvorliebe, Daten um die Atomarität einzelner Dokumente herum zu modellieren, dagegen nicht.

Wie setzen Datenbanken ACID tatsächlich um?

Drei Mechanismen tragen die Last: Undo-Informationen machen den Rollback möglich (Atomarität); Write-Ahead-Logging – Änderungen werden in ein dauerhaftes Log geschrieben, bevor sie angewendet werden – übersteht Abstürze (Dauerhaftigkeit); und Sperren oder MVCC halten gleichzeitige Transaktionen voneinander fern (Isolation). Konsistenz ist das Ergebnis: Constraints, die im Schutz der anderen drei geprüft werden.

Wann reicht Eventual Consistency aus?

Wenn ein kurzes Fenster veralteter Daten nichts kostet: Like-Zähler, Aufrufzähler, Aktivitätsfeeds, Analytics, Caches, Produktempfehlungen. Wenn nicht: Geld, Lagerbestände, die überverkauft werden können, Sitzplatz- und Ticketbuchungen, alles Regulierte. Die Ingenieurskunst liegt nicht darin, sich für eine Seite zu entscheiden, sondern jeden Schreibvorgang zu der Garantie zu leiten, die er tatsächlich braucht.

Verwandte Begriffe

Vergleichen mit

Weiterführende Quellen

Bereit, Ihr Backend zu bauen?

Starten Sie Ihr Projekt auf Back4app in wenigen Minuten — Datenbank, Authentifizierung, APIs und Cloud Code inklusive. Keine Kreditkarte erforderlich.

Geschrieben und geprüft von Back4app Engineering, Back4app Engineering · Veröffentlicht am 2026-09-22