平成24年度 春期 午前Ⅱ 問19
トランザクション処理
直列可能性を保証できるもの
二つのトランザクション T1,T2 が,データ a,b に並行してアクセスする。T1,T2 の組合せのうち,直列可能性を保証できるものはどれか。ここで,トランザクションの各操作の意味は次のとおりとする。
LOCK x :データ x をロックする READ x :データ x を読み込む WRITE x :データ x を書き出す UNLOCK x :データ x をアンロックする
選択肢は原典では T1,T2 の欄に操作を上から順に並べた図。各肢は T1,T2 それぞれの操作を上から順に「,」で区切って書いた。
- ア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,UNLOCK b,UNLOCK a
答えと解説を見る
✓ これが正解エ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,UNLOCK b,UNLOCK a
解説
両方のトランザクションが2相ロックを守る組だけが直列可能性を保証します。
直列可能性を保証する代表的な方法が2相ロックで、各トランザクションが、データを読み書きする前にロックを取り、いったんアンロックしたら新たなロックを取らない、という規則を守ります。正解の組では、T1 は a と b を順にロックして読み書きし、b、a の順にアンロックしています。T2 も a と b をロックして読み、そのあとでアンロックしています。どちらもロックを取る段階が終わってから解除だけを行っているので、規則を満たし、並行して実行しても直列に実行した場合と同じ結果になります。各トランザクションについて、READ の前に LOCK があるか、最初の UNLOCK のあとに LOCK が出てこないかを確かめると判定できます。
ほかの選択肢はなぜ違うのか
- アT1:READ a,LOCK a,LOC…:どちらのトランザクションも、a を READ してから LOCK しています。ロックを取る前に読んだ値は、他方の更新と食い違うおそれがあり、更新が失われることもあるので、直列可能性を保証できません。
- イT1:LOCK a,READ a,a =…:どちらも a をアンロックしたあとで b をロックしています。アンロック後に新たなロックを取っているので2相ロックになっておらず、間に他方の処理が入り込むと直列の結果と食い違うことがあります。
- ウT1:LOCK a,READ a,a =…:T2 は規則を守っていますが、T1 が a をアンロックしてから b をロックしています。T1 の a と b の更新の間に T2 が両方を読むと、a は更新後で b は更新前という食い違った値を読むことになります。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問19
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問15:隔離性水準に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)