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

問10

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

〔トランザクションのスケジュール〕
10_1.png/image-size:444×295
〔トランザクションの待ちグラフ〕
10_2.png/image-size:224×93
  • T1
  • T2
  • T3
  • T4
  • [出題歴]
  • データベース H25春期 問10

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

共有・専有の2種類のロックの違いを確認しておきましょう。
共有ロック
データを読込むときに使うロックで、資源がこの状態の場合は他のトランザクションによる更新処理ができなくなる(読込みは可能)
専有ロック
データを更新するときに使うロックで、資源がこの状態の場合は他のトランザクションによる読込みや更新ができなくなる
上記の性質から、ある資源に共有または専有ロックがかけれられている場合、新たなロック獲得の可否は次の表のとおりになります。
10_3.png/image-size:272×136
[t1] T1がAを共有ロックする。
10_4.png/image-size:49×139
[t2] T2がBを共有ロックする。
10_5.png/image-size:142×139
[t3] T3がAの共有ロックを試みる。Aは共有ロック状態なのでロックは成功する。
10_6.png/image-size:231×139
[t4] T4がBの共有ロックを試みる。Bは共有ロック状態なのでロックは成功する。
10_7.png/image-size:318×139
[t5] T4がBの専有ロックを試みる。Bは共有ロック状態なのでT2のロック解除待ちとなる。
10_8.png/image-size:318×180
[t6] T1がCを共有ロックする。
10_9.png/image-size:318×228
[t7] T2がCの共有ロックを試みる。Cは共有ロック状態なのでロックは成功する。
10_10.png/image-size:318×228
[t8] T2がCの専有ロックを試みる。Cは共有ロック状態なのでT1のロック解除待ちとなる。
10_11.png/image-size:318×228
[t9] T3がAの専有ロックを試みる。Aは共有ロック状態なのでT1のロック解除待ちとなる。
10_12.png/image-size:318×228
設問の待ちグラフと形は異なりますが、aに入るトランザクションは、T1がCをアンロックするのを待ち、かつ、T4にBのアンロックを待たれているので、上図より「T2」が当てはまります。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop