データベース|平成21年度 秋期 ITパスポート試験 問88
複数の利用者が同時にデータベースを利用する場合に,1 人の利用者がデータ更新中に,同一のデータを別の利用者が参照しようとした。このとき,データの整合性を保障するためのデータベース管理システムでの制御として,適切なものはどれか。
- 更新処理を中断して参照させる。
- 更新中の最新のデータを参照させる。
- ✓ これが正解更新中の利用者の処理が終了してから参照させる。
- 更新を破棄して更新前のデータを参照させる。
解説
直している最中は、終わるまで待たせるのが筋になります。
同じ中身を複数の人が同時に扱うと、食い違いが生じます。一方が書き換えている途中を、もう一方が読むとどうなるか。直しかけの半端な値を読むことになってしまいます。それでは、正しい状態を読んだことになりません。そこで、直している最中は他から触れないよう鍵を掛けます。読みたい側は、終わるまで待つことになりました。更新の処理が終わってから参照させると述べた肢が当たります。待たされはしますが、読めるのは必ず正しい状態です。この仕組みを排他制御と呼び、整合性を保つ土台になります。直している側を止めてしまうと、その人の仕事が失われました。直しを捨てて古い値を見せる形も、同じく失われます。半端な値をそのまま見せるのは、いちばん危うい形でした。シラバスも、関係データベースへの操作を学ぶよう求めています。
ほかの選択肢はなぜ違うのか
- 更新を中断して読ませると述べた肢のほうです。待たせないという点では、確かに親切に見えます。ところが中断された側の仕事は、そこで失われました。直しかけの状態が残る恐れも在ります。整合性を保つどころか、崩す形でした。
- 直している最中の値をそのまま見せる肢というのが、こちらです。最新という言葉が、いかにも良さそうに響きます。けれども直しかけの値は、まだ確定していません。取り消される見込みも残っていました。読んだ値が後から消える恐れが在ります。
- 更新を捨てて前の値を見せると述べた肢が、こちらです。読む側は、確かに正しい値を得られます。ところが直していた側の仕事が、丸ごと消えました。読むために書くのを捨てるのは、順序が逆です。待たせるほうが、はるかに損が小さくなります。
この問題に関係する言葉
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
出典:平成21年度 秋期 ITパスポート試験 問88
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)