令和6年度 秋期 データベーススペシャリスト試験 午前II 問14
【問題14】
トランザクションPが資源Xの値を4から5に更新した後にトランザクションQが開始し、Pがコミットする前にQが資源Xを参照しようとした。Qの挙動のa, bに入れる字句の組み合わせはどれか。ただし、隔離性水準はREAD COMMITTEDとする。
【解説】
単版2相ロッキングプロトコルの場合 (a)
READ COMMITTEDでは、トランザクションPがコミットするまで、他のトランザクションQは更新中のデータを参照することができません。そのため、QはPのコミット完了を待機した後に、更新済みの値(X=5)を得ることになります。
多版同時実行制御(MVCC)の場合 (b)
MVCCでは、過去のコミット済みのデータを参照することで、トランザクションQがPのコミット完了を待機せずに、過去のデータ(X=4)を得ることが可能です。これはMVCCの特徴であるスナップショット隔離性によるものです。
ア: Pのコミットを待機し、値5を得る (a: 正しい)。過去の値4を参照する (b: 正しい)
正しい。これは単版2相ロッキングとMVCC両方の仕様に基づいています。
イ: Pのコミットを待機し、値5を得る (a: 正しい)。Pのコミット後の値5を得る (b: 誤り)
誤り。MVCCでは過去のコミット済みデータを参照するため、bの条件に矛盾があります。
ウ: Pのコミットを待機せず、値4を得る (a: 誤り)。値5を得る (b: 誤り)
誤り。単版2相ロッキングプロトコルではコミットを待機する必要があるため、aが不正確。MVCCでもbが不正確です。
エ: Pのコミットを待機せず、値5を得る (a: 誤り)。過去の値4を得る (b: 正しい)
誤り。単版2相ロッキングでは待機が必要であり、aが不正確です。
【答え】
ア: Pがコミット完了するまで待機した後、Xの値5を得る (a)、Pのコミット完了を待機することなく、Xの値4を得る (b)
出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問14