0Pricing
SQL Interview Prep · Lektion

ACID-Eigenschaften erklärt

Atomarität, Konsistenz, Isolation und Dauerhaftigkeit anhand konkreter Beispiele.

ACID-Eigenschaften erklärt ist eine kostenlose SQL Interview Prep-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 Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Warum Interviewer nach ACID fragen

Wenn ein Senior-Interviewer sagt: „Führen Sie mich durch ACID“, prüft er nicht, ob Sie sich vier Wörter gemerkt haben. Er möchte wissen, ob Sie verstehen, was eine Datenbank garantiert, wenn viele Benutzer gleichzeitig darauf zugreifen.

ACID steht für Atomarität, Konsistenz, Isolation und Dauerhaftigkeit. Jede transaktionale Datenbank (Postgres, MySQL/InnoDB, SQL Server, Oracle) verspricht diese vier Eigenschaften für Arbeiten, die in einer Transaktion ausgeführt werden.

Die stärksten Antworten verbinden jeden Buchstaben mit einem konkreten Fehler, den die jeweilige Eigenschaft verhindert. In den nächsten Abschnitten tun wir genau das.

Was ist eine Transaktion?

Eine Transaktion ist eine Arbeitseinheit, die die Datenbank als einen einzigen, unteilbaren Schritt behandelt. Sie beginnen sie mit BEGIN, führen eine oder mehrere Anweisungen aus und verwenden anschließend entweder COMMIT, um sie dauerhaft zu machen, oder ROLLBACK, um alles zu verwerfen.

Das klassische Beispiel ist eine Banküberweisung: Ein Konto wird belastet, ein anderes gutgeschrieben. Beides muss geschehen, oder keines von beidem. Eine Transaktion ist die Hülle, mit der Sie dieses Versprechen einhalten können.

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

A = Atomarität

Atomarität bedeutet, dass eine Transaktion ganz oder gar nicht ausgeführt wird. Wenn eine Anweisung fehlschlägt oder der Server mitten in der Ausführung abstürzt, werden alle Änderungen dieser Transaktion zurückgesetzt, als hätte sie nie begonnen.

Im Beispiel der Überweisung gilt: Wenn die Gutschrift fehlschlägt, nachdem die Belastung erfolgreich war, stellt die Atomarität sicher, dass auch die Belastung rückgängig gemacht wird. So verlieren Sie niemals Geld durch eine unvollständig ausgeführte Operation.

Formulierung fürs Interview: "Die Atomarität stellt sicher, dass die Transaktion als Ganzes bestätigt wird oder überhaupt nicht, sodass kein unvollständiger Zustand zurückbleibt."

Atomarität in Aktion

Hier verletzt das zweite Update eine CHECK-Bedingung (der Kontostand darf nicht negativ werden). Die Datenbank bricht die Transaktion ab, und ROLLBACK macht auch das erste Update rückgängig.

Der entscheidende Punkt im Interview: Nach dem Rollback hat Konto 1 noch seinen ursprünglichen Kontostand. In der Tabelle befindet sich kein unvollständiger Schreibvorgang.

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- next line fails: balance would go below 0
UPDATE accounts SET balance = balance - 999999 WHERE id = 2;
ROLLBACK;  -- account 1 is restored to its original balance

C = Konsistenz

Konsistenz bedeutet, dass eine Transaktion die Datenbank von einem gültigen Zustand in einen anderen gültigen Zustand überführt. Jede bestätigte Transaktion muss alle definierten Regeln einhalten: Constraints, Fremdschlüssel, Trigger und Kaskaden.

Wenn eine Transaktion eine verletzte Bedingung hinterlassen würde – etwa einen verwaisten Fremdschlüssel, einen doppelten Primärschlüssel oder eine fehlgeschlagene CHECK-Bedingung –, verweigert die Datenbank die Bestätigung.

Wichtige Nuance: Die Datenbank setzt deklarierte Regeln durch. Invarianten auf Anwendungsebene ("Ein Benutzer darf höchstens 3 aktive Sitzungen haben") liegen jedoch in Ihrer Verantwortung, sofern sie nicht als Constraints modelliert sind.

Durch Constraints gewährleistete Konsistenz

Konsistenz ergibt sich größtenteils aus den Regeln Ihres Schemas. Im folgenden Beispiel stellt ein Fremdschlüssel sicher, dass Sie niemals eine Bestellung für einen nicht existierenden Kunden einfügen können.

Wenn das Insert auf einen fehlenden Kunden verweist, schlägt die Transaktion fehl, die Atomarität setzt sie zurück und die Konsistenz bleibt erhalten. Deshalb sagen Interviewer, dass Atomarität und Konsistenz zusammenwirken.

CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT NOT NULL REFERENCES customers(id),
  amount NUMERIC(10,2) CHECK (amount > 0)
);

-- This fails if customer 999 does not exist, keeping data consistent
INSERT INTO orders (id, customer_id, amount) VALUES (1, 999, 50.00);

I = Isolation

Isolation bedeutet, dass nebenläufige Transaktionen sich nicht gegenseitig in die Quere kommen. Idealerweise verhält sich jede Transaktion so, als würde sie allein ausgeführt, selbst wenn Dutzende Transaktionen gleichzeitig laufen.

