Anfang des Inhaltsbereichs

 Art der Sperre 

Das Datenbanksystem unterscheidet folgende Sperren:

·       Lesesperre

·       Schreibsperre

·       Optimistische Sperre

·       Spezielle Sperren für die Metadaten des Datenbankkatalogs, die jedoch immer implizit vergeben werden.

Eine schematische Übersicht über die mögliche Parallelität von Lesesperren (L-Sperren) und Schreibsperren (S-Sperren) zeigt die folgende Tabelle.

 

Eine Transaktion habe

 

auf einer Tabelle

auf einer Zeile

auf dem Datenbankkatalog

Kann eine andere Transaktion

S-Sperre

L-Sperre

S-Sperre

L-Sperre

S-Sperre

L-Sperre

für die Tabelle eine S-Sperre anfordern?

nein

nein

nein

nein

nein

ja

für die Tabelle eine L-Sperre anfordern?

nein

ja

nein

ja

nein

ja

für irgendeine Zeile der Tabelle eine S-Sperre anfordern?

nein

nein

-

-

nein

ja

für die gesperrte Zeile eine S-Sperre anfordern?

-

-

nein

nein

-

-

für eine andere Zeile eine S-Sperre anfordern?

-

-

ja

ja

-

-

für irgendeine Zeile der Tabelle eine L-Sperre anfordern?

nein

ja

-

-

nein

ja

für die gesperrte Zeile eine L-Sperre anfordern?

-

-

nein

ja

-

-

für eine andere Zeile eine L-Sperre anfordern?

-

-

ja

ja

-

-

die Definition der Tabelle im Datenbankkatalog ändern?

nein

nein

nein

nein

nein

nein

die Definition der Tabelle im Datenbankkatalog lesen?

ja

ja

ja

ja

nein

ja

In Fällen, die mit "nein" gekennzeichnet sind, liegt eine Sperrkollision vor, d. h. die Anforderung einer Sperre innerhalb einer Transaktion führt dazu, dass auf die Freigabe einer Sperre gewartet werden muss, bis eine der oben genannten oder eine der in der Matrix mit "ja" gekennzeichneten Situationen vorliegt.

Außerdem gilt folgendes:

·       Wenn keine Sperre für ein Datenobjekt einer Transaktion zugeordnet ist, kann eine Lese- oder eine Schreibsperre innerhalb jeder Transaktion angefordert werden, und sie wird dieser Transaktion sofort zugeordnet.

·       Wenn einer Transaktion T1 eine Lesesperre für ein Datenobjekt zugeordnet ist und keiner konkurrierenden Transaktion eine Sperre für dieses Datenobjekt zugeordnet ist, kann die Transaktion T1 eine Schreibsperre für dieses Datenobjekt anfordern und erhält sie sofort zugeordnet.

·       Wenn einer Transaktion eine Schreibsperre für ein Datenobjekt zugeordnet ist, ist es für diese Transaktion möglich, aber nicht nötig, eine Lesesperre anzufordern.

Ende des Inhaltsbereichs