正答2
解説
正解は2です。
トランザクションの同時実行制御の方式を問う問題です。
同じデータ項目について複数の版(バージョン)を保持し、読取りと書込みが互いを待たないようにする方式がMVCCです。
【選択肢別解説】
1:× 2相ロッキングプロトコルは、ロックを獲得する段階と解放する段階を分けることで、直列化可能性を保証する方式です。
データの版を複数用意するものではありません。
2:○ MVCC(Multi-Version Concurrency Control:多版同時実行制御)は、更新時に新しい版を作り、読取り側には古い版を見せます。
読取りが書込みを待たなくてよいので、同時実行性が高まります。
3:× WAL(Write Ahead Logging)プロトコルは、データベースを更新する前に更新内容をログに書き出す規則です。
障害回復のための仕組みで、同時実行性を高めるものではありません。
4:× 共有ロックは、複数のトランザクションが同時に読み取ることを許し、書込みを禁止するロックです。
版を用意する仕組みではありません。
【ポイント】
MVCCは多くの商用・オープンソースのRDBMS(関係データベース管理システム)で採用されています。
「複数の版」「読取りが書込みをブロックしない」がキーワードです。