平成31年春期試験問題 午前問45

トランザクションT1が更新中のデータを,トランザクションT2が参照しようとしたとき,更新と参照の処理結果を矛盾させないようにするためのDBMSの機能はどれか。

  • 最適化
  • 参照制約
  • 排他制御
  • 副問合せ
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
排他制御は、複数のプロセスからアクセスできる共有資源(データやファイル)に対して、同時アクセスによる不整合の発生を防ぐため、一方のプロセスが処理中の場合、他方のプロセスが利用できないようアクセスを制限し、処理を制限する仕組みです。データベースにおいては、複数のトランザクションがデータベースを同時に参照・更新する際に、データの整合性が損なわれないようにするために使われます。

例えば、あるプロセスがデータベースを更新している最中に、他のプロセスがそのデータの読出しを行うと、更新途中のデータが読み込まれてしまい、前後の整合性がとれないばかりか間違ったデータを参照してしまう事態が生じます。このようなことが起こらないように、更新作業が行われる際は、DBMSが更新対象のデータにロックをかけます。これによって、更新作業中に他のプロセスから対象のデータの更新・読出しを行えない状態になり、安全なデータ更新が行えるようになります。
  • DBMSに備わっている機能で、問合せ文を効率よく処理できるようにする内部的な最適化や、データを適切に再配置することでデータベースのアクセス効率を回復させる処理などがあります。
  • 参照制約は、外部キーを持つ表にレコードを追加する場合に、その外部キー列の値は参照先の表の主キーとして存在するものでなければならない、また、別表から主キーの値を参照されている行は削除することができないという制限を課す制約です。参照制約は、表間の整合性を確保するために設定されます。
  • 正しい。排他制御は、複数のプロセスからアクセスできる共有資源(データやファイル)に対して、同時アクセスによる不整合の発生を防ぐため、一方のプロセスが処理中の場合、他方のプロセスが利用できないようアクセスを制限し、処理を制限する仕組みです。
  • 副問合せは、データベースへの問合せ文の中に、別の問合せ文を入れ子のように指定することです。サブクエリとも呼ばれます。

Pagetop