Anfang des Inhaltsbereichs

 Phänomene 

Bei der Abarbeitung konkurrierender Transaktionen kann es zu inkonsistenten Situationen kommen. Sie sollten versuchen, Sperrverhalten und Isolation-Level des Datenbanksystems so festzulegen, dass diese Situationen verhindert werden.

Folgende Phänomene können bei konkurrierenden Zugriffen auf den gleichen Datenbestand auftreten:

·       Dirty-Read

In einer Transaktion T1 wird eine Zeile geändert und eine Transaktion T2 liest diese Zeile, bevor T1 durch die COMMIT-Anweisung abgeschlossen ist. T1 führt dann die ROLLBACK-Anweisung aus. T2 hat in diesem Fall eine Zeile gelesen, die eigentlich nie existierte.

·       Non-Repeatable-Read

Eine Transaktion T1 liest eine Zeile. Eine Transaktion T2 verändert oder löscht dann diese Zeile und schließt mit der COMMIT-Anweisung ab. Wenn T1 anschließend die Zeile nochmals liest, erhält T1 entweder die veränderte Zeile oder die Meldung, dass die Zeile nicht mehr existiert.

·       Phantom

Eine Transaktion T1 führt eine SQL-Anweisung S aus, die eine Menge M von Zeilen liest, die eine Suchbedingung erfüllen. Eine Transaktion T2 erzeugt dann z. B. durch das Einfügen oder Ändern von Daten mindestens eine weitere Zeile, die die Suchbedingung erfüllt. Wenn in T1 anschließend nochmals S ausgeführt wird, unterscheidet sich die Menge der gelesenen Zeilen von M.

Die Tabelle gibt eine Übersicht darüber, welche Phänomene in welchem Isolation-Level auftreten können.

 

Isolation Level

0

1 oder 10

2 oder 20

3 oder 30

Dirty-Read

ja

nein

nein

nein

Non-Repeatable-Read

ja

ja

nein

nein

Phantom

ja

ja

ja

nein

 

Ende des Inhaltsbereichs