In der Praxis bieten Datenbanken verschiedene Isolationsstufen, die Strenge gegen Leistung abwägen. Schwächere Stufen erlauben bestimmte Anomalien (Dirty Reads, Phantom Reads) und ermöglichen dafür eine höhere Nebenläufigkeit.

Dies ist der umfangreichste Teil jedes ACID-Interviews. Deshalb behandeln die nächsten beiden Lektionen Isolationsstufen und Leseanomalien ausführlich.

Warum Isolation ein Spektrum ist

Perfekte Isolation (SERIALIZABLE) ist kostspielig, weil sie jeden möglichen Konflikt durch eine unterschiedliche Verschachtelung verhindern muss, häufig durch das Sperren oder Abbrechen von Transaktionen.

Deshalb definiert der SQL-Standard vier Stufen. Eine häufige Fangfrage im Interview: Kandidaten nehmen an, Isolation sei binär. Das stimmt nicht. Sie wählen ausdrücklich, wie viel Isolation Sie benötigen.

  • READ UNCOMMITTED am schwächsten
  • READ COMMITTED
  • REPEATABLE READ
  • SERIALIZABLE am stärksten
BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SELECT SUM(balance) FROM accounts;
-- ... business logic ...
COMMIT;

D = Dauerhaftigkeit

Dauerhaftigkeit bedeutet, dass die Änderungen einer bestätigten Transaktion Abstürze, Stromausfälle und Neustarts überstehen. Eine bestätigte Transaktion befindet sich auf dauerhaftem Speicher.

Datenbanken erreichen dies mit einem Write-Ahead-Log (WAL): Änderungen werden in ein dauerhaftes Log geschrieben, bevor die Datendateien aktualisiert werden. Beim Neustart spielt die Engine das Log erneut ab, um bestätigte Änderungen wiederherzustellen, die noch nicht in den Hauptdateien gespeichert waren.

Formulierung fürs Interview: "Die Dauerhaftigkeit wird durch das WAL gewährleistet; COMMIT kehrt erst zurück, wenn der Log-Eintrag auf die Festplatte geschrieben wurde."

Die Banküberweisung als Ganzes

Eine Überweisung veranschaulicht alle vier Eigenschaften gleichzeitig:

  • Atomarität: Beide Updates werden angewendet oder keines von beiden.
  • Konsistenz: Ein CHECK verhindert negative Kontostände.
  • Isolation: Ein nebenläufiger Leser sieht keine halb abgeschlossene Überweisung.
  • Dauerhaftigkeit: Nach COMMIT bleiben die neuen Kontostände auch nach einem Absturz erhalten.

Wenn Sie ein einzelnes Beispiel allen vier Buchstaben zuordnen können, ist das genau die Art von Antwort, die im Interview Punkte bringt.

BEGIN;
UPDATE accounts SET balance = balance - 100
  WHERE id = 1 AND balance >= 100;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

Häufige Anschlussfragen

Interviewer fragen oft nach den Grenzfällen. Seien Sie auf Folgendes vorbereitet:

  • "Welche Eigenschaft wird durch einen Fremdschlüssel gewährleistet?" Konsistenz.
  • "Was schützt Sie vor einem Serverabsturz mitten in einer Transaktion?" Atomarität (Rollback nicht bestätigter Änderungen) plus Dauerhaftigkeit (Wiederholung bestätigter Änderungen).
  • "Ist Isolation kostenlos?" Nein, stärkere Isolation geht zulasten der Nebenläufigkeit.
  • "Bieten NoSQL-Datenspeicher ACID?" Viele tauschen ACID gegen Verfügbarkeit (BASE); sagen Sie, dass es von der Engine abhängt.

Schnelltest

Testen Sie Ihr Verständnis dafür, welche ACID-Eigenschaft welche Aufgabe erfüllt.

Zusammenfassung: ACID in einem Satz

Jetzt können Sie die Frage präzise beantworten:

  • Atomarität – ganz oder gar nicht; unvollständige Arbeit wird zurückgesetzt.
  • Konsistenz – jede Bestätigung hält die Constraints ein und hinterlässt einen gültigen Zustand.
  • Isolation – nebenläufige Transaktionen beeinträchtigen sich nicht gegenseitig; die Strenge lässt sich anpassen.
  • Dauerhaftigkeit – bestätigte Daten überstehen Abstürze, abgesichert durch das Write-Ahead-Log.

Verknüpfen Sie jeden Buchstaben mit einem konkreten Fehler, den er verhindert, und Sie werden den Einstieg in jedes Interview zur Nebenläufigkeit souverän meistern.

Häufig gestellte Fragen

Ist die Lektion „ACID-Eigenschaften erklärt“ kostenlos?

Ja — der vollständige Text von „ACID-Eigenschaften erklärt“ 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 Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „ACID-Eigenschaften erklärt“?

Atomarität, Konsistenz, Isolation und Dauerhaftigkeit anhand konkreter Beispiele. Du übst SQL Interview Prep 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 Interview Prep zu starten?

Keine Vorkenntnisse erforderlich. SQL Interview Prep 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 erklärt“?

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 Interview Prep-Lektion Code schreiben und ausführen?

Ja. Jede SQL Interview Prep-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 erklärt
  2. Die vier Isolationsstufen
  3. Dirty Reads, Non-Repeatable Reads und Phantom Reads
  4. Deadlocks, Sperren und MVCC
← Zurück zu SQL Interview Prep