0Pricing
SQL Academy · Lektion

ACID-Eigenschaften und Anomalien

Wiederholen Sie Atomarität, Konsistenz, Isolation und Dauerhaftigkeit sowie die vier klassischen Anomalien: Dirty Read, Non-Repeatable Read, Phantom Read und Lost Update.

ACID-Eigenschaften und Anomalien ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

ACID

Eine Transaktion ist zuverlässig, wenn sie:

  • Atomar — ganz oder gar nicht
  • Konsistent — die DB von einem gültigen Zustand in einen anderen überführt
  • Isoliert — gleichzeitige Transaktionen kommen sich nicht in die Quere
  • Dauerhaft — nach dem Commit überstehen die Daten Abstürze

Eine Transaktion in SQL

Umschließen Sie Operationen mit BEGIN ... COMMIT:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
-- If anything fails, ROLLBACK leaves both rows unchanged.

Atomarität in Aktion

Wenn das zweite UPDATE fehlschlägt, wird das erste zurückgerollt — Geld geht nicht auf halbem Weg verloren:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Crash here, or ROLLBACK: account 1 is unchanged.

Konsistenz

Constraints (NOT NULL, CHECK, FK) werden beim Commit geprüft. Eine Transaktion, die die DB in einem ungültigen Zustand zurücklassen würde, schlägt fehl:

BEGIN;
INSERT INTO orders (user_id, total) VALUES (999, 100);  -- FK fails on commit if user 999 doesn't exist.
COMMIT;
-- ERROR: insert or update violates foreign key constraint
-- ROLLBACK happens automatically.

Isolation: Warum sie wichtig ist

Ohne Isolation können zwei gleichzeitige Transaktionen die Sicht der jeweils anderen auf die Daten verfälschen. Klassische Anomalien:

  • Dirty Read — nicht bestätigte Daten lesen
  • Non-Repeatable Read — dieselbe Abfrage liefert unterschiedliche Zeilen
  • Phantom — während der Transaktion erscheinen neue Zeilen
  • Lost Update — zwei Aktualisierungen überschreiben sich gegenseitig

Dirty Read

Eine Zeile lesen, die eine andere Transaktion geändert, aber noch nicht bestätigt hat. PostgreSQL verhindert dies auf allen Isolationsebenen.

Non-Repeatable Read

Sie lesen Zeile 1, eine andere Transaktion bestätigt eine Aktualisierung von Zeile 1, und Sie lesen sie erneut — der Wert ist anders.

Phantom Read

Sie führen SELECT COUNT(*) zweimal in einer Transaktion aus. Zwischen den Aufrufen bestätigt eine andere Transaktion ein INSERT — der zweite Zählerstand ist höher.

Lost Update

Zwei Transaktionen lesen beide balance=100, schreiben beide balance=balance-50 und bestätigen beide — eine der -50-Aktualisierungen geht verloren.

Dauerhaftigkeit

Sobald COMMIT zurückkehrt, befindet sich die Änderung auf der Festplatte (oder ist je nach Einstellungen repliziert). Ein Absturz eine Millisekunde später führt nicht zu ihrem Verlust. PostgreSQL gewährleistet Dauerhaftigkeit über WAL (Write-Ahead Logging).

Autocommit

Standardmäßig ist jede Anweisung ihre eigene Transaktion:

UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Implicitly: BEGIN; statement; COMMIT;

SAVEPOINT

Teilweises Zurückrollen innerhalb einer Transaktion:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
SAVEPOINT before_step2;
UPDATE accounts SET balance = balance + 100 WHERE id = 999;
-- ERROR — but we can recover:
ROLLBACK TO SAVEPOINT before_step2;
-- continue
COMMIT;

Zusammenfassung

Transaktionen sind das Sicherheitsnetz relationaler Datenbanken.

  • ACID: atomar, konsistent, isoliert, dauerhaft
  • Vier klassische Anomalien
  • BEGIN ... COMMIT oder ROLLBACK
  • SAVEPOINT für teilweises Zurückrollen

Kurzer Check

Welche Anomalie tritt auf, wenn zwei Transaktionen denselben Wert lesen, ihn ändern und beide bestätigen?

Häufig gestellte Fragen

Ist die Lektion „ACID-Eigenschaften und Anomalien“ kostenlos?

Ja — der vollständige Text von „ACID-Eigenschaften und Anomalien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „ACID-Eigenschaften und Anomalien“?

Wiederholen Sie Atomarität, Konsistenz, Isolation und Dauerhaftigkeit sowie die vier klassischen Anomalien: Dirty Read, Non-Repeatable Read, Phantom Read und Lost Update. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „ACID-Eigenschaften und Anomalien“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. ACID-Eigenschaften und Anomalien
  2. Isolationsstufen: READ COMMITTED, REPEATABLE READ, SERIALIZABLE
  3. Deadlocks: Erkennung und Vermeidung
  4. Optimistisches vs. pessimistisches Sperren
← Zurück zu SQL Academy