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

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

トランザクション処理

共有ロックに関する問題

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

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

時刻T1T2T3T4
t1select (A)―――
t2―select (B)――
t3――select (A)―
t4―――select (B)
t5―――update (B)
t6select (C)―――
t7―select (C)――
t8―update (C)――
t9――update (A)―
t10commit―――

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

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

✓ これが正解イT2

解説

T4から待たれ、自分はT1を待つ位置にあるのはT2です。

スケジュールを順に追い、誰が誰のアンロックを待つかを洗い出します。t5でT4がBを更新しようとしますが、Bにはt2でT2が共有ロックを掛けているので、T4はT2を待ちます(T4→T2)。t7のT2によるCの参照は共有ロックどうしなので待ちませんが、t8でT2がCを更新しようとすると、t6でT1が掛けたCの共有ロックがあるので、T2はT1を待ちます(T2→T1)。t9でT3がAを更新しようとすると、t1でT1が掛けたAの共有ロックがあるので、T3はT1を待ちます(T3→T1)。待ちグラフはT4→T2、T2→T1、T3→T1となり、二本の矢印を受けるdがT1、dへ向かいつつbから矢印を受けるaがT2です。矢印を受ける数と出す数で、ノードを一つずつ特定していくのが手順です。

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

この問題の用語

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

同じ用語が出る問題

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