什麼是兩階段鎖定(2PL)

每筆交易有加鎖與解鎖兩個階段,一旦開始解鎖就不再加新鎖的並行控制方式。可保證可序列化,但仍可能發生死結。

日文名稱: 2相ロック

「兩階段鎖定(2PL)」出現在1領域的1道練習題中(資料庫基礎等)。

這個名詞所屬的領域: 資料庫基礎

練習兩階段鎖定(2PL)的題目

關於交易的並行控制所使用的兩階段鎖定(2PL),下列敘述何者正確?

  1. A每筆交易可以任意重複加鎖與解鎖的階段。藉此保證不會發生死結
  2. B讀取時不加鎖,只在寫入時加鎖。藉此能防止包括髒讀在內的所有問題
  3. C每筆交易只要解除了任何一個鎖,之後就不再加新的鎖。藉此保證即使同時執行,結果也與依序執行時相同,但仍可能發生死結
查看答案與解析

正確答案:C. 每筆交易只要解除了任何一個鎖,之後就不再加新的鎖。藉此保證即使同時執行,結果也與依序執行時相同,但仍可能發生死結

在兩階段鎖定(2PL)中,每筆交易有依序取得所需鎖的階段(成長階段)與解除鎖的階段(縮減階段)兩個階段,一旦開始解除鎖,就不再加新的鎖。只要所有交易都遵守這項規則,就能保證同時執行的結果與依某種順序逐一執行交易時相同(可序列化)。不過,它無法防止兩筆交易互相等待對方解鎖的死結,因此DBMS會偵測死結,並以回復其中一筆交易等方式處理。實務上常用直到提交為止都不解除排他鎖的嚴格兩階段鎖定,它也能防止其他交易讀取尚未提交的資料。

解析中的「兩階段鎖定(2PL)」

出現「兩階段鎖定(2PL)」的題目(1題)

  1. 關於交易的並行控制所使用的兩階段鎖定(2PL),下列敘述何者正確?

相關名詞

交易 死結(Deadlock) 主鍵 外鍵 正規化 索引 第三正規化(3NF) 隔離等級 檢視表 關聯式資料庫

前往名詞解釋列表