平成24年度 春期 午前Ⅱ 問13
トランザクション処理
排他制御の方式
デッドロックが発生する可能性のある排他制御の方式はどれか。
- ア2 相ロックプロトコルに従ってロックする方式
- イ時刻印を用いて,トランザクションの優先順位を決める方式
- ウ全てのトランザクションにおいて,ロック対象のデータは一定の順序でロックを行い,全てのロックが完了するまで,アンロックを行わない方式
- エトランザクション開始時に一括してロックする方式
答えと解説を見る
✓ これが正解ア2 相ロックプロトコルに従ってロックする方式
解説
2相ロックは取る順序を決めないので、デッドロックが起こり得ます。
2相ロックプロトコルは、ロックを取る段階と解除する段階を分け、一度でもアンロックしたら新たなロックを取らないという規則です。これによって実行結果は直列に実行した場合と同じになりますが、ロックを取る順序までは決めていません。たとえば T1 がデータ a を、T2 がデータ b をロックしたあと、T1 が b を、T2 が a を要求すると、互いに相手の解除を待ってどちらも進めなくなります。したがってデッドロックが発生する可能性があります。ロックの順序をそろえる、最初に一括して取る、時刻印で順序を決める、といった方式は、互いに待ち合う形を作りません。待ち合いの輪ができるかどうかで判断すると、排他制御の方式を見分けられます。
ほかの選択肢はなぜ違うのか
- イ時刻印を用いて,トランザクションの優先順…:時刻印を用いる方式は、トランザクションの開始時刻などで順序を決め、順序に反するアクセスが起きたらロールバックさせて処理を進めます。ロックを待ち合うことが無いので、デッドロックは起きません。
- ウ全てのトランザクションにおいて,ロック対…:すべてのトランザクションがデータを一定の順序でロックすれば、逆の順で取り合う状況が生まれず、待ち合いの輪ができません。そのためデッドロックは発生しない方式です。
- エトランザクション開始時に一括してロックす…:開始時に必要なロックを一括して取れば、処理の途中で新たなロックを待つことがありません。ロックを持ったまま他を待つ状態が生じないので、デッドロックは起きません。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
- プロトコル通信するときの、決まりごとや手順のまとまりのことをいいます。送る側と受ける側が同じものに従うことで、やり取りが成り立ちます。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問13
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和6年度 秋期 午前Ⅱ 問14:多版同時実行制御に関する問題(プロトコル)
- 令和5年度 秋期 午前Ⅱ 問2(プロトコル)
- 令和3年度 秋期 午前Ⅱ 問16:MVCCに関する問題(排他制御)
- 令和3年度 秋期 午前Ⅱ 問14:排他制御に関する問題(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)