トランザクションの同時実行性を高める仕組み|科目A-1 令和7年 秋期午前試験 問29

出典:令和7年秋期 午前 問29 分野:データベース / トランザクション処理
RDBMSにおいて,同じデータ項目の異なる版を用意することによって,トランザクションの同時実行性を高める仕組みはどれか。
  • ア:2相ロッキングプロトコル
  • イ:MVCC
  • ウ:WALプロトコル
  • エ:共有ロック
解説

MVCCは、Multi-Version Concurrency Controlの略で、多版同時実行制御と呼ばれます。同じデータ項目について複数の版を用意し、トランザクションごとに適切な版を参照させることで、同時実行性を高める仕組みです。

例えば、あるトランザクションがデータを更新している間でも、別のトランザクションは更新前の版を参照できます。これにより、読み取り処理が更新処理を待つ必要が減り、ロックによる待ち時間を抑えられます。

RDBMSでは、一貫性を保ちながら読み取りと更新を並行しやすくするために、MVCCが利用されます。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:2相ロッキングプロトコル
⇒2相ロッキングプロトコルは、トランザクションで必要なロックを獲得する段階と、ロックを解放する段階を分けることで、直列可能性を確保する方式です。同じデータ項目の複数の版を用意して同時実行性を高める仕組みではありません。
ウ:WALプロトコル
⇒WALプロトコルは、Write Ahead Loggingの略で、データベースを更新する前にログを先に書き出す方式です。障害発生時の回復に使われる仕組みであり、複数版を使って同時実行性を高めるMVCCとは目的が異なります。
エ:共有ロック
⇒共有ロックは、読み取り時に使われるロックで、複数のトランザクションが同じデータを同時に読むことを許可します。ただし、同じデータ項目の異なる版を用意する仕組みではなく、ロックによってアクセスを制御する方式です。
TSUNAGARU-ADVICE

まず押さえたいこと

MVCCは、同じデータ項目について複数の版を用意し、読み取りと更新ができるだけ互いに妨げ合わないようにする仕組みです。ロックで待たせるだけでなく、トランザクションごとに適切な版を見せることで、同時実行性を高める点が特徴です。

迷ったときの判断軸

2相ロッキングプロトコルや共有ロックは、ロックによって整合性を保つ考え方です。WALプロトコルは、障害回復のためにログを先に書く仕組みです。「異なる版」「複数バージョン」「読み取りと更新の競合を減らす」といった表現が出たら、MVCCを連想しましょう。

科目Bにつなげるために

特にプロフェッショナルデジタルスキル(データ・AI)試験合格を目指す方は、MVCCをデータベースの性能と整合性を両立する仕組みとして理解しておくと有効です。科目Bでは、トランザクション分離レベル・ロック待ち・同時更新・読み取り一貫性の問題につながります。