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

テクノロジデータベース

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

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

DBMSにおいて,トランザクション間でデッドロックが発生していることを検出するために使用するものはどれか。

解答・解説を読む

正解: 選択肢

DBMSにおけるデッドロックとは、複数のトランザクションが互いに相手が保持しているリソースのロック解除を待ち合い、処理が停止してしまう状態を指します。

このデッドロックが発生しているかを検出するために、DBMSでは待ちグラフ(Wait-for Graph)を使用します。待ちグラフは、トランザクションをノード(頂点)とし、トランザクション間のロックの待ち状態をエッジ(矢印)として表現したグラフです。このグラフ内に閉路(サイクル)が存在する場合、デッドロックが発生していると判定できます。

したがって、正解は「エ」です。

各選択肢の解説

  • ア 2相ロック: トランザクションの直列可能性を保証するためのロック方式です。ロックを獲得するフェーズと解放するフェーズを分けることでデータの整合性を保ちますが、デッドロックの検出には使用されません。
  • イ 時刻印アルゴリズム: トランザクションの開始時刻(タイムスタンプ)を用いて実行順序を制御し、直列可能性を保証する手法です。そもそもロックを使用しないためデッドロックは発生しません。
  • ウ チェックポイント: 障害発生時の回復処理(リカバリ)を効率化するため、メモリ上の更新内容を定期的にディスクに書き出し、ログに記録するタイミングのことです。デッドロック検出とは無関係です。
  • エ 待ちグラフ: 正解です。トランザクション間の待ち状態をグラフ化し、閉路の有無を調べることでデッドロックを検出します。