DBデータベーススペシャリスト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    2相ロック
  2. イ
    時刻印アルゴリズム
  3. ウ
    チェックポイント
  4. エ
    待ちグラフ
解き方のヒントを見る

同時実行とロック競合の見方

複数の処理が同じデータを扱う場面では、ロックの取得順序と保持範囲に注目し、処理が待機・停止・継続する条件を整理して、各選択肢が示す前提と矛盾しないかを確認しましょう。

この問題で問われていること

確認の中心を、競合が起きた瞬間の処理間の関係に絞ります。各処理がどの資源をいつ必要とし、どの状態で次へ進めなくなるのかを、時系列で丁寧に追い、そのうえで説明の整合性を見ます。

視点

ロック競合は、共有資源へのアクセスを調整する仕組みとして、取得対象、保持期間、解放の契機、他処理との待ち関係を切り分けて捉えます。特定の方式や結論ではなく、前提条件の対応関係を確認しましょう。

確認ポイント

  • 競合する処理ごとに、対象資源とアクセスの順序を整理する
  • ロックを保持する期間と、次の処理へ進む条件を区別する
  • 待機や停止が生じる可能性を、各処理の依存関係から検討する
正解と解説を見る

正解

エ

解説

デッドロックは、トランザクション同士が相手の保持する資源の解放を待ち続ける状態です。待ちグラフで待機関係を表し、閉路の有無を調べることで検出できます。

理由

待ちグラフは、トランザクションを頂点、あるトランザクションが別のトランザクションの資源解放を待っている関係を有向辺として表します。グラフ内に閉路があれば、相互待ちによるデッドロックが発生していると判断できます。

比較

2相ロックと時刻印アルゴリズムは主にトランザクションの同時実行順序や整合性を制御する方式です。チェックポイントは障害発生時の復旧処理を効率化するための目印であり、デッドロックの検出手段ではありません。

選択肢ア

これは不正解だよ。2相ロックは、トランザクションがロックを取得する段階と解放する段階を分け、同時実行時の直列化可能性を確保するための制御方式です。デッドロックを検出するために待機関係の閉路を表す仕組みではありません。

選択肢イ

これは不正解だよ。時刻印アルゴリズムは、各トランザクションに付けた時刻印を基準として読み書きの順序を制御し、整合性を保つ方式です。待機関係をグラフ化して、発生中のデッドロックを検出するものではありません。

選択肢ウ

これは不正解だよ。チェックポイントは、データベースの状態を記録しておき、障害発生後にログを利用した回復範囲を小さくするための仕組みです。トランザクション間の待機関係やデッドロックの有無を調べる機能ではありません。

選択肢エ(正解)

これは正解だよ。待ちグラフは、トランザクション間の待機関係を有向グラフで表現します。グラフに閉路が存在すると、各トランザクションが別のトランザクションの処理完了を待ち続ける状態であるため、デッドロックの発生を検出できます。

学習のポイント

デッドロック検出と、同時実行制御・障害回復の機能を区別して覚えましょう。

出典:独立行政法人 情報処理推進機構(IPA)令和7年度秋期 データベーススペシャリスト試験 午前Ⅱ 問17(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針