Was ist Sperre, Binärsperre definieren und welche Regeln werden von Lock Manager erzwungen?

1 Antworten


  • Jedes Datenelement hat eine Variable, die den Status des Elements in Bezug darauf beschreibt, welche Operationen darauf angewendet werden können, diese Variable wird als Sperre bezeichnet. Normalerweise hat jedes Datenelement in der Datenbank eine Sperre.

    Arten von Sperren: Es gibt zwei Arten von Sperren, eine ist die binäre Sperre und die andere ist die Shared/Exclusive-Sperre.
    Binärsperre: Binärsperre hat 2 Zustände als gesperrt und entsperrt. 1 wird verwendet, um den gesperrten Status darzustellen, und 0 wird verwendet, um den entsperrten Status darzustellen. Jedes Datenelement in der Datenbank hat eine eigene Sperre. Wenn der Wert der Sperre für ein Element a 1 ist, bedeutet dies, dass auf Element a nicht durch eine Datenbankoperation zugegriffen werden kann. Wenn der Wert von lock für ein Element a 0 ist, kann auf dieses Element von jeder Datenbankoperation zugegriffen werden, die darauf zugreifen möchte.

    Im Folgenden sind die Regeln aufgeführt, die eine Transaktion befolgen muss. Diese Regeln werden vom Sperrmanager durchgesetzt.
    (1) Wenn eine Transaktion t Operationen zum Lesen von Element (a) oder Schreiben von Elementen (a) ausführen möchte, muss diese Transaktion t zuerst eine Operation zum Sperren von Element (a) ausgeben.
    (2) Nach Abschluss aller Read-Item(a)- und Write-Item(a)-Operationen muss Transaktion t die Operation unlock-Item(a) ausgeben.
    (3) Eine Transaktion t wird eine Operation zum Entsperren von Item(a) genau dann und nur dann ausgeben, wenn sie bereits die Sperre für Item a hält.
    (4) Wenn eine Transaktion t bereits die Sperre für ein Element a hält, wird diese Transaktion t keine Operation zum Sperren von Element (a) ausgeben.

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear