Eine Transaktion bündelt mehrere Datenbank-Operationen zu einer logischen Einheit, die entweder komplett ausgeführt oder komplett verworfen wird. Dadurch bleiben Datenbestände auch bei Fehlern oder parallelen Zugriffen konsistent. Transaktionen sind das Fundament der ACID-Eigenschaften relationaler Datenbanken.

BEGIN, COMMIT und ROLLBACK

Eine Transaktion läuft in drei Schritten ab:

  • BEGIN startet die Transaktion.
  • COMMIT macht alle Änderungen endgültig (dauerhaft).
  • ROLLBACK verwirft alle Änderungen seit dem BEGIN.
BEGIN;
INSERT INTO bestellungen (kunde, artikel) VALUES (7, 'Laptop');
UPDATE lager SET menge = menge - 1 WHERE artikel = 'Laptop';
COMMIT;

Schlägt das UPDATE fehl, rollt ROLLBACK auch das INSERT zurück — es entsteht keine halbe Bestellung ohne Lagerabzug.

Möchte man nicht die gesamte Transaktion, sondern nur einen Teil verwerfen, setzt man eine Marke mit SAVEPOINT und rollt gezielt dorthin zurück.

Warum Transaktionen wichtig sind

Ohne Transaktionen können zusammengehörige Operationen teilweise durchlaufen: Ein Geldtransfer, bei dem nur der Abzug gespeichert wird, die Gutschrift aber nicht, führt zu falschen Kontoständen. Transaktionen verhindern genau solche Inkonsistenzen — auch wenn zwei Benutzer gleichzeitig auf dieselben Daten zugreifen (Isolation).

Die Integrität zwischen Tabellen sichern außerdem Primär- und Fremdschlüssel. Wie man Abfragen über mehrere Tabellen aufbaut, zeigen die SQL-JOINs.