令和7年秋期試験問題 午前問29
問29解説へ
RDBMSにおいて,同じデータ項目の異なる版を用意することによって,トランザクションの同時実行性を高める仕組みはどれか。
- 2相ロッキングプロトコル
- MVCC
- WALプロトコル
- 共有ロック
正解 イ問題へ
広告
解説
多版同時実行制御(MVCC:MultiVersion Concurrency Control)は、トランザクションからの読書き要求に対して、トランザクション開始時点における同じデータのスナップショット(版、version)を提供するというアプローチにより、トランザクションの同時実行制御を行う仕組みです。
単版の2相ロックでは、専有ロック中のデータに対する参照はできず、共有ロック中のデータに対する更新はできません。この際、ロックの解除を待たなければならないことがトランザクションの同時実行における制約となっています。
多版同時実行制御では、各トランザクションが開始した時点におけるデータ項目の内容を「版」として保持しておき、並列実行されるトランザクションに対してこの「版」を提供します。これにより、読込みのロックと書込みのロックが競合することがなくなり、トランザクションの一貫性を保ったまま同時実行性を向上させます。
したがって「イ」が正解です。
単版の2相ロックでは、専有ロック中のデータに対する参照はできず、共有ロック中のデータに対する更新はできません。この際、ロックの解除を待たなければならないことがトランザクションの同時実行における制約となっています。
多版同時実行制御では、各トランザクションが開始した時点におけるデータ項目の内容を「版」として保持しておき、並列実行されるトランザクションに対してこの「版」を提供します。これにより、読込みのロックと書込みのロックが競合することがなくなり、トランザクションの一貫性を保ったまま同時実行性を向上させます。
したがって「イ」が正解です。
- 2相ロッキングプロトコルは、ロックを取得する段階(成長相)と解除する段階(縮退相)の2つのフェーズを明確に区別したロック方式です。トランザクションで読書きが必要となるたびに都度ロックをかけていき、全てのロックを取得した後にまとめて解除する、というルールでロックの取得と解除を行います。
- 正しい。MVCCは、読取り要求に対して直近の確定済みデータの「版」を提供することで、トランザクションの同時実効性を向上させる仕組みです。
- WALプロトコルは、"Write Ahead Log(まずログを書け)"という意味のとおり、実際の操作に先行してログの即時書き出しを求める取り決めです。WALプロトコルの動作は次の2点に要約されます。
- データベースの更新は、まずそれをログを書き出してから行う(更新前ログ)
- トランザクションはコミットを行う前に、該当する全てのデータベース更新情報をログを書き出す(更新後ログ)
- 共有ロックは、データへの書込みは禁止されますが、複数のトランザクションからの同時読取りは許可するロックです。
広告