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

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

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

問題

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

選択肢

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

競合整理の観点を一つに絞る

同時実行のロック問題では、各処理がどの資源をどの順序で扱い、互いの待ちや影響がどこで生じるかを時系列に沿って整理する視点を身につけましょう。観測できる事実と推測も分けて確認します。

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

確認の中心は、複数トランザクションの資源利用を同じ時間軸へ並べ、どの時点で競合が生じ得るかという一点です。個々の操作の目的より、処理同士の関係に注目しましょう。

視点

トランザクションごとの資源への関与を時系列で整理し、同じ対象に関係する処理同士の影響を切り分けて考えます。

確認ポイント

  • 各トランザクションが参照・更新する対象を区別して書き出す
  • 操作の発生順と、処理間の関係が変化する箇所を時系列で確認する
  • 同じ対象への関与と、別対象への関与を混同せずに整理する
正解と解説を見る

正解

エ

解説

DBMSのデッドロック検出には、トランザクション間の待機関係を頂点と辺で表し、循環を検出する待ちグラフを用いる。

理由

デッドロックは、複数のトランザクションが互いに相手の解放を待ち続ける状態です。待っている対象を関係として表現すれば、その関係の循環からデッドロックを検出できる。

比較

待ちグラフでは、トランザクションを頂点、あるトランザクションが別のトランザクションの処理資源解放を待つ関係を有向辺として表す。循環の有無を調べることで、デッドロックを検出できる。

選択肢ア

これは不正解だよ。資源割当表は、どの資源がどのトランザクションに割り当てられているかを管理するための表である。資源の保有状況は把握できるが、トランザクション間の待機関係の循環を直接検出するデータ構造ではない。

選択肢イ

これは不正解だよ。時刻印順管理表は、トランザクションに付与した時刻印などを用いて処理順序や競合時の優先関係を管理するものである。互いに待ち合う関係を循環として表し、デッドロックを検出する目的の構造ではない。

選択肢ウ

これは不正解だよ。トランザクションの優先順管理表は、処理を進める順序や競合時の優先度を管理するためのものである。トランザクション間の待機関係を辺として表し、その循環を検出するデータ構造には当たらない。

選択肢エ(正解)

これは正解だよ。待ちグラフは、トランザクションを頂点として、あるトランザクションが別のトランザクションの処理完了や資源解放を待つ関係を有向辺で表す。グラフに循環があるかを調べることで、デッドロックを検出できる。

学習のポイント

待機関係の循環と、検出に適したデータ構造の対応を理解する。

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

関連する過去問一覧

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