トランザクション処理 (全26問中23問目)
No.23
複数の利用者が同時にデータベースを利用する場合に,1人の利用者がデータ更新中に,同一のデータを別の利用者が参照しようとした。このとき,データの整合性を保障するためのデータベース管理システムでの制御として,適切なものはどれか。
出典:平成21年秋期 問88
- 更新処理を中断して参照させる。
- 更新中の最新のデータを参照させる。
- 更新中の利用者の処理が終了してから参照させる。
- 更新を破棄して更新前のデータを参照させる。
分類
テクノロジ系 » データベース » トランザクション処理
正解
ウ
解説
あるプロセスがデータベースを更新している最中に、他のプロセスがそのデータの読出しを行うと、更新途中のデータが読み込まれてしまい、前後の整合性がとれないばかりか間違ったデータを参照してしまう不具合が生じます。
このようなことが起こらないように、更新作業が行われる際は、データベースを管理するソフトウェア(DBMS…データベース管理システム)が、更新対象のデータにロックをかけます。これによって、更新作業中に他のプロセスから対象のデータの更新・読出しを行えない状態になります。更新作業が完了すればロックが解除され、他のプロセスからの読み書きが可能になります。この仕組みを排他制御といい、データベースの更新時異常を防いで整合性を保っています。
したがってデータベースの状態を正常に保ちつつ参照読み出しが可能になるのは、更新が確定(コミット)した後です。
このようなことが起こらないように、更新作業が行われる際は、データベースを管理するソフトウェア(DBMS…データベース管理システム)が、更新対象のデータにロックをかけます。これによって、更新作業中に他のプロセスから対象のデータの更新・読出しを行えない状態になります。更新作業が完了すればロックが解除され、他のプロセスからの読み書きが可能になります。この仕組みを排他制御といい、データベースの更新時異常を防いで整合性を保っています。
したがってデータベースの状態を正常に保ちつつ参照読み出しが可能になるのは、更新が確定(コミット)した後です。
- 更新作業を中断すると、更新途中のデータを参照させてしまうことになり適切ではありません。
- 更新中のデータは更新前のデータでも更新後のデータでもない不定な状態です。このデータを参照させることは適切ではありません。
- 正しい。
- 更新を破棄すると、読み出しがあるたび更新作業が無効になってしまいます。