過去問解きまくり研究所 ホーム

平成25年度 春期 午前Ⅱ 問10

トランザクション処理

待ちグラフに関する問題

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

〔トランザクションのスケジュール〕

時刻T₁T₂T₃T₄
t₁select (A)−−−
t₂−select (B)−−
t₃−−select (A)−
t₄−−−select (B)
t₅−−−update (B)
t₆select (C)−−−
t₇−select (C)−−
t₈−update (C)−−
t₉−−update (A)−
t₁₀commit−−−

〔トランザクションの待ちグラフ〕:

b → a
a → d
c → d
答えと解説を見る

✓ これが正解イT₂

解説

a は、T₄ に待たれ、自らは T₁ を待っている T₂ です。

待ちグラフは、ロックが衝突した操作ごとに、待つ側から持っている側へ矢印を引いて作ります。スケジュールを順に追います。t₅ で T₄ が B を更新しようとしますが、T₂ が t₂ で B に共有ロックをかけているので T₄→T₂ です。t₈ で T₂ が C を更新しようとしますが、T₁ が t₆ で C に共有ロックをかけているので T₂→T₁ です。t₉ で T₃ が A を更新しようとしますが、T₁ が t₁ で A に共有ロックをかけているので T₃→T₁ です。矢印を二つ受ける d が T₁、d へ向かい、かつ b から矢印を受ける a が T₂、b が T₄、c が T₃ になります。共有ロックどうしは衝突しないので、更新の操作だけを拾えば矢印は漏れません。

ほかの選択肢はなぜ違うのか

この問題の用語

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

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)