Zum Inhalt springen
SemaTrain

SQL-WISSEN · Konsistenz

Transaktionen und Isolation

Wie Transaktionen zusammengehörige Änderungen bündeln, welche Rolle COMMIT und ROLLBACK spielen und warum Isolation und Sperrverhalten produktbezogen betrachtet werden müssen.

Kurzdefinition

Eine Transaktion fasst Datenbankoperationen zu einer logischen Arbeitseinheit zusammen. COMMIT macht die Änderungen der aktuellen Transaktion dauerhaft. ROLLBACK verwirft nur solche noch nicht bestätigten Änderungen, die im jeweiligen System und Kontext tatsächlich rollback-fähig sind; implizite Commits oder nicht transaktionale Operationen können die Wirkung begrenzen.

Sicherer Änderungsworkflow

Die genaue Syntax für Transaktionsstart, Fehlerbehandlung und einzelne Sperroptionen ist produktabhängig. Entscheidend ist die fachliche Grenze der zusammengehörigen Änderungen.

Konzeptionelles Muster
BEGIN;

UPDATE konto
SET saldo = saldo - 100
WHERE id = 1;

UPDATE konto
SET saldo = saldo + 100
WHERE id = 2;

COMMIT;

Isolation und Parallelität

Isolation beschreibt, wie gleichzeitig laufende Transaktionen gegenseitige Zwischenzustände wahrnehmen beziehungsweise abschirmen. Konkrete Isolationsstufen, Sperren und Implementierungsdetails unterscheiden sich zwischen Datenbanksystemen.

Kritisch unterscheiden

  • Eine DML-Anweisung ist nicht automatisch dasselbe wie eine vollständige Transaktion.
  • ACID beschreibt Transaktionsprinzipien; konkrete Locking- und MVCC-Mechanismen sind Implementierungsdetails.
  • ROLLBACK wirkt innerhalb der aktiven Transaktions- oder Savepoint-Grenze nur auf rollback-fähige Änderungen; produktabhängige implizite Commits oder nicht transaktionale Operationen können Ausnahmen bilden.

Typische Fehler und Missverständnisse

  • Mehrere fachlich zusammengehörige Änderungen ohne bewusst definierte Transaktionsgrenze auszuführen.
  • Autocommit-Verhalten als in jedem Client und Datenbanksystem identisch anzunehmen.
  • Isolation nur als Performance-Thema statt auch als Korrektheitsfrage zu behandeln.

Praxisfall

Umbuchung zwischen zwei Konten

Eine Anwendung reduziert ein Konto und erhöht ein anderes. Zwischen beiden Änderungen tritt ein Fehler auf.

  • Welche fachliche Transaktionsgrenze ist sinnvoll?
  • Welche inkonsistente Situation soll verhindert werden?
  • Welche produktbezogenen Einstellungen müssen zusätzlich geprüft werden?

Selbsttest

Verständnis prüfen

1. Was bewirkt COMMIT im Transaktionskontext?

Antwortmöglichkeiten zu Frage 1
Antwort und Begründung anzeigen

COMMIT macht die Änderungen der aktuellen Transaktion dauerhaft, soweit die betroffenen Operationen transaktional verwaltet werden. Die genauen Rahmenbedingungen hängen vom Datenbanksystem und Clientkontext ab.

2. Warum ist Isolation ein eigenes Thema?

Antwortmöglichkeiten zu Frage 2
Antwort und Begründung anzeigen

Isolation regelt die Sichtbarkeit und Wechselwirkungen paralleler Transaktionen und ist daher zentral für Korrektheit unter Konkurrenz.

Transfer

Auf die eigene Praxis übertragen

Identifizieren Sie in einem Änderungsprozess den Punkt, an dem ein teilweiser Erfolg fachlich nicht akzeptabel wäre. Genau dort beginnt die Frage nach einer Transaktionsgrenze.

Weiterlernen

Verknüpfungen

Quellen, Prüfstand und Grenzen

Fachliche Nachvollziehbarkeit

Quellen geprüft
2026-09-18
Versionsrahmen
Gemeinsamer SQL-Kern mit explizit gekennzeichneten Varianten für SQLite 3.53.4, PostgreSQL 18 und MySQL 8.4 LTS.
Aussagebereich
ACID und Transaktionsprinzipien werden gemeinsam vermittelt. Locking, affected rows und einzelne Syntaxformen werden je Datenbanksystem getrennt.
Originalität
Faktenbasis aus Primärquellen; Einordnung, Struktur, Beispiele, Selbsttests und Transfer sind eigenständige SemaTrain-Inhalte.

Grenzen

  • Produktspezifische Syntax und Verhalten können sich zwischen SQLite, PostgreSQL und MySQL unterscheiden.
  • Versionsabhängige Aussagen gelten für den im Quellenbereich ausgewiesenen Prüfstand.

Primärquellen

Projekt-Primärdokumentation

SQLite Transaction

SQLite

Version: SQLite 3.53.4

Bezug: BEGIN, COMMIT, ROLLBACK und SQLite-Transaktionsverhalten.

Projekt-Primärdokumentation

SQLite Core Functions

SQLite

Version: SQLite 3.53.4

Bezug: changes() und weitere SQLite-Kernfunktionen.

Projekt-Primärdokumentation

PostgreSQL 18 UPDATE

PostgreSQL

Version: PostgreSQL 18

Bezug: UPDATE und RETURNING.

Hersteller-Primärdokumentation

MySQL 8.4 SAVEPOINT Statement

MySQL

Version: MySQL 8.4 LTS

Bezug: SAVEPOINT, ROLLBACK TO SAVEPOINT und RELEASE SAVEPOINT.