38
Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung • Eigenschaften von Transaktionen • Konsistenz • Isolation • Parallelverarbeitung • Sperrkonzepte • Deadlock • Beispiele

Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Embed Size (px)

Citation preview

Page 1: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 1

WorzykFH Anhalt

Transaktionen und Parallelverarbeitung

• Eigenschaften von Transaktionen• Konsistenz• Isolation• Parallelverarbeitung• Sperrkonzepte• Deadlock• Beispiele

Page 2: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 2

WorzykFH Anhalt

ZugriffsteuerungKonto

500

500

+ 400 - 200

500

300900

300

900BaFöG

Sachbearbeiter 1

Miete

Sachbearbeiter 2

+ 400 - 200

900

300

Page 3: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 3

WorzykFH Anhalt

ZugriffsteuerungKonto

500

500

+ 400 - 200

900

700900

700

900BaFöG

Sachbearbeiter 1

Miete

Sachbearbeiter 2

+ 400 - 200

900

700

Page 4: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 4

WorzykFH Anhalt

Konsistenzsicherung

Konto 1 Konto 2

700 300

Überweise500von Konto 1nach Konto 2

Konto 1 -500

Konto 2 +500

-500

200

+500

800

Page 5: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 5

WorzykFH Anhalt

Konsistenzsicherung

Konto 1 Konto 2

700 300

Überweise500von Konto 1nach Konto 2

Konto 1 -500-500

200

Page 6: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 6

WorzykFH Anhalt

Konsistenzsicherung

Konto 1 Konto 2

700 300

Überweise500von Konto 1nach Konto 2

Konto 1 -500

Konto 2 +500

-500

200

+500

800700 300

altalt

Transaktion

Page 7: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 7

WorzykFH Anhalt

Eigenschaften von Transaktionen

• Konsistenz

• Dauerhaftigkeit

• Unteilbarkeit

• Isolation

Page 8: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 8

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.

Page 9: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 9

WorzykFH Anhalt

Dauerhaftigkeit

Korrekt beendete Transaktionen wirken sich dauerhaft auf die Daten aus. Ihre Wirkung kann nicht durch Systemfehler nachträglich zerstört werden.

Page 10: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 10

WorzykFH Anhalt

Unteilbarkeit

Eine Transaktion ist eine unteilbare Operation. Sie wird entweder vollständig durch geführt oder bleibt ohne Wirkung.

Page 11: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 11

WorzykFH Anhalt

Isolation

Parallel ablaufende Transaktionen sind voneinander isoliert, so daß jede Transaktion unabhängig von den anderen zurückgesetzt werden kann.

Page 12: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 12

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.

Page 13: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 13

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.

Page 14: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 14

WorzykFH Anhalt

Teilaufgaben zur Konsistenzsicherung

• Konsistenzbeschreibung

• Konsistenzüberwachung

• Konsistenzerhaltung

• Konsistenzerzeugung

Page 15: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 15

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

Page 16: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 16

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;

Page 17: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 17

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)

Page 18: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 18

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

Page 19: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 19

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.

Page 20: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 20

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.

Page 21: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 21

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.

Page 22: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 22

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

Page 23: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 23

WorzykFH Anhalt

Lost Update

Transaktion T1

Transaktion T2 Zeit

SELECT x FROM ta_tab WHERE x = 2 xneu = x + 7

UPDATE ta_tab SET x = xneu WHERE x = 2

COMMIT WORK

SELECT x FROM ta_tab WHERE x = 2

xneu = 2 * x

UPDATE ta_tab SET x = xneu WHERE x = 2

COMMIT WORK

t1

t2

t3

t4

t5

t6

Page 24: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 24

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

Page 25: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 25

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 ...

Page 26: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 26

WorzykFH Anhalt

Phantoms

Tranaktion T1 Transaktion T2Zeit

SELECT SUM(x)FROM ta_tabWHERE x > 0

UPDATE ta_tabSET x = -x

t1

t2

Page 27: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 27

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

Page 28: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 28

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

Page 29: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 29

WorzykFH Anhalt

SCN

SCN 10023

SCN 10023

SCN 10024

SCN 10023

SCN 10023

SELECT

Datenblöcke derRollback Segmente

Page 30: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 30

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

Page 31: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 31

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

Page 32: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 32

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.

Page 33: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 33

WorzykFH Anhalt

Deadlock

Page 34: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 34

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

Page 35: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 35

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.

Page 36: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 36

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

Page 37: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 37

WorzykFH Anhalt

Zusammenfassung 2• Eigenschaften von Transaktionen

– Konsistenz– Dauerhaftigkeit– Atomizität– Isolation

• Gegenseitige Beeinflussung– Lost Update– Dirty Read– Non Repeatable Read– Phantoms

Page 38: Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz

Datenbanksysteme für FÜ WS 2004/2005Transaktionen 38

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