マナビングITパスポート

データベースの排他制御は何を防ぐ仕組みか

ITパスポート試験 令和元年度秋期 問64 / データベース › トランザクション処理

過去問にチャレンジ

令和元年度秋期 問64

データベース管理システムにおける排他制御の目的として,適切なものはどれか。

  1. ア

    誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。

  2. イ

    データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。

  3. ウ

    データの機密のレベルに応じて,特定の人しかアクセスできないようにする。

  4. エ

    複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。

会話形式の解説

講師講師
この問題では、複数のプログラムが同じデータを扱う場面に注目します。
受験者受験者
「アクセスを制御する」なら、使える人を制限する説明も当てはまりそうです。
講師講師
利用者ごとにアクセスを許可するか決めるのは、アクセス制御です。排他制御では、誰が使えるかではなく、同じデータを扱う処理が重なることを考えます。
受験者受験者
複数の処理が同時に同じデータを扱うと、問題が起こるのですか。
講師講師
はい。処理が競合すると、データに不整合が生じることがあります。排他制御はその競合を調整して、不整合を防ぎます。
受験者受験者
それなら、誤った修正や故意の改ざんを防ぐ説明も近いのでしょうか。
講師講師
それは修正や改ざんを防ぐ話です。同時アクセスによる処理の競合とは、目的が異なります。
受験者受験者
データとプログラムを分けて管理しやすくする説明も、排他制御とは別ですか。
講師講師
はい。それはデータ独立性に関わる説明です。同時アクセスによる不整合を防ぐ目的ではありません。
受験者受験者
正解は、複数のプログラムが同じデータに同時にアクセスしたときの不整合を防ぐ説明ですね。
講師講師
そのとおりです。「アクセス」という言葉だけで判断せず、利用者の許可を決める話か、同時に動く処理を調整する話かを見分けます。

まとめ

排他制御は、複数のプログラムが同じデータを同時に扱う際、処理の競合を調整してデータの不整合を防ぎます。利用者ごとのアクセス許可はアクセス制御、データとプログラムの分離はデータ独立性に関わります。誤った修正や故意の改ざんを防ぐ説明も、排他制御の目的とは異なります。

解答・解説

正解はエです

この問題のテーマ

DBMSの排他制御が、同じデータを扱う処理の競合に対して何を防ぐかを問う問題です。

解き方の考え方

「複数のプログラムが同一のデータを同時に扱う」という場面に着目します。排他制御は処理の競合を調整し、データの不整合を防ぐためのものです。誤操作の防止、データとプログラムの分離、利用者ごとのアクセス許可とは区別します。

選択肢ごとの解説

  1. ×ア  誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。
    アの説明は、誤った修正や故意の改ざんを防ぐことを目的としています。排他制御が扱うのは、同じデータへの同時アクセスによる処理の競合なので、目的が異なります。
  2. ×イ  データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。
    イの説明は、データとプログラムを分離して維持管理を容易にするという内容です。これはデータ独立性に関わり、同時アクセスによる不整合を防ぐ排他制御の説明ではありません。
  3. ×ウ  データの機密のレベルに応じて,特定の人しかアクセスできないようにする。
    ウの説明は、利用者によってデータへのアクセスを許可するかどうかを決めるものです。これはアクセス制御に関わる話で、複数の処理が同じデータを扱う際の競合とは別です。
  4. ○エ  複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。
    エは、複数のプログラムによる同一データへの同時アクセスで、不整合が生じるのを防ぐという説明です。処理の競合を調整する排他制御の目的に合うため、正解です。

補足

「アクセスを制御する」という言葉だけでウを選ばないようにします。誰がデータを使えるかを決める話なのか、同時にデータを扱う処理を調整する話なのかを見分けると解けます。

POINT

  • 排他制御は、同じデータを扱う処理の競合を調整します。
  • 同じデータへの同時アクセスは、データの不整合につながることがあります。
  • 利用者ごとのアクセス許可はアクセス制御、データとプログラムの分離はデータ独立性に関わります。

※出典:令和元年度秋期 ITパスポート試験 問64