IPA過去問ドリル

令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問14

テクノロジ/データベース

トランザクション P が資源 X の値を 4 から 5 に更新した後にトランザクション Q が開始し,P がコミットする前に Q が資源 X を参照しようとした。Q の挙動の a,b に入れる字句の組合せはどれか。ただし,隔離性水準は READ COMMITTED とする。 〔Q の挙動〕 同時実行制御が単版 2 相ロッキングプロトコルの場合 Q は[ a ],多版同時実行制御(MVCC)の場合 Q は[ b ]。 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問14

正解:ア

解説

単版 2 相ロッキングプロトコルでは,P が X に対する更新ロックを保持している間,Q は X を読むために P のコミット(ロック解放)を待たされ,コミット後の最新値である 5 を読み取ります。一方,多版同時実行制御(MVCC)では,読取り時にロックを取得せず,読取り時点で確定していた版(P の更新前,つまりコミット前)のデータを参照するため,Q は P のコミットを待つことなく,更新前の値である 4 を読み取ります。

選択肢ごとの解説

  • 正しい。単版 2 相ロッキングでは P のコミットを待って最新値 5 を得て,MVCC では P のコミットを待たず更新前の値 4 を得ます。
  • 誤り。MVCC では P のコミットを待たずに読み取るため,コミット後の値である 5 を得ることはできません。読み取れるのは更新前の値 4 です。
  • 誤り。単版 2 相ロッキングでは,P が X の排他ロックを保持している間 Q は読取りができず,P のコミットを待たずに値を得ることはできません。
  • 誤り。単版 2 相ロッキングでは P のコミットを待って値 5 を得ますが,MVCC ではコミット前の値である 4 を得るのであって 5 ではありません。
データベーススペシャリストの過去問を演習モードで解く