Zum Inhalt springen
YellowBlue
IT-Grundlagen3 Min. Lesezeit

Transaktionen und das ACID-Prinzip

Kurzantwort

Eine Transaktion fasst mehrere Datenbankoperationen zu einer Einheit zusammen, die entweder ganz oder gar nicht ausgeführt wird. Die vier ACID-Eigenschaften sichern das ab: Atomarität (ganz oder gar nicht), Konsistenz (nur gültige Zustände), Isolation (Transaktionen stören sich nicht) und Dauerhaftigkeit (bestätigte Änderungen bleiben erhalten).

Teil des Lernpfads Datenbanken und SQL · Schritt 7 von 9

Eine Überweisung besteht aus zwei Schritten: beim einen Konto abbuchen, beim anderen gutschreiben. Was passiert, wenn nach dem Abbuchen der Strom ausfällt? Genau dieses Problem lösen Transaktionen – und das ACID-Prinzip garantiert, dass Daten nie in einem halben Zustand hängenbleiben.

Was ist eine Transaktion?

Eine Transaktion bündelt mehrere Operationen zu einer unteilbaren Einheit. Entweder werden alle ausgeführt oder keine.

BEGIN;
UPDATE konto SET saldo = saldo - 100 WHERE id = 1;
UPDATE konto SET saldo = saldo + 100 WHERE id = 2;
COMMIT;   -- bestätigt beide Schritte gemeinsam

Die vier ACID-Eigenschaften

BuchstabeEigenschaftBedeutung
AAtomaritätganz oder gar nicht – keine Teilausführung
CKonsistenznur gültige, regelkonforme Zustände
IIsolationparallele Transaktionen stören sich nicht
DDauerhaftigkeitbestätigte Änderungen bleiben (auch nach Absturz)

Am Überweisungsbeispiel: Atomarität verhindert, dass nur abgebucht, aber nicht gutgeschrieben wird. Konsistenz sorgt dafür, dass die Summe stimmt. Isolation verhindert, dass eine gleichzeitige Abfrage den Zwischenstand sieht. Dauerhaftigkeit garantiert, dass das Geld auch nach einem Serverneustart angekommen ist.

Wozu der Aufwand?

Selbstkontrolle

Selbstkontrolle

Was besagt die Atomarität (das A in ACID)?

Häufige Fragen

Was ist der Unterschied zwischen COMMIT und ROLLBACK?

COMMIT schließt eine Transaktion erfolgreich ab und macht alle Änderungen dauerhaft sichtbar. ROLLBACK bricht sie ab und stellt den Zustand von vor Beginn der Transaktion wieder her. Solange kein COMMIT erfolgt ist, sind die Änderungen für andere in der Regel nicht endgültig.

Warum ist Isolation wichtig?

Weil in der Praxis viele Transaktionen gleichzeitig laufen. Ohne Isolation könnte eine Transaktion Zwischenstände einer anderen lesen und daraus falsche Schlüsse ziehen, etwa einen Kontostand, der gleich wieder zurückgerollt wird. Isolation sorgt dafür, dass jede Transaktion so arbeitet, als wäre sie allein.

Was ist ein Deadlock?

Ein Deadlock entsteht, wenn zwei Transaktionen jeweils auf eine Sperre warten, die die andere hält – beide blockieren sich gegenseitig endlos. Datenbanken erkennen das und brechen eine der Transaktionen mit einem Rollback ab, damit die andere weiterlaufen kann. Gut geschriebene Anwendungen fangen diesen Fall ab und versuchen es erneut.

Haben alle Datenbanken ACID?

Klassische relationale Datenbanken sind auf ACID ausgelegt. Manche NoSQL-Systeme lockern einzelne Eigenschaften zugunsten von Geschwindigkeit und Skalierbarkeit und bieten nur „eventual consistency". Für Geschäftsdaten, bei denen Korrektheit zählt, sind ACID-Datenbanken die sichere Wahl.

Weiterlesen: SQL-Grundlagen: Daten mit SELECT abfragen · SQL-JOINs erklärt: INNER JOIN und LEFT JOIN · Normalisierung: Datenbanken ohne Redundanz

Das Wichtigste in Kürze

  • Eine Transaktion ist eine unteilbare Einheit: ganz oder gar nicht.
  • COMMIT bestätigt, ROLLBACK macht rückgängig.
  • ACID: Atomarität, Consistenz, Isolation, Dauerhaftigkeit.
  • Standardbeispiel: die Banküberweisung.
  • Transaktionen machen Datenbanken verlässlich bei parallelem Zugriff und Abstürzen.

Schlagwörter

Verwandte Beiträge

IT-Grundlagen4 Min. Lesezeit

DDL und DML: SQL-Befehle im Überblick

DDL, DML, DQL, DCL und TCL im Überblick: Welche SQL-Befehle zu welcher Gruppe gehören, mit Beispielen und Prüfungstipps zu DELETE, TRUNCATE und DROP.

IT-Grundlagen4 Min. Lesezeit

SQL-Grundlagen: Daten mit SELECT abfragen

Wie du mit SELECT gezielt Daten aus einer Datenbank holst: Spalten wählen, mit WHERE filtern, mit ORDER BY sortieren und mit GROUP BY gruppieren.

IT-Grundlagen4 Min. Lesezeit

SQL-JOINs erklärt: INNER JOIN und LEFT JOIN

Was ein JOIN in SQL ist, wie INNER JOIN und LEFT JOIN Tabellen über den Fremdschlüssel verbinden und wann welcher Join-Typ das richtige Ergebnis liefert.