データベースの排他制御は何を防ぐ仕組みか
ITパスポート試験 令和元年度秋期 問64 / データベース › トランザクション処理
過去問にチャレンジ
データベース管理システムにおける排他制御の目的として,適切なものはどれか。
- ア
誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。
- イ
データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。
- ウ
データの機密のレベルに応じて,特定の人しかアクセスできないようにする。
- エ
複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。
会話形式の解説
講師この問題では、複数のプログラムが同じデータを扱う場面に注目します。
受験者「アクセスを制御する」なら、使える人を制限する説明も当てはまりそうです。
講師利用者ごとにアクセスを許可するか決めるのは、アクセス制御です。排他制御では、誰が使えるかではなく、同じデータを扱う処理が重なることを考えます。
受験者複数の処理が同時に同じデータを扱うと、問題が起こるのですか。
講師はい。処理が競合すると、データに不整合が生じることがあります。排他制御はその競合を調整して、不整合を防ぎます。
受験者それなら、誤った修正や故意の改ざんを防ぐ説明も近いのでしょうか。
講師それは修正や改ざんを防ぐ話です。同時アクセスによる処理の競合とは、目的が異なります。
受験者データとプログラムを分けて管理しやすくする説明も、排他制御とは別ですか。
講師はい。それはデータ独立性に関わる説明です。同時アクセスによる不整合を防ぐ目的ではありません。
受験者正解は、複数のプログラムが同じデータに同時にアクセスしたときの不整合を防ぐ説明ですね。
講師そのとおりです。「アクセス」という言葉だけで判断せず、利用者の許可を決める話か、同時に動く処理を調整する話かを見分けます。
まとめ
排他制御は、複数のプログラムが同じデータを同時に扱う際、処理の競合を調整してデータの不整合を防ぎます。利用者ごとのアクセス許可はアクセス制御、データとプログラムの分離はデータ独立性に関わります。誤った修正や故意の改ざんを防ぐ説明も、排他制御の目的とは異なります。
解答・解説
正解はエです
この問題のテーマ
DBMSの排他制御が、同じデータを扱う処理の競合に対して何を防ぐかを問う問題です。
解き方の考え方
「複数のプログラムが同一のデータを同時に扱う」という場面に着目します。排他制御は処理の競合を調整し、データの不整合を防ぐためのものです。誤操作の防止、データとプログラムの分離、利用者ごとのアクセス許可とは区別します。
選択肢ごとの解説
- ×ア 誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。アの説明は、誤った修正や故意の改ざんを防ぐことを目的としています。排他制御が扱うのは、同じデータへの同時アクセスによる処理の競合なので、目的が異なります。
- ×イ データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。イの説明は、データとプログラムを分離して維持管理を容易にするという内容です。これはデータ独立性に関わり、同時アクセスによる不整合を防ぐ排他制御の説明ではありません。
- ×ウ データの機密のレベルに応じて,特定の人しかアクセスできないようにする。ウの説明は、利用者によってデータへのアクセスを許可するかどうかを決めるものです。これはアクセス制御に関わる話で、複数の処理が同じデータを扱う際の競合とは別です。
- ○エ 複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。エは、複数のプログラムによる同一データへの同時アクセスで、不整合が生じるのを防ぐという説明です。処理の競合を調整する排他制御の目的に合うため、正解です。
補足
「アクセスを制御する」という言葉だけでウを選ばないようにします。誰がデータを使えるかを決める話なのか、同時にデータを扱う処理を調整する話なのかを見分けると解けます。
POINT
- 排他制御は、同じデータを扱う処理の競合を調整します。
- 同じデータへの同時アクセスは、データの不整合につながることがあります。
- 利用者ごとのアクセス許可はアクセス制御、データとプログラムの分離はデータ独立性に関わります。
