ホーム > データベーススペシャリスト試験 > 2013年
データベーススペシャリスト試験 2013年 午前2 問10
t₁t₁₀の時刻でスケジュールされたトランザクションT₁T₄がある。時刻t₁₀でT₁がcommitを発行する直前の、トランザクションの待ちグラフを作成した。aに当てはまるトランザクションはどれか。ここで、select(X)は共有ロックを掛けて資源Xを参照することを表し、update(X)は専有ロックを掛けて資源✕を更新することを表す。これらのロックは、commitされた時にアンロックされるものとする。また,トランザクションの待ちグラフの矢印は、Tᵢ→Tⱼとしたとき、Tⱼがロックしている資源のアンロックを、Tᵢが待つことを表す。

ア:
イ:(正解)
ウ:
エ:
解説
問題の整理
待ちグラフ で
Tᵢ → Tⱼ
は Tᵢ が必要なロックを、すでに Tⱼ が保持しているため待たされている ことを示す。
待ちグラフの形(問題文より)
a → b
↑ ↓
d ← c
タイムラインからロック保持状況を追う
1. ロック取得状況
- T₁:S(A), S(C) を保持したまま t₁₀ まで進行
- T₂:S(B) を保持。t₈ で X(C) を取得しようとして T₁ の S(C) に阻まれ待ち
- T₃:S(A) を取得。t₉ で X(A) を取得しようとして T₁ の S(A) に阻まれ待ち
- T₄:t₄ で S(B) を取得。t₅ で X(B) を取得しようとして T₂ の S(B) に阻まれ待ち
2. エッジを作る
逆方向に T₁ → T₂ や T₁ → T₃ のエッジはない
(T₁ はすでにロック済みで待っていない)。
待ちグラフをマッピング
T₃ → T₁
T₂ → T₁
T₄ → T₂
描き替えると
T₁
↑ ↑
T₂ T₃
↑
T₄
これは問題文の図
a
↑ ↑
b c
↑
d
と 同じ構造。
したがって
したがって
正解選択肢
ノード a に当てはまるトランザクションは T₁…ではなく?
待ちグラフ図では 矢印の向きが逆(a が待ち側)になっている点に注意。
図では a から b に矢印= a が b を待つ。
先ほどの解析では T₁ は誰も待たない。
よって a = T₃、b=T₁、c=T₂、d=T₄ と読み替える。
整理すると
結論
ノード a が表すトランザクションは T₃
選択肢では ウ が該当する。