Databases Reference
In-Depth Information
einer Dialoganwendung ja noch nicht »wissen« kann, ob diesem ein Schreibvor-
gang folgt. In unserer obigen Formulierung könnte allerdings die Notwendigkeit
eines X-Locks vom DBMS selbst noch erkannt werden, da mit der SQL-Anweisung
UPDATE immer Lese- und Schreibvorgänge verbunden sind.
Situation 2 erfordert die explizite Anforderung einer exklusiven Sperre durch A,
auch wenn es sich »nur« um eine lesende Transaktion handelt.
Optimistische Sperrmethoden
Bei optimistischen Kontrollmethoden wird davon ausgegangen, dass die Wahr-
scheinlichkeit auftretender Konflikte relativ gering ist, so dass auf die vorsorgliche
Sperre ganzer Tabellen oder einzelner Reihen verzichtet wird. Erst im Konfliktfall
werden dann Maßnahmen ergriffen, die die Konsistenzerhaltung gewährleisten.
Dabei geht es dann im Wesentlichen um ein kontrolliertes Zurücksetzen von
Änderungen, verbunden mit einer automatischen Wiederholung der Operationen
zu einer anderen Zeit.
7.1.5 Isolation-Level in Transaktionen
Der Standard definiert zur Steuerung von Transaktionen so genannte »Isolation-
Level«. Dabei wird dem Datenbanksystem mitgeteilt, welche möglichen Wirkun-
gen nebenläufiger Transaktionen zulässig sind bzw. ausgeschlossen werden sollen.
Es wird dem Benutzer von SQL also keine »technische« Spezifikation der erforder-
lichen Sperre unter Benutzung der Begriffe S-Lock und X-Lock abverlangt - das
DBMS muss selbst den Typ von Sperre ermitteln, der die Benutzeranforderungen
realisiert.
Folgende Anweisung stellt SQL zur Verfügung, um vor einer Transaktion deren
Eigenschaften festzulegen:
SET TRANSACTION optionsliste
Dieselbe Optionsliste kann auch als Parameter der Anweisung
START TRANSACTION
übergeben werden.
Die Optionsliste umfasst einen Zugangsmodus (»access mode«) und den Isolation-
Level. Der Zugangsmodus wird mit READ ONLY oder READ WRITE angegeben und
legt fest, ob die Transaktion nur Lesevorgänge enthält oder auch Schreibvorgänge.
Im ersten Fall sind Änderungen auf temporäre Tabellen beschränkt. Für den Isola-
tion-Level können folgende Werte eingetragen werden:
isolation level ::= READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SERIALIZABLE
 
Search WWH ::




Custom Search