平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15
テクノロジ/データベース2相ロック方式に従うトランザクションに関する記述のうち,適切なものはどれか。
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15
- アデッドロックが発生することはない。
- イ同一トランザクション内であれば,アンロック後にロックを行うことができる。
- ウトランザクションが利用するロックは,専有ロックに限られる。
- エトランザクションの競合直列可能性が保証される。
正解:エ
解説
2相ロック方式(2PL)は,トランザクションの実行を,ロックを獲得するだけの拡張フェーズと,ロックを解放するだけの縮退フェーズの2段階に分け,一度ロックの解放を始めたら以降新たなロックを獲得しないという規則に従う方式です。この規則に従うトランザクションは,同時実行された結果が何らかの逐次実行の結果と一致する競合直列可能性(conflict serializability)が保証されることが知られています。
選択肢ごとの解説
- ア誤り。2相ロック方式に従っていても,複数のトランザクションが互いに相手の保持するロックの解放を待ち合う状況(デッドロック)は発生し得ます。
- イ誤り。2相ロック方式では,一度ロックの解放(アンロック)を行った後に新たなロックを獲得することは禁止されており,これが「2相」という名前の由来です。設問の記述は2相ロックの規則に反しています。
- ウ誤り。2相ロック方式は,共有ロック(読取り用)と専有ロック(書込み用)の両方を利用でき,専有ロックだけに限られるわけではありません。
- エ正しい。2相ロック方式に従うトランザクションは,同時実行の結果が何らかの順序での逐次実行の結果と一致する競合直列可能性が保証されることが理論的に知られています。