令和6年度 秋期 午前Ⅱ 問13
トランザクション処理
待ちグラフに関する問題
トランザクションA〜Gの待ちグラフにおいて,永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで,待ちグラフのX→Yは,トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。
〔トランザクションA〜Gの待ちグラフ〕:
B → D C → A C → B D → C D → E E → G F → D F → E
- アA,B,C,D
- イB,C,D
- ウB,C,D,F
- エC,D,E,F,G
答えと解説を見る
✓ これが正解ウB,C,D,F
解説
B、C、D の循環待ちと、そこを待つ F が永久待ちです。
永久待ちになるのは、待ちグラフの閉路に含まれるトランザクションと、閉路の中のトランザクションを待っているトランザクションです。辺をたどると、B は D を、D は C を、C は B を待っていて、B→D→C→B という閉路ができています。この三つは互いに相手のロック解除を待つデッドロックの状態です。F は D と E を待っています。D は閉路の中にあって解放されないので、F も永久に待ち続けます。一方、A は誰も待っていないので処理を進められ、G も同様です。E は G を待っていますが、G が終われば先に進めます。したがって B、C、D、F です。見分ける軸は、閉路を見つけたうえで、そこへ向かう辺を逆にたどることです。
ほかの選択肢はなぜ違うのか
- アA,B,C,D:A は他のトランザクションを待っていないので、処理を進めてロックを解除できます。C が A を待っていても A は止まらないので、A は永久待ちではありません。また D を待つ F が抜けています。
- イB,C,D:B、C、D は閉路を作っていて永久待ちですが、F が抜けています。F は閉路の中にある D のロック解除を待っているので、D と同じく先へ進めず、永久待ちに含めなければなりません。
- エC,D,E,F,G:G は誰も待っていないので処理を進められ、G を待つ E も G の終了後に進めます。E と G は永久待ちではありません。また閉路に含まれる B が抜けています。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問15:隔離性水準に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)