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

平成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: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 が出てこないかを確かめると判定できます。

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

この問題の用語

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

同じ用語が出る問題

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