Isolation

Werbung
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
Herunterladen