Beantwortet von der Redaktion von Business.Digital Stand
Transaktionssicherheit ist die Garantie, dass eine Gruppe von zusammenhängenden Operationen entweder vollständig oder gar nicht ausgeführt wird. Schlägt ein einzelner Schritt der Gruppe fehl, werden alle bereits ausgeführten Schritte rückgängig gemacht (Rollback), als wäre nichts passiert.
Das klassische Beispiel aus der Bankwelt: Geld von Konto A auf Konto B überweisen. Schritt 1: Konto A minus 100 Euro. Schritt 2: Konto B plus 100 Euro. Wenn Schritt 1 erfolgreich ist, aber Schritt 2 fehlschlägt, ist das Geld weg. Transaktionssicherheit verhindert das: Entweder passieren beide Schritte, oder keiner.
Im E-Commerce ist das genauso relevant: Bestellung anlegen und gleichzeitig Bestand reduzieren. Wenn die Bestellung erstellt wurde, aber der Bestand nicht reduziert wurde, ist der Datenstand inkonsistent. Überverkäufe sind die Folge.
Das ACID-Prinzip
Datenbanktransaktionen folgen dem ACID-Prinzip:
Atomarität (Atomicity): Die Transaktion ist unteilbar. Entweder alles oder nichts.
Konsistenz (Consistency): Eine Transaktion überführt die Datenbank von einem konsistenten Zustand in einen anderen konsistenten Zustand. Keine Zwischenzustände.
Isolation: Parallele Transaktionen beeinflussen sich nicht gegenseitig. Jede Transaktion sieht die Daten so, als wäre sie die einzige, die gerade läuft.
Dauerhaftigkeit (Durability): Einmal abgeschlossene Transaktionen bleiben dauerhaft gespeichert, auch bei Systemabstürzen.
Transaktionssicherheit über Systemgrenzen hinweg
Innerhalb einer einzelnen Datenbank ist Transaktionssicherheit standardmäßig vorhanden (in relationalen Datenbanken wie PostgreSQL oder MySQL). Das Problem entsteht bei verteilten Systemen, wenn eine “Transaktion” mehrere Systeme umfasst.
Wenn du eine Bestellung im Shop anlegst und gleichzeitig einen Auftrag im ERP erstellst, gibt es keine globale Transaktion, die beide Operationen atomar macht. Das Shop-System und das ERP sprechen nicht dieselbe Datenbanksprache.
Lösungsansätze für verteilte Transaktionen: Saga-Pattern (jeder Schritt hat eine Kompensationsaktion, die den Schritt rückgängig macht), Two-Phase Commit (aufwändig, selten praktikabel), oder Eventual Consistency (temporäre Inkonsistenz wird akzeptiert, solange sie sich irgendwann auflöst).
Wir entwickeln bei der Softwareentwicklung und Automation Systeme, die auch bei Teilausfällen in einen konsistenten Zustand zurückfinden. Beim Termin können wir besprechen, wie transaktionssicher deine aktuellen Prozesse sind.