平成29年度 秋期 午前 問29
データベース
トランザクションに関する問題
トランザクション A〜G の待ちグラフにおいて,永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで,待ちグラフの X→Y は,トランザクション X はトランザクション Y がロックしている資源のアンロックを待っていることを表す。
原典では〔トランザクション A〜G の待ちグラフ〕として,A〜G を丸で囲んだ 7 つの節と,節どうしを結ぶ矢印の図が置かれている。矢印の向きを1本ずつ読み取り,逐語の辺の一覧に写した(図そのものは復元していない)。
〔トランザクション A〜G の待ちグラフ〕
C → A C → B B → D D → C D → E F → D F → E E → G
- アA,B,C,D
- イB,C,D
- ウB,C,D,F
- エC,D,E,F,G
答えと解説を見る
✓ これが正解ウB,C,D,F
解説
輪の三つに加え、輪を待つものも永久に待ち続けます。
設問は、待ちグラフから永久待ちのトランザクションを全て挙げさせています。矢印は、待っている側から、資源をロックして握っている側へ向かっています。そこで辿って元に戻る道を探すと、B から D、D から C、C から B と一周する輪が見つかります。この三つは互いの解放を待ち合っているので、放っておいても誰も先へ進めません。次に、その輪へ向かって待っている者を拾います。F は D の解放を待っており、D は輪の中にいて終わる見込みがないので、F も永久に待ち続けます。残る A と G は出ていく矢印を持たず何も待っておらず、E は G だけを待っているので、G が終われば E も解放されます。したがって永久待ちは四つです。
ほかの選択肢はなぜ違うのか
- アA,B,C,D:輪の三つに、矢印を向けられている側の一つを足した形です。向きは待つ側から握る側なので、向けられている側は何かの解放を待ってはいません。
- イB,C,D:互いに待ち合う輪だけを数えた形です。その輪の中の相手を待っている一つが抜けており、その一つにも解放される見込みはありません。
- エC,D,E,F,G:輪の一部しか含まれておらず、代わりに解放を妨げられていない二つが混ざっています。何も待っていないものと、待ち先が終わるものまで数えています。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成29年度 秋期 応用情報技術者試験 午前 問29
同じ用語が出る問題
- 令和7年度 秋期 午前 問29:多版同時実行制御に関する問題(トランザクション)
- 令和6年度 秋期 午前 問31:チェックポイントに関する記述(トランザクション)
- 令和6年度 秋期 午前 問27:ロールバックに関する問題(トランザクション)
- 令和6年度 秋期 午前 問12(トランザクション)
- 令和6年度 春期 午前 問55:SaaSに関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)