ITパスポート過去問 令和1年度(2019年)問64
データベース管理システムにおける排他制御の目的として,適切なものはどれか。
選択肢
- ア:誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。
- イ:データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。
- ウ:データの機密のレベルに応じて,特定の人しかアクセスできないようにする。
- エ:複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
排他制御は、複数のプログラム(トランザクション)が同一データを同時に読み書きするときに、更新の上書きや矛盾した読み取りが起きないように制御し、データの不整合を防ぐ仕組みです。代表的な方法としてロックが用いられ、データの整合性を保つことが目的です。
Point
DBMSの排他制御が何のために行われるかを説明できるようになることがねらいです。アクセス制御(権限管理)やデータ独立性など、似た用語と目的が混同しやすいため、同時アクセスによるデータの不整合を防ぐための仕組みである点を押さえる必要があります。
解くために必要な知識
この問題を解くには、データベースにおける排他制御の理解が必要です。
用語の整理
| 用語名 | 意味 |
|---|---|
| 排他制御 | 複数の利用者やプログラムが同時に同じデータを更新しようとしたときに、更新の衝突による不整合を防ぐため、ある処理が完了するまで他の処理のアクセスを制限する仕組みです。 |
| データベース管理システム (DBMS) | データベースを管理し、複数の利用者やプログラムがデータを共有できるようにするソフトウェアです。 |
| データの不整合 | 本来同じ意味になるはずのデータが、同時更新などが原因で矛盾した状態になることです。 |
代表的な考え方(試験での整理)
-
排他制御は、同時更新時の不整合を防ぐために行います。
-
実現方法としてはロック(施錠)を用いることが一般的です。
他の選択肢に出てくる用語
| 用語名 | 意味 |
|---|---|
| データ独立性 | データ構造の変更がプログラムに与える影響、またはその逆の影響を小さくする考え方で、保守性を高めます。 |
| アクセス制御 | 利用者や権限に応じて、データへのアクセスを許可または制限することです。 |
問題の解法手順
各選択肢の整理
| 選択肢 | 内容の分類 | 排他制御の目的に合うか | 理由 |
|---|---|---|---|
| ア | 改ざん防止・誤操作防止(セキュリティ) | × | これは認証、権限管理、監査ログなどで対応する内容です。排他制御は同時実行による競合の防止です。 |
| イ | データ独立性 | × | データ定義とプログラムを分離して保守しやすくする話であり、同時アクセス時の競合制御ではありません。 |
| ウ | アクセス制御(機密性) | × | 特定の人だけがアクセスできるようにするのは権限管理(認可)の話です。排他制御の目的とは異なります。 |
| エ | 同時アクセス時の不整合防止(整合性) | ○ | 同一データへの同時更新や同時参照で不整合が起きるため、ロックなどで矛盾を防ぎます。 |
結論
正解は「エ」です。
選択肢ごとの解説
- ア:不正解
誤操作や故意の改ざんを防ぐのは、利用者認証、権限(認可)、監査ログなどのセキュリティ対策の目的です。排他制御は、同時アクセスによる更新衝突や矛盾を防ぐための制御なので目的が異なります。
- イ:不正解
データとプログラムを独立させるのはデータ独立性の考え方です。排他制御の目的である同時更新の衝突防止とは異なります。
- ウ:不正解
機密レベルに応じて特定の人だけがアクセスできるようにするのはアクセス制御です。排他制御は権限管理ではなく、同時実行時の不整合防止が中心です。
- エ:正解
排他制御の目的に関する記述です。複数のプログラムが同じデータを同時に更新しようとする場合に、処理の順序を制御して不整合が起きないようにします。
まとめ
排他制御は、複数のプログラム(トランザクション)が同一データを同時に読み書きするときに、更新の上書きや矛盾した読み取りが起きないように制御し、データの不整合を防ぐ仕組みです。代表的な方法としてロックが用いられ、データの整合性を保つことが目的です。
テクノロジ系 > 技術要素 > データベース
誤操作や故意の改ざんを防ぐのは、利用者認証、権限(認可)、監査ログなどのセキュリティ対策の目的です。排他制御は、同時アクセスによる更新衝突や矛盾を防ぐための制御なので目的が異なります。
データとプログラムを独立させるのはデータ独立性の考え方です。排他制御の目的である同時更新の衝突防止とは異なります。
機密レベルに応じて特定の人だけがアクセスできるようにするのはアクセス制御です。排他制御は権限管理ではなく、同時実行時の不整合防止が中心です。
排他制御の目的に関する記述です。複数のプログラムが同じデータを同時に更新しようとする場合に、処理の順序を制御して不整合が起きないようにします。