問題本文
複数の利用者が同時にデータベースを利用する場合に,1人の利用者がデータ更新中に,同一のデータを別の利用者が参照しようとした。このとき,データの整合性を保障するためのデータベース管理システムでの制御として,適切なものはどれか。
選択肢
- ア.更新処理を中断して参照させる。
- イ.更新中の最新のデータを参照させる。
- ウ.更新中の利用者の処理が終了してから参照させる。
- エ.更新を破棄して更新前のデータを参照させる。
正解
ウ. 更新中の利用者の処理が終了してから参照させる。
解説
データベースの排他制御では,更新中のデータに対してロックを掛けて他者の参照や更新を待たせる.更新者がコミット (確定) またはロールバック (取消) を完了するまで他者の参照を待たせることでデータの整合性を保つ.ACID特性のうち隔離性 (Isolation) を実現する仕組み.更新途中のデータを参照させると,ロールバック時にダーティリードが生じるため不適切となる手法.覚え方や類似用語の区別を整理しておくと,本試験で
選択肢ごとの解説
- ア.更新処理を中断するのは整合性を損なう恐れがあり不適切となる.更新者の意図に反する処理で,データ不整合の原因となり,排他制御の目的に反するアプローチであるため正解ではない.覚え方や類似用語の区別を整理しておくと,
- イ.更新中 (コミット前) の最新データを参照させるとダーティリード (ロールバックされる可能性のあるデータを読む) となり,整合性を損なう.トランザクション分離レベルで防ぐべき現象.覚え方や類似用語の区別を整理し
- ウ.正解.更新処理が終了 (コミットまたはロールバック完了) してから参照させることでデータの整合性が保障される.排他制御の標準的な動作で,ロックによる待機制御が基本.覚え方や類似用語の区別を整理しておくと,本試験
- エ.更新を勝手に破棄するのは不適切で,更新者の意図を無視することになる.参照者のために他者の作業を取り消すのは設計として誤りで,データベース管理の基本原則に反する.覚え方や類似用語の区別を整理しておくと,本試験での
ITパスポート 2009年 (平成21年 秋期) の過去問一覧へ戻る・問88