SkillStack
テクノロジ系16 / 25問

データベーススペシャリスト試験 令和3年度 秋期 午前II 問16

多版同時実行制御(MVCC)の特徴のうち、適切なものはどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

MVCC(Multi-Version Concurrency Control、多版同時実行制御)は、一つのデータについて更新前と更新後の複数の版を保持し、トランザクションごとに適切な版を見せる方式です。書込みでは既存の版を直接上書きせず、新しい版を生成します。このため、更新中のデータを別のトランザクションが読む場合でも、更新の完了を待たずに、更新前のコミット済みの版を参照できます。例えば、値100を120へ更新している途中でも、同時に動く読取り処理は旧版の100を読めるので、読取りと書込みの間の待ちを減らせます。したがって、ウが適切です。

アの、明示的なロックをかけられないという説明は誤りです。MVCCはロック自体を禁止する方式ではなく、DBMSによってはSELECT FOR UPDATEなどで明示的にロックできます。

イの、版をアプリケーションが指定するという説明は誤りです。参照可能な版は、トランザクションの開始時点や隔離性水準などに基づき、DBMSが自動的に選択します。

エの、デッドロックが発生しないという説明は誤りです。読取りと書込みの競合は減りますが、同じデータへの複数の書込みや複数資源のロック取得では、デッドロックが発生する可能性があります。

【ポイント】 MVCCの要点は、「書込み時に新版を作り、読取りには適切な旧版を見せる」ことです。 「読取りは書込みを待ちにくい」と覚えますが、書込み同士の競合までなくなるわけではありません。 スナップショット、可視性、隔離性水準との関係も併せて整理してください。

出典:令和3年度 秋期 データベーススペシャリスト試験 午前II 問16
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める