問題
問64
データベース管理システムにおける排他制御の目的として、適切なものはどれか。
- 誤ってデータを修正したり、データを故意に改ざんされたりしないようにする。
- データとプログラムを相互に独立させることによって、システムの維持管理を容易にする。
- データの機密のレベルに応じて、特定の人しかアクセスできないようにする。
- 複数のプログラムが同一のデータを同時にアクセスしたときに、データの不整合が生じないようにする。
[出典:ITパスポート試験 令和元年度 問64]
スポンサーリンク
正解
正解は「エ」です。
解説
排他制御(エクスクルージョンコントロール)とは、データベース管理システム(DBMS)において、複数のユーザやプログラムが同時に同じデータにアクセスしようとした場合に、データの不整合を防ぐための仕組みです。排他制御を行わないと、たとえば二人のユーザが同時に同じレコードを更新したときに、片方の変更が失われたり、整合性の取れない状態になるおそれがあります。
このような不整合を防ぐために、データベースでは「ロック」という仕組みを使い、あるユーザがデータを使用中は他のユーザのアクセスを一時的に制限することができます。選択肢エは、この排他制御の役割を正確に表しています。
一方、選択肢アは誤操作や改ざん防止という意味でセキュリティ制御や監査ログの領域に近く、排他制御そのものの目的ではありません。選択肢イの「データとプログラムの独立性」はデータベース設計上の特徴で、排他制御とは関係ありません。選択肢ウはアクセス制御に関する内容で、これも排他制御とは異なります。 したがって、正解は「エ」となります。
ア(誤ってデータを修正したり…):
データの改ざんや誤操作防止は監査やアクセス制御の領域であり、排他制御の目的とは異なります。
イ(データとプログラムを相互に独立させる…):
これはデータ独立性という設計原則であり、排他制御の目的ではありません。
ウ(データの機密のレベルに応じて…):
アクセス制御や認可の話であり、排他制御とは別のセキュリティ分野です。
難易度
排他制御という言葉に馴染みがないと難しく感じるかもしれませんが、内容自体は複数人が同じものを使うときの「順番待ち」や「使用中の札」などにたとえられるため、理解しやすい内容です。IT未経験者でも日常の行動に照らして理解が進むため、初学者向けとしては標準的な難易度です。
スポンサーリンク
用語補足
排他制御:
同時に複数の利用者が同じデータにアクセスすることで発生する矛盾を防ぐための制御です。例えば、電車の改札を1人ずつ通るように制限するのと似ています。
ロック:
排他制御を実現する技術で、データを操作する前にロックをかけることで他のユーザのアクセスを制限します。たとえば銀行口座の処理中に他の取引を保留にするような制御です。
データの整合性:
データが一貫性を持ち、正しい状態に保たれていることです。排他制御はこの整合性を守るために重要です。
対策
排他制御の役割とその重要性を日常的な「順番」や「使用中表示」などに例えて理解するのが効果的です。データベース処理における同時実行制御やロックの仕組みを図で整理し、実際の例(銀行処理や在庫管理)と照らし合わせると定着しやすくなります。