令和3年度 秋期 午前Ⅱ 問13
トランザクション処理
2相ロック方式に関する問題
2 相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。
- ア全てのトランザクションが直列に制御され,デッドロックが発生することはない。
- イトランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
- ウトランザクションは,自分が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
- エトランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
答えと解説を見る
✓ これが正解エトランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
解説
2 相ロック方式では、必要なロックを全て獲得した後にだけ解除できます。
2 相ロック方式では、一つのトランザクションの中で、ロックを獲得していく段階と、ロックを解除していく段階を分けます。いったんロックを一つでも解除したら、それ以降は新たなロックを獲得しません。言い換えると、ロックの解除は、必要なロックを全て獲得し終えた後にだけ行えます。この約束を全てのトランザクションが守ると、並行に実行しても、何らかの順に一つずつ実行した場合と同じ結果になることが保証されます。ただし、獲得の段階で互いの解除を待ち合うことはあるため、デッドロックは防げません。獲得の段階と解除の段階の二つに分かれるから2相、と名前の由来で覚えておくと記述を見分けやすくなります。
ほかの選択肢はなぜ違うのか
- ア全てのトランザクションが直列に制御され,…:2 相ロック方式は、トランザクションを並行に動かしたまま、結果が直列に実行した場合と同じになるよう制御する方式です。実際に一つずつ順に実行するわけではなく、互いのロック解除を待ち合うデッドロックも起こり得ます。
- イトランザクションのコミット順序は,トラン…:2 相ロック方式が決めているのはロックの獲得と解除の順序であり、トランザクションをどの順にコミットさせるかは定めていません。開始時刻の順にコミットさせる制御は、この方式の性質ではありません。
- ウトランザクションは,自分が獲得したロック…:ロックを全て解除してからコミットすると、コミット前の更新を他のトランザクションが読めてしまう時間が生じます。一般にはコミットの後にロックを解除する運用がとられ、コミットの前に全解除が必要という決まりはこの方式にはありません。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問15:隔離性水準に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)