180 likes | 318 Vues
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. Begriffsbestimmung.
E N D
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
Definierter Anfang Arbeitsschritte Bestätigen Verwerfen Schritt 1 Schritt 2 Schritt n Abschluss Begriffsbestimmung Transaktion Transition 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) 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
T: 100 DM von K1 auf K2 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Commit 200 100 100 500 600 600 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Auto Roll Back 200 100 200 500 ERR 500 Bestätigung Erkannter Fehler K1 K2 K1 K2 Abbruch Systemausfall 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Roll Back 200 100 200 500 600 500 1. K1 lesen (200) 2. K1 schreiben (100) 3. K2 lesen (500) 4. System(teil)absturz 5. Auto Roll Back 200 100 200 500 500 Atomicity Transaktionen
200 100 500 600 550 300 250 K1 K2 K3 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 1. K3 lesen (300) 2. K3 schreiben (250) 3. K2 lesen (500) 4. K2 schreiben (550) 5. Commit Transaktionen
200 100 200 500 600 500 650 300 250 K1 K2 K3 Isolation (DirtyRead) 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 1. K3 lesen (300) 2. K3 schreiben (250) 3. K2 lesen (600) 4. K2 schreiben (650) 5. Commit Transaktionen
200 950 500 550 300 250 K1 K2 K3 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 1. K3 lesen (300) 2. K3 schreiben (250) 3. K2 lesen (500) 4. K2 schreiben (550) 5. Commit Transaktionen
Transition Definierter Anfang Arbeitsschritte Schritt 1 Schritt 2 Schritt n Abschluss Zustand Consistence Transaktion (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
Ganz lange Transaktion (Workflow) Beginn Abschluss Commit, Roll Back Lange Transaktion (Aktivität) Lange Transaktion (Aktivität) Lange Transaktion (Aktivität) Commit, Roll Back Transaktion (Funktion) Transaktion (Funktion) Transaktion (Funktion) Commit, Roll Back DB-Update DB-Update DB-Update Transaktionen auf 3 Ebenen 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