Betriebliche Informationssysteme Prof. Dr. Michael Löwe Transaktionen Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Inhalt Begriffsbestimmung ACID-Eigenschaft Transaktionen auf 3 Ebenen Klassische Transaktionen Lange Transaktionen Ganz lange Transaktionen Resümee Transaktionen
Begriffsbestimmung Transaktion = „großes Geld- oder Bankgeschäft“ Geldbewegungen auf „vielen“ Konten „Alle“ Konten vom Anfangs- zum Endzustand Transaktion als Einheit (Sicht von außen) Anfangszustand aller Konten Endzustand aller Konten Transaktion als Struktur (Sicht von innen) Reihe von Geldbewegungen auf den Einzelkonten Transaktionen
Begriffsbestimmung Transaktion Arbeitsschritte Transition Zustand Bestätigen Verwerfen Definierter Anfang Arbeitsschritte Transition Schritt 1 Schritt 2 Schritt n Abschluss Zustand Anfangszustand Endzustand Transaktionen
Beispiele Textverarbeitung zwischen zwei Speichervorgängen Löschen einer Datei Laden einer HTML-Seite Erstellen und Versenden einer E-Mail Erstellung einer Rechnung/Lieferscheins/etc. Aktivitäten in einem Workflow Umstellung auf vierstellige Jahreszahlen Einführung des Euro Transaktionen
ACID-Eigenschaften (DAIC) A = Atomicity(2) C = Consistence(4) ganz = bestätigen = commit oder gar nicht = verwerfen = roll back C = Consistence(4) Legale Zustände werden in legale Zustände überführt I = Isolation(3) Zwischenergebnisse sind außerhalb nicht sichtbar D = Durability(1) Die Ergebnisse (Zustandsänderungen) sind dauerhaft Transaktionen
Durability (Fast) alle Daten sind dauerhaft gespeichert Datenbank, File, CD-ROM, DVD ... Explizites Holen der Daten zur Verarbeitung Operation „Lesen“ oder „Read“ Explizites Speichern der Daten nach der Verarbeitung Operation „Schreiben“ oder „Write“ Transaktionen
Atomicity T: 100 DM von K1 auf K2 K1 K2 K1 K2 200 100 500 600 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Commit K1 K2 Bestätigung 200 100 500 ERR 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Auto Roll Back K1 K2 Erkannter Fehler 200 100 500 600 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Roll Back Abbruch 200 100 500 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. System(teil)absturz 5. Auto Roll Back Systemausfall Transaktionen
Atomicity (Lost Update) T1: 100 DM von K1 auf K2 T2: 50 DM von K3 auf K2 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Commit 200 100 500 600 550 300 250 K1 K2 K3 1. K3 lesen (300) 2. K3 schreiben (250) 3. K2 lesen (500) 4. K2 schreiben (550) 5. Commit Transaktionen
Isolation (Dirty Read) T1: 100 DM von K1 auf K2 T2: 50 DM von K3 auf K2 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Roll back 200 100 500 600 650 300 250 K1 K2 K3 1. K3 lesen (300) 2. K3 schreiben (250) 3. K2 lesen (600) 4. K2 schreiben (650) 5. Commit Transaktionen
Isolation (Unrepeatable Read) T1: K2 + K3 zu K1 T2: 50 DM von K3 auf K2 1. K1 lesen (200) 2. K2 lesen (500) 3. K3 lesen (250) 4. K1 schreiben (950) 5. Commit 200 950 500 550 300 250 K1 K2 K3 1. K3 lesen (300) 2. K3 schreiben (250) 3. K2 lesen (500) 4. K2 schreiben (550) 5. Commit Transaktionen
Consistence Transaktion Transition Arbeitsschritte Zustand Summe aller Schritt n Abschluss Definierter Anfang Arbeitsschritte (3a) Bestätigen (3b) Verwerfen (1) Bestätigung versuchen (2) Check Constraints (a) o. k. (b) nicht o. k. Summe aller Konten ist 0 Transaktionen
Transaktionen auf 3 Ebenen Workflow Ganz lange Transaktion (> ein paar Tage) Transaktion = Prozess/Workflow Arbeitsschritt = Aktivität Aktivität Lange Transaktion (< ein paar Tage) Transaktion = Aktivität Arbeitsschritt = Geschäftsfunktion Geschäftsfunktion Transaktion (< 3 Sekunden) Transaktion = Geschäftsfunktion Arbeitsschritt = Jede Aktualisierung der Speichermedien Transaktionen
Transaktionen auf 3 Ebenen Ganz lange Transaktion (Workflow) Lange Transaktion (Aktivität) Beginn Abschluss Commit, Roll Back Transaktion (Funktion) Commit, Roll Back DB-Update Commit, Roll Back Transaktionen
(Datenbank- bzw. TM-)Transaktion Begin Work, Commit und Roll Back des DBMS Transaktion ist DBMS-Objekt Dauer < 3 Sekunden (Präsuppositionen des DBMS) Vollautoamtisch; keine Unterbrechung durch Dialog Durability durch DBMS Atomicity durch Serialisierung der Transaktionen Automatisches Roll Back bei Absturz Isolation durch DBMS-Sperrmechanismen Consistence durch DBMS-Mittel Transaktionen
Lange Transaktionen Begin Work, Commit und Roll Back als Transaktionen Transaktion ist Systemobjekt Dauer: bis zu mehreren Tagen Ständige Unterbrechung durch Benutzerdialoge Durability durch Durability der Geschäftsfunktionen Atomicity „handgemacht“ Absturz kein Problem Isolation durch Logische Sperren Consistence durch Consistence der Geschäftsfunktionen Transaktionen
Ganz lange Transaktionen Begin Work, Commit, Roll Back kaum als Transaktionen Transaktion ist das Workflow-Objekt Dauer: mehrere Tage oder Wochen Ständige Unterbrechung durch Akteur-Wechsel Durability durch Durability der Geschäftsfunktionen Atomicity „handgemacht“ Absturzprobleme, wenn Commit und Roll Back keine Transakt. Isolation: ganz schwierig durch ganz lange Sperren Consistence durch Consistence der Geschäftsfunktionen Transaktionen
Resümee Transaktion ist das Konzept von Geschäftsanwendungen ACID garantiert: Bestand der Ergebnisse von Handlungen der Anwender Fertigwerden mit (Teil-)Systemausfällen und Benutzerabbruch Synchronisation im Mehrbenutzerbetrieb Consistence des Datenmodells Die drei Transaktionsebenen Workflow: kaum vorhanden, schwer zu realisieren Aktivität: kaum vorhanden, Realisierung nötig Geschäftsfunktion: überall vorhanden, Realisierung durch DBMS oder TP, schwierig in verteilten Systemen Transaktionen