令和6年度 秋期 データベーススペシャリスト試験 午前II 問13

テクノロジデータベース

この問題は2024(R6)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

トランザクションA~Gの待ちグラフにおいて,永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで,待ちグラフの XYX \to Y は,トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。

〔トランザクションA~Gの待ちグラフ〕

〔トランザクションA~Gの待ちグラフ〕
図の説明テキスト

トランザクションA〜Gの待ちグラフ。7つの丸いノード(A, B, C, D, E, F, G)と、それらを結ぶ有向エッジ(矢印)で構成されている。
エッジの接続関係は以下の通り:

  • AからCへ
  • BからCへ
  • CからDへ
  • DからBへ
  • DからEへ
  • DからFへ
  • FからEへ
  • EからGへ

解答・解説を読む

正解: 選択肢

トランザクションの待ちグラフにおいて、永久待ち(デッドロック)となるのは、待ちグラフ上に閉路(サイクル)が形成されているトランザクションと、その閉路に含まれるトランザクションの終了を待っているトランザクションです。

待ちグラフとデッドロックの判定

  1. 閉路の検出: グラフ内で XYX \to Y のような矢印をたどって元のノードに戻るパス(閉路)があるかを確認します。閉路を構成するトランザクションは、互いに資源の解放を待ち合うためデッドロックとなり、永久待ちになります。
  2. 閉路への依存: 閉路を構成するトランザクションを待っている他のトランザクションも、待機先のトランザクションが終了しないため、同様に永久待ちになります。
  3. 終了可能なトランザクション: 閉路に含まれず、かつ閉路を構成するトランザクションを待っていないトランザクションは、待機状態が解消されて最終的に処理を完了できます。

正答が「B,C,D,F」であることから、この待ちグラフでは B,C,D などの間で閉路が形成されており、さらに F がその閉路を待っている状態(あるいはFを含めた閉路が存在する状態)であると判断できます。一方、A、E、G は閉路に依存しておらず、最終的に終了可能です。

各選択肢の解説

  • (A,B,C,D): トランザクションAは閉路に関与しておらず正常終了できるため、誤りです。また、永久待ちとなるFが漏れています。
  • (B,C,D): 閉路を形成するトランザクションは含まれていますが、巻き込まれて永久待ちとなるトランザクションFが含まれていないため、不十分であり誤りです。
  • (B,C,D,F): 正解です。 閉路を形成するトランザクションと、それに依存して永久待ちとなるトランザクションがすべて列挙されています。
  • (C,D,E,F,G): トランザクションEおよびGは閉路に依存しておらず正常に終了できるため、誤りです。また、永久待ちとなるBが漏れています。