データベース|令和元年度 秋期 ITパスポート試験(特別措置試験) 問64
データベース管理システムにおける排他制御の目的として,適切なものはどれか。
- 誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。
- データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。
- データの機密のレベルに応じて,特定の人しかアクセスできないようにする。
- ✓ これが正解複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。
解説
同時に触られたときに、データの食い違いを防ぐための働きです。
排他制御は、複数のプログラムが同じデータへ同時に触ろうとしたときに、食い違いが起きないようにする働きです。たとえば、残りの数を読み取って一つ減らす処理が二つ同時に走ると、どちらも同じ値を読んでしまい、結果として一つ分しか減らないことが起こりえます。そこで、先に触ったほうが鍵をかけ、後から来たほうは終わるまで待つ形にします。一つのまとまりとして扱うトランザクションの単位で鍵をかけるので、途中の半端な状態が他から見えることもありません。ただし、互いに相手の鍵を待ち合って進めなくなるデッドロックには別の備えが要ります。データベース管理システムが、この仕組みを受け持ちます。待たせる範囲を広く取るほど安全ですが、その分だけ処理は遅くなります。よって最も適切なのは、データの不整合が生じないようにすることです。
ほかの選択肢はなぜ違うのか
- 誤って直したり故意に書き換えられたりしないようにするのは、誰に何を許すかを定める働きや、元に戻せるようにしておく働きが受け持ちます。同時に触られたときの食い違いを防ぐ働きとは、想定している場面が違います。一人でも起きます。
- データとプログラムを独立させて維持管理を楽にするのは、データの独立性です。作りを変えても影響が及ばないようにする話であり、同時に動いたときの整合を保つ話ではありません。作りやすさのための考え方で、時間の重なりを扱いません。
- 機密の度合いに応じて特定の人しか触れないようにするのは、権限の設定です。誰に見せるかを決める話なので、許された者どうしが同時に触ったときの食い違いは、これでは防げません。誰を入れるかの話で、順番を待たせる話ではありません。
この問題に関係する言葉
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- データベース管理システム
- デッドロック
出典:令和元年度 秋期 ITパスポート試験(特別措置試験) 問64
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)