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.
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.