平成27年度 春期 ITパスポート試験 公開問題 問77 解説 DBMSの排他制御
DBMSにおいて,データへの同時アクセスによる矛盾の発生を防止し,データの一貫性を保つための機能はどれか。
- ア 正規化
- イ デッドロック
- ウ 排他制御 ✓ 正答
- エ リストア
解説
選択肢の判断根拠
この問題は、キーワードの組み合わせで即答できる典型的な問題です。「同時アクセス」「矛盾の発生防止」「データの一貫性」という単語が出てきたら、迷わず「排他制御」を選びます。他の選択肢はDBMSにおける別の役割や現象を指す言葉であり、目的が全く異なります。
排他制御が解決する課題
データベースには、複数のユーザーが同時にアクセスすることがあります。例えば、銀行の残高照会や予約システムの空席管理などがこれに当たります。
もし、排他制御という仕組みがなかったらどうなるでしょうか。二人のユーザーが同時に同じ座席を予約しようとした際、システムが「空席である」と判断して同時に書き込みを行うと、席のデータが矛盾を起こし、最悪の場合は二重予約が発生してしまいます。
排他制御は、特定のユーザーがデータを更新している間、他のユーザーがそのデータに触れないように「ロック(鍵)」をかける仕組みです。このロック機能によって、順番待ちが発生し、データが常に正しい状態(一貫性がある状態)に保たれます。
その他の選択肢が指す意味
各選択肢はデータベース管理においてどれも重要ですが、役割が異なります。
正規化は、データの重複を排除し、管理しやすくする手法です。データの矛盾を防ぐための事前の設計ルールのようなものです。
デッドロックは、複数のトランザクションが互いに相手のロック解除を待ち続けてしまい、処理が進まなくなる「状態」そのものを指します。排他制御を導入した結果として起こりうる副作用のような現象です。
リストアは、システム障害が起きた際に、バックアップデータから元の状態を復旧させる作業です。データの矛盾を防ぐ機能ではなく、壊れたデータを直す機能です。
なぜこの知識が重要なのか
ITパスポート試験においてこの問題が出題されるのは、データベースが「整合性」をいかに維持しているかという基本原則を理解しているかを問うためです。
システム開発の現場では、単にデータを保存するだけでは不十分です。不特定多数のユーザーが高速にアクセスしても、データが決して壊れないように管理するのがDBMSの腕の見せ所です。排他制御の概念を知っておくことは、データベース設計やシステムトラブルの原因切り分けを考える際の重要な基礎知識となります。