平成25年春期試験問題 午前Ⅱ 問10

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

〔トランザクションのスケジュール〕
10_1.png
〔トランザクションの待ちグラフ〕
10_2.png

  • T1
  • T2
  • T3
  • T4
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
共有・専有の2種類のロックの違いを確認しておきましょう。
共有ロック
データを読込むときに使うロックで、資源がこの状態の場合は他のトランザクションによる更新処理ができなくなる(読込みは可能)
専有ロック
データを更新するときに使うロックで、資源がこの状態の場合は他のトランザクションによる読込みや更新ができなくなる
上記の性質から、ある資源に共有または専有ロックがかけれられているときの新たなロックの可否は次の表の通りになります。
10_3.png
[t1] T1がAを共有ロックする。
10_4.png
[t2] T2がBを共有ロックする。
10_5.png
[t3] T3がAの共有ロックを試みる。Aは共有ロック状態なのでロックは成功する。
10_6.png
[t4] T4がBの共有ロックを試みる。Bは共有ロック状態なのでロックは成功する。
10_7.png
[t5] T4がBの専有ロックを試みる。Bは共有ロック状態なのでT2のロック解除待ちとなる。
10_8.png
[t6] T1がCを共有ロックする。
10_9.png
[t7] T2がCの共有ロックを試みる。Cは共有ロック状態なのでロックは成功する。
10_10.png
[t8] T2がCの専有ロックを試みる。Cは共有ロック状態なのでT1のロック解除待ちとなる。
10_11.png
[t9] T3がAの専有ロックを試みる。Aは共有ロック状態なのでT1のロック解除待ちとなる。
10_12.png
設問の待ちグラフと形は異なりますが、aに入るトランザクションは、T1がCをアンロックするのを待ち、かつ、T4にBのアンロックを待たれているので、上図より「T2」が当てはまります。

この問題の出題歴


Pagetop