令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問16
テクノロジ/データベース多版同時実行制御(MVCC)の特徴のうち,適切なものはどれか。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問16
- アアプリケーションプログラムからデータに対する明示的なロックをかけることができない。
- イデータアクセスの対象となる版をアプリケーションプログラムが指定する必要がある。
- ウデータ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
- エデッドロックは発生しない。
正解:ウ
解説
MVCC(多版同時実行制御)は,データの更新時に元のデータを上書きせず新しい版(バージョン)を生成して保持する方式です。これによって,書込みトランザクションが新しい版を作成している間も,読取りトランザクションは更新前の版を参照し続けることができ,読取りと書込みが互いにロック待ちをすることなく並行して実行できます。
選択肢ごとの解説
- ア誤り。MVCCを用いていても,アプリケーションが明示的にロック(SELECT FOR UPDATEなど)を掛けることは可能です。
- イ誤り。MVCCでは,通常はトランザクションの開始時点などに応じてDBMS側が参照すべき版を自動的に決定するため,アプリケーションプログラムが版を明示的に指定する必要はありません。
- ウ正しい。MVCCはデータ書込み時に新しい版を生成して保持することで,同時に行われるデータ読取りが更新の完了を待つ排他制御による待ちを回避できる方式です。
- エ誤り。MVCCは読取りと書込みの間の競合を緩和する仕組みですが,複数の書込みトランザクション間の競合によるデッドロックまで完全になくすものではありません。