平成24年 春期 データベーススペシャリスト 午前II 問19

二つのトランザクションT1、T2が、データa、bに並行してアクセスする。
T1、T2の組合せのうち、直列可能性を保証できるものはどれか。
ここで、トランザクションの各操作の意味は次のとおりとする。

 LOCK x : データx をロックする。
 READ x : データx を読み込む。
 WRITE x : データx を書き出す。
 UNLOCK x : データx をアンロックする。

 ア
T1
READ a
LOCK a
LOCK b
a = a + 3

WRITE a
READ b
b = b + 5

WRITE b
UNLOCK a
UNLOCK b
T2
READ a
LOCK a
LOCK b
a = a + 3

WRITE a
READ b
b = b + 5

WRITE b
UNLOCK a
UNLOCK b
 イ
T1
LOCK a
READ a
a = a + 3

WRITE a
UNLOCK a
LOCK b
READ b
b = b + 5

WRITE b
UNLOCK b
T2
LOCK a
READ a
a = a + 3

WRITE a
UNLOCK a
LOCK b
READ b
b = b + 5

WRITE b
UNLOCK b
 ウ
T1
LOCK a
READ a
a = a + 3

WRITE a
UNLOCK a
LOCK b
READ b
b = b + 5

WRITE b
UNLOCK b
T2
LOCK a
READ a
LOCK b
READ b
UNLOCK a
UNLOCK b






 エ
T1
LOCK a
READ a
a = a + 3

WRITE a
LOCK b
READ b
b = b + 5

WRITE b
UNLOCK b
UNLOCK a
T2
LOCK a
READ a
LOCK b
READ b
WRITE b
UNLOCK b
UNLOCK a







答え エ


解説
直列可能な処理は、並行してアクセスするデータに対し、ロックを行ってからアクセスすること、また、ロックしたデータはトランザクションの最後にロックした順と逆の順番でアンロックする必要があるので、この条件を満たすトランザクションの組みはエである。


キーワード
・直列可能性

キーワードの解説
  • 直列可能性
    二つのトランザクションTa、Tbにおいて、この二つのトランザクションを並列実行した結果と、Ta→Tb又はTb→Taの順に実行した結果が等しい時、直列可能といいます。

もっと、「直列可能性」について調べてみよう。

戻る 一覧へ 次へ