IPA過去問ドリル

平成26年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15

テクノロジ/データベース

DBMSにおいて,デッドロックを検出するために使われるデータ構造はどれか。

出典:平成26年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15

正解:エ

解説

デッドロックは,複数のトランザクションが互いに相手の保持するロックの解放を待ち合う状態である。DBMSは,各トランザクションが「どのトランザクションの解放を待っているか」という待ち関係をノードと有向辺で表す待ちグラフ(wait-for graph)を管理し,このグラフ上に閉路(サイクル)が存在するかどうかを検査することによって,デッドロックの発生を検出する。

選択肢ごとの解説

  • 誤り。資源割当表は,どの資源がどのトランザクションに割り当てられているかを管理する表であり,デッドロックの検出そのものに用いられるデータ構造ではない。
  • 誤り。時刻印順管理表は,タイムスタンプ順に基づく同時実行制御方式で用いられるものであり,デッドロックの検出のためのデータ構造ではない。
  • 誤り。トランザクションの優先順管理表は,デッドロックが発生した際にどのトランザクションを取り消すかを決定するための優先順位付けに関連し得るが,デッドロックの検出そのものに用いられる標準的なデータ構造ではない。
  • 正しい。トランザクション間の「誰が誰の解放を待っているか」という待ち関係を表す待ちグラフを用い,そこに閉路(サイクル)が生じているかどうかを調べることによってデッドロックを検出する。
データベーススペシャリストの過去問を演習モードで解く