ITパスポート 平成21年秋期 問88

問88

複数の利用者が同時にデータベースを利用する場合に,1人の利用者がデータ更新中に,同一のデータを別の利用者が参照しようとした。このとき,データの整合性を保障するためのデータベース管理システムでの制御として,適切なものはどれか。
  • 更新処理を中断して参照させる。
  • 更新中の最新のデータを参照させる。
  • 更新中の利用者の処理が終了してから参照させる。
  • 更新を破棄して更新前のデータを参照させる。

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

データベースの排他制御に関する問題です。

データベースの更新処理中にデータの読み出しを行うと、更新途中のデータがユーザに渡されてしまい、前後の整合性がとれないばかりか間違ったデータを参考にしてしまう事態が発生します。
このようなことが起こらないようにデータベースを管理するソフトウェア(DBMS…データベース管理システム)が、更新作業のときにはデータベースに占有ロックをかけます。これによって更新作業中は他の更新・読み出しを行えない状態になります。

したがってデータベースの状態を正常に保ちつつ参照読み出しが可能になるのは、更新が確定(コミット)した後です。
  • 更新作業を中断すると、更新途中のデータを参照させてしまうことになり適切ではありません。
  • 更新中のデータは更新前のデータでも更新後のデータでもない不定な状態です。このデータを参照させることは適切ではありません。
  • 正しい。
  • 更新を破棄すると、読み出しがあるたび更新作業が無効になってしまいます。

© 2009-2017 ITパスポート試験ドットコム All Rights Reserved.


Pagetop