Transaktionen und Parallelverarbeitung
•
•
•
•
•
•
•
Eigenschaften von Transaktionen
Konsistenz
Isolation
Parallelverarbeitung
Sperrkonzepte
Deadlock
Beispiele
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 1
Zugriffsteuerung
BaFöG
+ 400
Sachbearbeiter 1
500
+ 400
900
Konto
500
900
300
Miete
- 200
Sachbearbeiter 2
500
- 200
300
900
300
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 2
Zugriffsteuerung
BaFöG
+ 400
Sachbearbeiter 1
500
+ 400
900
Konto
500
900
700
Miete
- 200
Sachbearbeiter 2
900
- 200
700
900
700
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 3
Konsistenzsicherung
Konto 1
700
200
Überweise
500
von Konto 1
nach Konto 2
-500
Konto 1 -500
Konto 2 +500
Worzyk
FH Anhalt
Konto 2
300
800
+500
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 4
Konsistenzsicherung
Konto 1
Worzyk
FH Anhalt
700
200
Überweise
500
von Konto 1
nach Konto 2
-500
Konto 1 -500
Konto 2
300
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 5
Konsistenzsicherung
alt
700
Konto 1
700
200
Überweise
500
von Konto 1
nach Konto 2
-500
Konto 1 -500
Konto 2 +500
Konto 2
300
800
alt
300
+500
Transaktion
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 6
Eigenschaften von Transaktionen
• Konsistenz
• Dauerhaftigkeit
• Unteilbarkeit
• Isolation
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 7
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Ü WS 2004/2005
Transaktionen 8
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Ü WS 2004/2005
Transaktionen 9
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Ü WS 2004/2005
Transaktionen 10
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Ü WS 2004/2005
Transaktionen 11
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Ü WS 2004/2005
Transaktionen 12
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Ü WS 2004/2005
Transaktionen 13
Teilaufgaben zur Konsistenzsicherung
• Konsistenzbeschreibung
• Konsistenzüberwachung
• Konsistenzerhaltung
• Konsistenzerzeugung
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 14
Anfang und Ende einer Transaktion
• Eine Transaktion beginnt mit der ersten ausführbaren SQLAnweisung
• 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Ü WS 2004/2005
Transaktionen 15
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Ü WS 2004/2005
Transaktionen 16
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Ü WS 2004/2005
Transaktionen 17
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Ü WS 2004/2005
Transaktionen 18
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Ü WS 2004/2005
Transaktionen 19
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Ü WS 2004/2005
Transaktionen 20
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Ü WS 2004/2005
Transaktionen 21
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Ü WS 2004/2005
Transaktionen 22
Lost Update
Transaktion
T1
SELECT x
FROM ta_tab
WHERE x = 2
xneu = x + 7
Worzyk
FH Anhalt
Zeit
Transaktion T2
t1
t2
UPDATE ta_tab
SET x = xneu
WHERE x = 2
t3
SELECT x
FROM ta_tab
WHERE x = 2
COMMIT WORK
t4
xneu = 2 * x
t5
UPDATE ta_tab
SET x = xneu
WHERE x = 2
t6
COMMIT WORK
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 23
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Ü WS 2004/2005
Transaktionen 24
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Ü WS 2004/2005
Transaktionen 25
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Ü WS 2004/2005
Transaktionen 26
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Ü WS 2004/2005
Transaktionen 27
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Ü WS 2004/2005
Transaktionen 28
SCN
SELECT
SCN 10023
Datenblöcke der
Rollback Segmente
SCN 10023
SCN 10024
SCN 10023
SCN 10023
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 29
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Ü WS 2004/2005
Transaktionen 30
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Ü WS 2004/2005
Transaktionen 31
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Ü WS 2004/2005
Transaktionen 32
Deadlock
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Transaktionen 33
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Ü WS 2004/2005
Transaktionen 34
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Ü WS 2004/2005
Transaktionen 35
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Ü WS 2004/2005
Transaktionen 36
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Ü WS 2004/2005
Transaktionen 37
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Ü WS 2004/2005
Transaktionen 38

Transaktionen