Transaktionen und Parallelverarbeitung • • • • • • • Eigenschaften von Transaktionen Konsistenz Isolation Parallelverarbeitung Sperrkonzepte Deadlock Beispiele Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 1 Eigenschaften von Transaktionen • Konsistenz • Dauerhaftigkeit • Atomizität • Isolation Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 2 Konsistenz Jede Transaktion erhält die Konsistenz der Datenbasis aufrecht. Sämtliche Zustandsbedingungen gelten vor und nach Beendigung der Transaktion. Transaktionen stellen die Klammer dar, um Folgen von Datenbankoperationen zu konsistenzerhaltenden Zustandsübergängen zusammenzufassen. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 3 Dauerhaftigkeit Korrekt beendete Transaktionen wirken sich dauerhaft auf die Daten aus. Ihre Wirkung kann nicht durch Systemfehler nachträglich zerstört werden. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 4 Unteilbarkeit Eine Transaktion ist eine unteilbare Operation. Sie wird entweder vollständig durch geführt oder bleibt ohne Wirkung. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 5 Isolation Parallel ablaufende Transaktionen sind voneinander isoliert, so daß jede Transaktion unabhängig von den anderen zurückgesetzt werden kann. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 6 Konsistenz im DBMS • alle Gesetzmäßigkeiten, die dem DBMS bekannt gemacht sind, werden auf dem jeweils aktuellen Datenbestand eingehalten • Eine Datenbank ist vollständig konsistent, wenn sie ein isomorphes Abbild der Umwelt ist. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 7 Lang andauernde Transaktionen • Normale Transaktionen in einem DBMS dauern einige Sekunden • Transaktionen in Entwurfsdatenbanken können mehrere Tage dauern – CAD – CASE Tools • Im Workflow Management wird Rollback häufig durch inverse Transaktionen ersetzt. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 8 Teilaufgaben zur Konsistenzsicherung • Konsistenzbeschreibung • Konsistenzüberwachung • Konsistenzerhaltung • Konsistenzerzeugung Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 9 Anfang und Ende einer Transaktion • Eine Transaktion beginnt mit der ersten ausführbaren SQL-Anweisung • Eine Transaktion endet mit – COMMT oder ROLLBACK – einer DDL-Anweisung z.B.: • CREATE TABLE • DROP TABLE Worzyk FH Anhalt – Der Benutzer meldet sich ab – Der Prozess bricht ab Datenbanksysteme für FÜ SS 2000 Seite 9 - 10 Beispiel commit; insert into ta_kunde values(88,'Anna'); update ta_angebot set kunden#=88 where kunden#=13; update ta_auftrag set kunden#=88 where kunden#=13; delete from ta_kunde where kunden#=13; commit; Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 11 Savepoints • Savepoints können gesetzt werden, um Teilergebnisse einer Transaktion zu kennzeichnen. Es kann dann ein Rollback bis zu einem Savepoint vorgenommen werden. Anfang Worzyk FH Anhalt Savepoint Rollback (Savepoint) Datenbanksysteme für FÜ SS 2000 Seite 9 - 12 Unteilbarkeit Dauerhaftigkeit Umbuchung eines Betrages von einem Konto auf ein anderes. UPDATE ta_konto SET Kontostand = Kontostand - Betrag WHERE Konto# = VonKonto UPDTE ta_konto SET Kontostand = Kontostand + Betrag WHERE Konto# = NachKonto Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 13 Ablauf - Ändern • Die alten Daten (vor der Veränderung) werden gespeichert. Die Transaktion bekommt eine System Change Number SCN zugeordnet. • Die Veränderungsbefehle werden protokolliert. • Die Veränderungen werden durchgeführt in die Datenbank übernommen. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 14 Ablauf - Commit • Die interne Transaktionstabelle zeichnet auf, daß die Transaktion festgeschrieben ist und zeichnet die SCN auf. • Dier Änderungsvorschrift wird archiviert • Die Sperren auf Zeilen und Tabellen werden freigegben. • Die Transaktion wird als beendet gekennzeichnet. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 15 Ablauf - Rollback • Alle Änderungen, die von der SQL-Anweisung vorgenommen wurden, werden mit Hilfe gespeicherten Daten rückgängig gemacht. • Die Sperren auf Zeilen und Tabellen werden frei gegben. • Die Transaktion wird als beendet gekennzeichnet. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 16 Isolation gegenseitige Beeinflusung • • • • • Lost Update (verlorengegeangene Aktualisierung) Dirty Read (Lesen von nicht festgeschriebenen Daten) Non Repeatable Read (Nichtwiederholbares Lesen) Phantoms (Inkonsistentes Lesen) DDL-Operationen Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 17 Lost Update Worzyk FH Anhalt Tranaktion T1 Zeit Transaktion T2 SELECT x FROM ta_tab WHERE x = 2 xneu = x + 7 t1 UPDATE ta_tab SET x = xneu WHERE x = 2 t3 SELECT x FROM ta_tab WHERE x = 2 COMMTI WORK t4 xneu = 2 * x t5 UPDATE ta_tab SET x = xneu WHERE x = 2 t6 COMMTI WORK t2 Datenbanksysteme für FÜ SS 2000 Seite 9 - 18 Dirty Read Worzyk FH Anhalt Tranaktion T1 Zeit Transaktion T2 SELECT x FROM ta_tab WHERE x = 2 t1 xneu = x + 7 t2 UPDATE ta_tab SET x = xneu WHERE x = 2 t3 SELECT x FROM ta_tab WHERE x = 9 ROLLBACK WORK t4 xneu = 2 * x t5 UPDATE ta_tab SET x = xneu WHERE x = 9 t6 COMMTI WORK Datenbanksysteme für FÜ SS 2000 Seite 9 - 19 Non Repeatable Read Tranaktion T1 Zeit SELECT x FROM ta_tab WHERE x = 2 t1 IF bedingung ... t2 SELECT x FROM ta_tab WHERE x = 2 t3 xneu = x + 7 t4 UPDATE ta_tab SET x = xneu WHERE x = 2 t5 Transaktion T2 UPDATE ta_tab SET x = x * 2 COMMIT WORK t6 Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 20 Phantoms Tranaktion T1 SELECT SUM(x) FROM ta_tab WHERE x > 0 Worzyk FH Anhalt Zeit Transaktion T2 t1 UPDATE ta_tab SET x = -x t2 Datenbanksysteme für FÜ SS 2000 Seite 9 - 21 DDL - Operationen Worzyk FH Anhalt Tranaktion T1 Zeit SELECT x FROM ta_tab WHERE x = 2 t1 xneu = x + 7 t2 UPDATE ta_tab SET x = xneu WHERE x = 2 t3 COMMTI WORK t4 Transaktion T2 DROP TABLE ta_tab Datenbanksysteme für FÜ SS 2000 Seite 9 - 22 Konsistenzerhaltung von ORACLE automatisch Lesekonsistenz auf Anweisungsebene (Phantoms) ORACLE beobachtet die SCN (System Change Number) und zur Zeit der Ausführung der Abfrage werden nur die Daten, die mit der gleichen SCN gekennzeichnet sind, berücksichtigt Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 23 SCN SELECT SCN 10023 Datenblöcke der Rollback Segmente SCN 10023 SCN 10024 SCN 10023 SCN 10023 Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 24 Sperrkonzepte von ORACLE • Automatische Sperren – Tabellensperre mit Zeilensperre im Exclusiv-Modus – Tabellensperre mit Zeilensperre im Share-Modus • Programmierbare Sperren – Tabellensperre im Share-Modus – Tabellensperre im Exclusiv-Modus Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 25 Tabellensperren SQL Anw eisung SELECT SELECT ... FOR UPDATE INSERT UPDATE DELETE LOCK TABLE ... IN ROW SHARE M ODE LOCK TABLE ... IN ROW EXCLUSIVE M ODE LOCK TABLE ... IN SHARE M ODE LOCK TABLE ... IN SHARE ROW EXCLUSIVE M ODE LOCK TABLE ... IN EXCLUSIVE M ODE M odus Sperren erlaubt? RS RX S SRX keiner J J J J RS J* J* J* J* RX J J N N RX J* J* N N RX J* J* N N RS J J J J X J N N N N N RX J J N N N S SRX J J N N J N N N N N X N N N N N * Wenn die Spalten nicht betroffen sind Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 26 Deadlock (Systemverklemmung) Ein Deadlock tritt auf, wenn mehrere Transaktionen gegenseitig auf die Freigabe von Ressourcen warten, sie die Ressourcen aber nicht freigeben können, da sie diese für den Abschluß ihrer Arbeit benötigen. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 27 Deadlock Beispiel Tranaktion T1 Worzyk FH Anhalt Zeit Transaktion T2 UPDATE ta_tab SET x = x +1 WHERE x = 2 t1 UPDATE ta_tab SET x = x + 5 WHERE x = 4 UPDATE ta_tab SET x = x + 3 WHERE x = 4 t2 UPDATE ta_tab SET x = x + 7 WHERE x = 2 deadlock detected t3 Datenbanksysteme für FÜ SS 2000 Seite 9 - 28 Reduzieren von (Dead)lock-Situationen • Transaktionen so kurz wie möglich. • Keine Bildschirmaktionen innerhalb einer Transaktion. • Bei Mehrtabellen-Update (z.B.: Master-Detail-Tabellen) muß eine für alle Anwendungen und alle Programmierer verbindliche Reihenfolge der Zugriffe und der Sperrungen festgelegt werden. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 29 Zusammenfassung 1 Eine Transaktion T überführt die Datenbank von einem konsisten Zustand K1 in einen konsisten Zustand K2. Ist das nicht möglich, wird der Zustand K1 wieder hergestellt (Rollback). T K1 Worzyk FH Anhalt K2 Rollback Datenbanksysteme für FÜ SS 2000 Seite 9 - 30 Zusammenfassung 2 • Eigenschaften von Transaktionen – Konsistenz – Dauerhaftigkeit – Atomizität – Isolation • Gegenseitige Beeinflussung Worzyk FH Anhalt – Lost Update – Dirty Read – Non Repeatable Read – Phantoms Datenbanksysteme für FÜ SS 2000 Seite 9 - 31 Zusammenfassung 3 • Deadlocks können reduziert werden durch – Kurze Transaktionen – Keine Bildschirmeingabe innerhalb – Mehrtabellen Update immer in der gleichen Reihenfolge • Das Ende einer Transaktion wird vom Programmierer bestimmt Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 9 - 32