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

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

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

問題

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

選択肢

  1. ア
    資源割当表
  2. イ
    時刻印順管理表
  3. ウ
    トランザクションの優先順管理表
  4. エ
    待ちグラフ
解き方のヒントを見る

ロック競合を整理する一つの視点

同時実行の問題では、まず各トランザクションがどのデータ資源にどの操作を行うかを整理し、操作の重なりと待ちの関係を落ち着いて確認することに集中することが手がかりになります。

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

確認する観点を、競合する可能性のあるデータ資源と、その資源に対する各操作の順序の対応に絞ります。処理全体を一度に判断せず、資源ごとに関係を見比べて整理します。

視点

データ資源、操作、順序という三つの要素を分けて見ると、同時実行による影響を整理しやすくなります。特定の手順を暗記するより、どの関係を比較しているかを明確にすることが大切です。

確認ポイント

  • 対象となるデータ資源を識別できているか
  • 各トランザクションの操作を時系列で書き出せているか
  • 同じ資源に関係する操作だけを対応づけて見ているか
正解と解説を見る

正解

エ

解説

DBMSのデッドロック検出には、トランザクションが他のトランザクションの資源解放を待つ関係を表す待ちグラフを用いる。待機関係に循環があれば、デッドロックの発生を検出できる。

理由

待ちグラフは、トランザクションを頂点、あるトランザクションが別のトランザクションの処理や資源解放を待っている関係を有向辺で表す。待機関係が循環すると、互いに進行できないデッドロックとして検出できる。

比較

資源割当表は資源の割当状況を、時刻印順管理表は時刻印に基づく処理順序を、トランザクションの優先順管理表は優先順位を扱う名称です。これらは待機関係の循環を直接表す構造ではありません。

選択肢ア

これは不正解だよ。資源割当表は、どの資源がどのトランザクションに割り当てられているかを管理するための表として考えられる。資源の保有状況を確認する情報ではあるが、デッドロック検出に必要なトランザクション間の待機関係を直接表すデータ構造ではない。

選択肢イ

これは不正解だよ。時刻印順管理表は、トランザクションに付けた時刻印を基準に処理順序や競合時の扱いを管理するものと考えられる。時刻の大小による順序管理が目的であり、相互に待機する関係の循環を検出する構造ではない。

選択肢ウ

これは不正解だよ。トランザクションの優先順管理表は、処理を進める際の優先順位を管理するためのものと考えられる。優先順位を決める情報と、ある処理が別の処理を待つ関係を表す情報は異なるため、デッドロック検出用の構造には該当しない。

選択肢エ(正解)

これは正解だよ。待ちグラフは、トランザクション間の待機関係を有向グラフで表すデータ構造である。あるトランザクションが別のトランザクションを待つ関係をたどり、グラフに循環が存在するかを調べることで、デッドロックを検出できる。

学習のポイント

資源そのものの管理表と、トランザクション間の待機関係を表す構造を区別して覚える。

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

関連する過去問一覧

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