IPA過去問ドリル

平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問18

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

DBMSの多版同時実行制御(MVCC)に関する記述として,適切なものはどれか。

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

正解:ア

解説

多版同時実行制御(MVCC)は,データの更新時に新しいバージョン(版)を作成して古い版を残しておくことで,参照側のトランザクションがロックを待つことなく,更新がコミットされる前の一貫した版(スナップショット)を参照できるようにする方式です。これにより,先発のトランザクションがデータを更新してコミットする前に,後発のトランザクションが同じデータを参照すると,更新前の(コミット前の)版の値が返されます。

選択肢ごとの解説

  • 正しい。MVCCでは,更新中のデータに対して後発のトランザクションが参照を行うと,コミット前の更新前の版(スナップショット)の値が返されるため,ロックを待たずに一貫した読み取りができます。
  • 誤り。更新前に専有ロック,参照前に共有ロックを掛けてコミットまで保持する方式は,従来のロックベースの2相ロック方式の説明であり,ロックを用いずに版管理で同時実行制御を行うMVCCの説明ではありません。
  • 誤り。専有ロックと共有ロックを使い分けてアンロックのタイミングを制御する方式は,ロックベースの同時実行制御の説明であり,複数の版を保持して読み取りを実現するMVCCの説明ではありません。
  • 誤り。ロックを掛けずにコミット直前に競合の有無を確認してからコミットする方式は,楽観的制御法(楽観的同時実行制御)の説明であり,版を複数保持して参照を実現するMVCCの説明ではありません。
データベーススペシャリストの過去問を演習モードで解く