問81
頻出度★☆☆
複数の利用者がデータベースの同じレコードを更新するときに, データの整合性を保つために行う制御として, 適切なものはどれか。
この問題の解説と、これまでの解答の記録です。
複数の利用者がデータベースの同じレコードを更新するときに, データの整合性を保つために行う制御として, 適切なものはどれか。
正規化は、データの重複や矛盾を減らすためにテーブルを適切な形(第1〜第3正規形など)に分割するデータベース設計の手法。設計段階の話であり、実行時に複数利用者の同時更新を制御する仕組みではないので誤り。
タイマ監視は、一定時間内に応答や処理が完了したかを時間で見張る仕組み(タイムアウト検出など)。同時更新の競合を防いで整合性を守る制御ではないので誤り。
ロールフォワードは、障害発生時にバックアップと更新後ログ(ジャーナル)を使って処理を再度進め、データを障害直前の状態まで復旧させる障害回復の技法。壊れたデータを直す手段であり、同時更新そのものを制御するものではないので誤り。
正解 正解は「エ ロック/アンロック」。複数の利用者が同じレコードを同時に更新すると、後から書き込んだ更新が先の更新を上書きして消してしまう(ロストアップデート)など、データの整合性が崩れる恐れがある。これを防ぐのが排他制御であり、あるトランザクションがレコードを更新する間はそのレコードにロックをかけて他者の更新を待たせ、処理が終わったらアンロックして解放する。これにより同時更新の競合を防ぎ、データの整合性を保てる。