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

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

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

問題

t₁〜t₁₀の時刻でスケジュールされたトランザクションT₁〜T₄がある。時刻t₁₀でT₁がcommitを発行する直前の,トランザクションの待ちグラフを作成した。aに当てはまるトランザクションはどれか。ここで,select(X)は共有ロックをかけて資源Xを参照することを表し,update(X)は専有ロックをかけて資源Xを更新することを表す。これらのロックは,commitされるまでアンロックされないものとする。また,トランザクションの待ちグラフの矢印は,Tᵢ→Tⱼとしたとき,Tⱼがロックしている資源のアンロックを,Tᵢが待つことを表す。
時刻t1からt10までのトランザクションT1からT4のselect・update・commitのスケジュール表と,ノードaからd及び三本の矢印から成る待ちグラフ。
時刻t1からt10までのトランザクションT1からT4のselect・update・commitのスケジュール表と,ノードaからd及び三本の矢印から成る待ちグラフ。

選択肢

  1. ア
    T₁
  2. イ
    T₂
  3. ウ
    T₃
  4. エ
    T₄
解き方のヒントを見る

ロック競合を読むための一視点

同時実行の設問では、各トランザクションがどの資源にどの種類の操作を行い、処理のどの時点で待ちや競合が生じ得るかを整理することに集中します。時系列と処理の順序を意識して確認します。

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

確認する観点をロック競合の発生条件に絞り、対象資源、操作の種類、取得と解放の順序を時系列で書き出します。個別の選択肢を先に評価せず、観察した事実同士の関係を比較してください。

視点

ロックを考えるときは、処理同士が同じ資源に関わっているか、操作の性質がどのように異なるか、そして処理の進行順序がどうなっているかを分けて整理します。特定の方式や結果を前提にせず、競合が生じる可能性を左右する情報を見落とさないことが大切です。

確認ポイント

  • 各トランザクションが参照または更新する資源を整理する
  • 資源ごとに操作の種類と実行される順序を確認する
  • ロックの取得・保持・解放が時系列上でどう並ぶかを確認する
正解と解説を見る

正解

イ

解説

T1はAとCを共有ロックし、T2はCを専有ロックしようとしてT1を待つ。図ではT2に対応する頂点がaとなるため、該当する選択肢はイです。

理由

T1はt1でA、t6でCを共有ロックする。T2はt7でCを共有ロックするが、t8のupdate(C)では専有ロックが必要になるため、T1が保持するCの共有ロック解放を待つ。この関係がT2からT1への矢印になる。

比較

同様に、T3のupdate(A)はT1のAの共有ロックと競合し、T4のupdate(B)はT2のBの共有ロックと競合する。したがって図の矢印は、T2からT1、T3からT1、T4からT2を表し、頂点aはT2に対応する。

選択肢ア

これは不正解だよ。T1はAとCを共有ロックしている側であり、T2のupdate(C)やT3のupdate(A)から解放を待たれるトランザクションである。したがって、他の頂点から矢印を受ける図中のdに対応し、aには当てはまらない。

選択肢イ(正解)

これは正解だよ。T2はCを共有ロックした後、update(C)で専有ロックを取得しようとする。しかしT1もCを共有ロックしたままなので、T2からT1への待ちが発生する。図ではこのT2に対応する頂点がaである。

選択肢ウ

これは不正解だよ。T3はAを共有ロックした後、update(A)で専有ロックを取得しようとするため、T1が保持するAの共有ロック解放を待つ。これはT3からT1への矢印に対応し、図中ではaではなく別の頂点になる。

選択肢エ

これは不正解だよ。T4はBを共有ロックした後、update(B)で専有ロックを取得しようとする。その時点でT2がBを共有ロックしているため、T4からT2への待ちが発生する。この位置は図のaではなく、T2へ矢印を出す頂点に対応する。

学習のポイント

共有ロックと専有ロックの競合から待ちグラフを作る方法

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

関連する過去問一覧

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