datenbanksysteme für fÜ ss 2000 seite 9 - 1 worzyk fh anhalt transaktionen und...
TRANSCRIPT
Datenbanksysteme für FÜ SS 2000Seite 9 - 1
WorzykFH Anhalt
Transaktionen und Parallelverarbeitung
• Eigenschaften von Transaktionen• Konsistenz• Isolation• Parallelverarbeitung• Sperrkonzepte• Deadlock• Beispiele
Datenbanksysteme für FÜ SS 2000Seite 9 - 2
WorzykFH Anhalt
Eigenschaften von Transaktionen
• Konsistenz
• Dauerhaftigkeit
• Atomizität
• Isolation
Datenbanksysteme für FÜ SS 2000Seite 9 - 3
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 4
WorzykFH Anhalt
Dauerhaftigkeit
Korrekt beendete Transaktionen wirken sich dauerhaft auf die Daten aus. Ihre Wirkung kann nicht durch Systemfehler nachträglich zerstört werden.
Datenbanksysteme für FÜ SS 2000Seite 9 - 5
WorzykFH Anhalt
Unteilbarkeit
Eine Transaktion ist eine unteilbare Operation. Sie wird entweder vollständig durch geführt oder bleibt ohne Wirkung.
Datenbanksysteme für FÜ SS 2000Seite 9 - 6
WorzykFH Anhalt
Isolation
Parallel ablaufende Transaktionen sind voneinander isoliert, so daß jede Transaktion unabhängig von den anderen zurückgesetzt werden kann.
Datenbanksysteme für FÜ SS 2000Seite 9 - 7
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 8
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 9
WorzykFH Anhalt
Teilaufgaben zur Konsistenzsicherung
• Konsistenzbeschreibung
• Konsistenzüberwachung
• Konsistenzerhaltung
• Konsistenzerzeugung
Datenbanksysteme für FÜ SS 2000Seite 9 - 10
WorzykFH Anhalt
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
– Der Benutzer meldet sich ab– Der Prozess bricht ab
Datenbanksysteme für FÜ SS 2000Seite 9 - 11
WorzykFH Anhalt
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;
Datenbanksysteme für FÜ SS 2000Seite 9 - 12
WorzykFH Anhalt
Savepoints
• Savepoints können gesetzt werden, um Teilergebnisse einer Transaktion zu kennzeichnen. Es kann dann ein Rollback bis zu einem Savepoint vorgenommen werden.
Anfang Savepoint Rollback (Savepoint)
Datenbanksysteme für FÜ SS 2000Seite 9 - 13
WorzykFH Anhalt
Unteilbarkeit Dauerhaftigkeit
Umbuchung eines Betrages von einem Konto auf ein anderes.
UPDATE ta_kontoSET Kontostand = Kontostand - BetragWHERE Konto# = VonKonto
UPDTE ta_kontoSET Kontostand = Kontostand + BetragWHERE Konto# = NachKonto
Datenbanksysteme für FÜ SS 2000Seite 9 - 14
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 15
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 16
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 17
WorzykFH Anhalt
Isolationgegenseitige Beeinflusung
• Lost Update (verlorengegeangene Aktualisierung)
• Dirty Read (Lesen von nicht festgeschriebenen Daten)
• Non Repeatable Read (Nichtwiederholbares Lesen)
• Phantoms (Inkonsistentes Lesen)• DDL-Operationen
Datenbanksysteme für FÜ SS 2000Seite 9 - 18
WorzykFH Anhalt
Lost UpdateTranaktion T1 Transaktion T2Zeit
SELECT xFROM ta_tabWHERE x = 2xneu = x + 7
UPDATE ta_tabSET x = xneuWHERE x = 2
COMMTI WORK
SELECT xFROM ta_tabWHERE x = 2
xneu = 2 * x
UPDATE ta_tabSET x = xneuWHERE x = 2
COMMTI WORK
t1
t2
t3
t4
t5
t6
Datenbanksysteme für FÜ SS 2000Seite 9 - 19
WorzykFH Anhalt
Dirty ReadTranaktion T1 Transaktion T2Zeit
SELECT xFROM ta_tabWHERE x = 2
xneu = x + 7
UPDATE ta_tabSET x = xneuWHERE x = 2
ROLLBACK WORK
SELECT xFROM ta_tabWHERE x = 9
xneu = 2 * x
UPDATE ta_tabSET x = xneuWHERE x = 9
COMMTI WORK
t1
t2
t3
t4
t5
t6
Datenbanksysteme für FÜ SS 2000Seite 9 - 20
WorzykFH Anhalt
Non Repeatable ReadTranaktion T1 Transaktion T2Zeit
SELECT xFROM ta_tabWHERE x = 2
xneu = x + 7
UPDATE ta_tabSET x = xneuWHERE x = 2
COMMIT WORK
SELECT xFROM ta_tabWHERE x = 2
UPDATE ta_tabSET x = x * 2
t1
t2
t3
t4
t5
t6
IF bedingung ...
Datenbanksysteme für FÜ SS 2000Seite 9 - 21
WorzykFH Anhalt
Phantoms
Tranaktion T1 Transaktion T2Zeit
SELECT SUM(x)FROM ta_tabWHERE x > 0
UPDATE ta_tabSET x = -x
t1
t2
Datenbanksysteme für FÜ SS 2000Seite 9 - 22
WorzykFH Anhalt
DDL - Operationen
Tranaktion T1Transaktion T2
Zeit
SELECT xFROM ta_tabWHERE x = 2
xneu = x + 7
UPDATE ta_tabSET x = xneuWHERE x = 2
COMMTI WORK
DROP TABLE ta_tab
t1
t2
t3
t4
Datenbanksysteme für FÜ SS 2000Seite 9 - 23
WorzykFH Anhalt
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
Datenbanksysteme für FÜ SS 2000Seite 9 - 24
WorzykFH Anhalt
SCN
SCN 10023
SCN 10023
SCN 10024
SCN 10023
SCN 10023
SELECT
Datenblöcke derRollback Segmente
Datenbanksysteme für FÜ SS 2000Seite 9 - 25
WorzykFH Anhalt
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
Datenbanksysteme für FÜ SS 2000Seite 9 - 26
WorzykFH Anhalt
TabellensperrenSQL Anweisung Modus Sperren erlaubt?
RS RX S SRX XSELECT keiner J J J J JSELECT ... FOR UPDATE RS J * J * J * J * NINSERT RX J J N N NUPDATE RX J * J * N N NDELETE RX J * J * N N NLOCK TABLE ... IN ROW SHAREMODE
RS J J J J N
LOCK TABLE ... IN ROW EXCLUSIVEMODE
RX J J N N N
LOCK TABLE ... IN SHARE MODE S J N J N NLOCK TABLE ... IN SHARE ROWEXCLUSIVE MODE
SRX J N N N N
LOCK TABLE ... IN EXCLUSIVE MODE X N N N N N
* Wenn die Spalten nicht betroffen sind
Datenbanksysteme für FÜ SS 2000Seite 9 - 27
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 28
WorzykFH Anhalt
DeadlockBeispiel
Tranaktion T1 Transaktion T2Zeit
UPDATE ta_tabSET x = x +1WHERE x = 2
UPDATE ta_tabSET x = x + 3WHERE x = 4
deadlock detected
UPDATE ta_tabSET x = x + 5WHERE x = 4
UPDATE ta_tabSET x = x + 7WHERE x = 2
t1
t2
t3
Datenbanksysteme für FÜ SS 2000Seite 9 - 29
WorzykFH Anhalt
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.
Datenbanksysteme für FÜ SS 2000Seite 9 - 30
WorzykFH Anhalt
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).
K1 K2
T
Rollback
Datenbanksysteme für FÜ SS 2000Seite 9 - 31
WorzykFH Anhalt
Zusammenfassung 2• Eigenschaften von Transaktionen
– Konsistenz– Dauerhaftigkeit– Atomizität– Isolation
• Gegenseitige Beeinflussung– Lost Update– Dirty Read– Non Repeatable Read– Phantoms
Datenbanksysteme für FÜ SS 2000Seite 9 - 32
WorzykFH Anhalt
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