ITパスポート 2019年 秋期 問64
問題文
データベース管理システムにおける排他制御の目的として、適切なものはどれか。
選択肢
ア:誤ってデータを修正したり、データを故意に改ざんされたりしないようにする。
イ:データとプログラムを相互に独立させることによって、システムの維持管理を容易にする。
ウ:データの機密のレベルに応じて、特定の人しかアクセスできないようにする。
エ:複数のプログラムが同一のデータを同時にアクセスしたときに、データの不整合が生じないようにする。(正解)
🔒 解説は解答すると表示されます
データベース管理システムにおける排他制御の目的【ITパスポート 解説】
正解の理由
データベース管理システム(DBMS:データを保存・管理するソフトウェア)で言う排他制御(同時に一つだけ操作を許す仕組み)の目的は、同じデータに複数の処理が同時に触れてしまうことで起きる「データの不整合(データの矛盾やつじつまが合わない状態)」を防ぐことです。設問の選択肢の中では、この説明が当てはまるのが エ の文言です。具体例として、同じ口座残高に対して二つの入出金処理が同時に行われると、残高が正しく更新されない(いわゆる「取りこぼし」や二重引き落とし)ことがあります。排他制御はこうした事態を防ぎます。
解法ステップ
- 問題文の重要語句を見つける:「排他制御」「目的」「データベース管理システム」など。
- 排他制御の意味を思い出す:同時に複数の処理が同じデータを操作するのを制御する仕組み。
- 選択肢と照らし合わせる:排他制御の説明に合致する文を選ぶ。
- 当てはまる選択肢が エ であることを確認する(同一データの同時アクセスと不整合防止に言及しているため)。
選択肢別の誤答解説
-
ア: 誤ってデータを修正したり、データを故意に改ざんされたりしないようにする。
- これは「不正アクセス防止」や「改ざん検知・認証・監査」といったセキュリティの項目です。排他制御は同時実行による整合性問題を防ぐもので、改ざんや誤操作の防止という意味合いとは異なります。
-
イ: データとプログラムを相互に独立させることによって、システムの維持管理を容易にする。
- これはデータとプログラムの独立(データ独立性)という、データベースの設計上の利点に関する説明です。排他制御の役割ではありません。
-
ウ: データの機密のレベルに応じて、特定の人しかアクセスできないようにする。
- これはアクセス制御(認可:Authorization)や機密性(confidentiality)に関する説明です。排他制御は「誰がアクセスできるか」ではなく「同時に何が起こらないようにするか」を扱います。
-
エ: 複数のプログラムが同一のデータを同時にアクセスしたときに、データの不整合が生じないようにする。
- これが排他制御の目的そのものです。トランザクション(処理のまとまり)を正しく扱うために使われます。
よくある誤解
-
「排他制御はセキュリティ対策だ」
- 排他制御は主に「整合性(データが正しい状態に保たれること)」のための仕組みです。アクセスの許可・拒否(セキュリティ)とは目的が異なります。
-
「排他制御は常にロックしておけば良い」
- 常に排他にすると並列性(同時実行の効率)が落ちます。用途に応じて楽観的(楽観ロック)/悲観的(悲観ロック)な方式を使い分けます。
-
「排他制御で改ざんも防げる」
- 排他制御は同時更新の矛盾を防ぐだけで、意図的な改ざんや認証の弱さを直接解決しません。別の仕組み(認証・認可・監査)が必要です。
補足コラム
-
トランザクション(処理のまとまり)と排他制御:
トランザクションとは「一連の処理を一つのまとまりとして扱うこと」です。トランザクションが満たすべき性質としてACIDという考え方があります。- A(Atomicity:原子性)— 全部成功するか全部失敗するかのどちらか。
- C(Consistency:一貫性)— トランザクション開始前後で整合性制約が守られる。
- I(Isolation:独立性)— 同時実行があっても互いに干渉しない。ここで排他制御が関わります。
- D(Durability:永続性)— 成功した操作は永続的に保存される。
排他制御は特に「I(独立性)」を実現するための技術です。代表的な仕組みとして「ロック(他が書けないようにする)」や「タイムスタンプ方式(順序を付ける)」があります。
-
例:銀行口座の二重引き落とし
同じ残高に対し同時に引き落とし処理が走ると、残高が負の値になったり、正しい合計にならないことがあります。排他制御で一方の処理が終わるまで他方を待たせることで不整合を防ぎます。
FAQ
Q1. 排他制御はシステムの速度を遅くしますか?
A1. はい。排他をかけると同時実行性は下がります。ただし整合性を保つことが最優先の場面(銀行取引など)では必要です。システム設計では整合性と性能のバランスを取ります。
A1. はい。排他をかけると同時実行性は下がります。ただし整合性を保つことが最優先の場面(銀行取引など)では必要です。システム設計では整合性と性能のバランスを取ります。
Q2. 排他制御とアクセス権(権限設定)は同じですか?
A2. いいえ。アクセス権は「誰がデータにアクセスできるか」を決めます。排他制御は「複数の処理が同時にデータを操作するときの干渉を防ぐ」ための仕組みです。目的が違います。
A2. いいえ。アクセス権は「誰がデータにアクセスできるか」を決めます。排他制御は「複数の処理が同時にデータを操作するときの干渉を防ぐ」ための仕組みです。目的が違います。
Q3. 排他制御の具体的な手段は何がありますか?
A3. 代表的なのはロック(共有ロック・排他ロック)や楽観ロック、タイムスタンプ方式などです。用途や性能要件で使い分けます。
A3. 代表的なのはロック(共有ロック・排他ロック)や楽観ロック、タイムスタンプ方式などです。用途や性能要件で使い分けます。
関連キーワード: データベース, 排他制御, ロック, トランザクション, データ整合性, 同時実行制御, ACID, 楽観ロック, 悲観ロック

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

