令和5年度 秋期 データベーススペシャリスト試験 午前II 問12
テクノロジデータベース
この問題は2023(R5)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
2相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。
解答・解説を読む
正解: 選択肢エ
2相ロック方式(Two-Phase Locking: 2PL)は、トランザクションの同時実行制御において、直列可能性(シリアライザビリティ)を保証するためのロックプロトコルです。
この方式では、トランザクションにおけるロックの操作を以下の2つのフェーズ(相)に分けて行います。
- 第1相(成長相): 必要なデータに対するロックを次々と獲得していくフェーズです。この期間中はロックの解除を行うことはできません。
- 第2相(縮退相): 獲得したロックを順次解除していくフェーズです。一度でもロックを解除すると、以降は新たなロックを獲得することができません。
したがって、トランザクションは必要なすべてのロックを獲得し終えた後にのみ、ロックの解除を開始できることになります。
各選択肢の解説
- ア: 誤り。2相ロック方式では直列可能性は保証されますが、複数のトランザクションが互いに相手のロック解除を待つ状態に陥る可能性があるため、デッドロックは発生する可能性があります。
- イ: 誤り。トランザクション開始の時刻順にコミットを制御するのは、タイムスタンプオーダリング方式の特徴です。
- ウ: 誤り。通常、トランザクションは処理を確定するコミット(またはロールバック)のタイミングで、獲得していたすべてのロックを解除します。ロックをすべて解除した後にコミットするわけではありません。
- エ: 正解。2相ロック方式の原則である「一度ロックを解除し始めると新たなロックを獲得できない(=必要なロックをすべて獲得した後にのみ解除フェーズに移行できる)」という特徴を正しく説明しています。