DBデータベーススペシャリスト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

トランザクションPが資源Xの値を4から5に更新した後にトランザクションQが開始し,Pがコミットする前にQが資源Xを参照しようとした。Qの挙動のa,bに入る字句の組合せはどれか。ただし,隔離性水準はREAD COMMITTEDとする。
単版2相ロッキングプロトコルとMVCCにおけるQの待機有無及び参照値の組合せ表。
単版2相ロッキングプロトコルとMVCCにおけるQの待機有無及び参照値の組合せ表。

選択肢

  1. ア
    単版:Pのコミット完了まで待機後にX=5/MVCC:待機せずX=4
  2. イ
    単版:Pのコミット完了まで待機後にX=5/MVCC:待機せずX=5
  3. ウ
    単版:待機せずX=4/MVCC:待機せずX=5
  4. エ
    単版:待機せずX=5/MVCC:待機せずX=4
解き方のヒントを見る

未コミット更新の見え方を確認

この設問では、更新処理の途中で別トランザクションが同じ資源を読む場面に注目し、READ COMMITTEDが判断の基準にする状態の境界を整理します。操作順序と確定状態の関係を切り分けてください。

この問題で問われていること

確認の中心は、Pの更新が完了したかではなく、Qが参照を試みた時点でPの変更がどの状態にあるかです。開始・参照・コミットの順序を時系列で整理し、他の隔離性水準の知識を混ぜずに考えます。

視点

READ COMMITTEDという条件から、参照時点のトランザクション状態と、他の処理から観測可能になる境界を確認する視点を持ちます。PとQの操作順序を時系列に並べ、未確定の変更をどう扱うかという論点だけを切り出してください。

確認ポイント

  • Pの更新とコミットの順序を時系列で整理する
  • Qが参照を試みた時点のPの状態を確認する
  • READ COMMITTEDの観測範囲だけに着目する
正解と解説を見る

正解

ア

解説

単版2相ロッキングでは、Pの未コミット更新に対する参照が待機し、コミット後の値を読む。MVCCでは待機せず、コミット済みの旧バージョンを読むため、正しい組合せはアです。

理由

単版2相ロッキングプロトコルでは、PがXを更新した状態で未コミットのため、QはPのコミット完了まで待機する。Pの更新が確定すると、Qは更新後のX=5を取得する。

比較

MVCCでは、QはPの未コミット版を直接読むのではなく、参照可能なコミット済みの旧バージョンを読む。したがって待機せず、Pの更新前のX=4を取得する。この対応に一致するのがアです。

選択肢ア(正解)

これは正解だよ。単版2相ロッキングでは、Pが保持する更新に対してQが待機し、Pのコミット後に更新後のX=5を読む。MVCCでは未コミット版を待たず、直前のコミット済みバージョンであるX=4を読むため、この組合せが条件に合う。

選択肢イ

これは不正解だよ。単版については、Pのコミット完了まで待機した後にX=5を読むので整合する。しかしMVCCはPの未コミット更新を待たずに参照するため、更新後のX=5ではなく、参照可能なコミット済みのX=4を読む。

選択肢ウ

これは不正解だよ。単版2相ロッキングでは、Pの更新中にQが待機せずX=4を読むことはできない。更新対象へのロック競合があるため、QはPのコミット完了を待ち、その後に確定したX=5を参照する。

選択肢エ

これは不正解だよ。単版の記述が逆であり、Qが待機せずにX=5を読むことはできない。Pがコミットするまでは更新が確定していないため、Qはロック解放を待つ。待機後に読む値は確定後のX=5である。

学習のポイント

ロック方式とMVCCにおけるREAD COMMITTEDの読み取り動作を比較する。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度秋期 データベーススペシャリスト試験 午前Ⅱ 問14(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針