データベーススペシャリスト暗記無料で始める

厳格2相ロックとは?げんかくにそうロック

厳格2相ロックとは、獲得した専有ロックをコミットまたはロールバックの時点まで一切解放しない2相ロック。未コミットの値が他のトランザクションから読まれないため、連鎖的な取消し(カスケードアボート)が起きない。実用DBMSのロック方式はおおむねこの形をとる。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の過去問では1問の解説で触れられています。

データベーススペシャリスト試験の頻出用語/午前II

別名:strict 2PL

この語が出る過去問を解く →

背景

素の2相ロックは直列化可能性を保証するが、縮退相で早めに解放した値を他のトランザクションが読める。読んだ後で元のトランザクションが失敗すれば、その値をもとに進んだ側も巻き戻さなければならず、取消しが芋づる式に広がる。解放をトランザクションの終了まで遅らせるだけで、この連鎖と回復の難しさが同時に消える。

具体例

PostgreSQLやSQL Serverでは、更新で獲得した行ロックはコミットまで保持される。その間、同じ行を更新しようとした側は待たされ、未確定の値を読むことはない。

試験での引っ掛け

「2相」が指すのはロックを獲得するだけの拡大相と解放するだけの縮退相であって、2相コミットの2フェーズ(準備・確定)とは無関係。名前が似ているため取り違えが頻出する。また2相ロックが保証するのは直列化可能性で、デッドロックは防げない。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 1問の解説で触れられる
  • 分野:午前II
  • 「2相」が指すのはロックを獲得するだけの拡大相と解放するだけの縮退相であって、2相コミットの2フェーズ(準備・確定)とは無関係。