DBデータベーススペシャリスト試験 午前Ⅱ
令和3年度秋期 データベーススペシャリスト 午前Ⅱ 問16
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アアプリケーションプログラムからデータに対する明示的なロックをかけることができない。
- イデータアクセスの対象となる版をアプリケーションプログラムが指定する必要がある。
- ウデータ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
- エデッドロックは発生しない。
解き方のヒントを見る
MVCCの特徴を見分ける視点
MVCCは、同じデータに複数の処理が関わる場面で、読み取りと更新の関係をどう扱うかを見る仕組みです。個々の文言だけでなく、時点・版・競合への着目点を整理しましょう。
この問題で問われていること
確認の中心は、処理がデータを参照・変更するとき、どの時点の内容を基準にし、他の処理との干渉をどのように捉える説明かという点です。用語の印象だけで判断せず、説明の対象を見極めてください。
視点
複数の版を扱うデータベース制御について、読み取り、更新、処理間の関係がどのように説明されているかを概念的に整理しましょう。
確認ポイント
- 読み取り時点に関する説明か確認する
- 更新処理との関係に注目する
- 処理間の干渉をどう扱う説明か確認する
正解と解説を見る
正解
ウ
解説
MVCCはデータの更新時に新しい版を作成し、読取り処理が更新処理の完了を待つ場面を減らす。同時実行性を高める仕組みです。
理由
MVCCでは、データを書き込む際に新しい版を生成し、読取り側は必要な版を参照する。このため、読取りと書込みが同時に行われる場合でも、従来の排他制御だけに依存する場合と比べて、読取り処理が書込み完了まで待たされる状況を回避しやすい。
比較
MVCCはアプリケーションによる明示的ロックを禁止する仕組みではなく、版の指定を常にアプリケーションへ要求するものでもない。また、ロックを使う処理やトランザクションの組合せによっては、デッドロックが発生する可能性もある。
選択肢ア
これは不正解だよ。MVCCは、アプリケーションプログラムから明示的なロックをかけること自体を禁止する仕組みではない。版を利用した同時実行制御を行っていても、必要に応じてロックを指定できる構成はあり、この記述のように一律に「できない」とする点が誤りである。
選択肢イ
これは不正解だよ。データアクセスの対象となる版は、通常、トランザクションの時点や分離レベルなどに基づいてデータベース管理システムが選択する。アプリケーションプログラムが常に対象の版を指定しなければならない、というMVCCの特徴ではない。
選択肢ウ(正解)
これは正解だよ。MVCCでは、データの書込みに伴って新しい版を生成する。読取り側は参照可能な版を読み取れるため、書込み処理と読取り処理が同時に実行される場合でも、排他制御によって読取りが待たされる状況を避けやすい。この説明はMVCCの代表的な特徴に合致する。
選択肢エ
これは不正解だよ。MVCCを採用していても、すべての排他制御やロックがなくなるわけではない。更新処理などでロックを使用する場合があり、複数のトランザクションが互いの資源解放を待つ組合せになれば、デッドロックが発生する可能性があるためである。
学習のポイント
MVCCにおける版の生成と読取り・書込みの競合回避を理解する。
出典:独立行政法人 情報処理推進機構(IPA)令和3年度秋期 データベーススペシャリスト試験 午前Ⅱ 問16(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針