応用情報技術者 2018年 秋期 午前2 問30
問題文
データベースシステムにおいて、二つのプログラムが同一データへのアクセス要求を行うとき、後続プログラムのアクセス要求に対する並行実行の可否の組合せのうち、適切なものはどれか。ここで、表中の○は二つのプログラムが並行して実行されることを表し、×は先行プログラムの実行終了まで後続プログラムは待たされることを表す。

選択肢
ア:
イ:
ウ:
エ:(正解)
データベースのアクセスモードによる並行実行制御【午前2 解説】
要点まとめ
- 結論:共用ロック同士は並行実行可能だが、排他ロックが絡む場合は後続プログラムは待機する必要がある。
- 根拠:共用ロックは読み取り専用で競合しないが、排他ロックは書き込みを伴いデータの整合性を保つため排他制御が必要。
- 差がつくポイント:共用ロックと排他ロックの違いを正確に理解し、どの組み合わせで待機が発生するかを判断できるかが重要。
正解の理由
正解はエです。
共用ロック(読み取り)は複数のプログラムが同時に取得可能であり、並行実行が許されます。一方、排他ロック(書き込み)は単独で保持される必要があり、他のプログラムが共用・排他ロックを要求した場合は待機が発生します。
したがって、後続プログラムが共用ロックを要求し、先行プログラムが共用ロックの場合は○(並行可)、それ以外は×(待機)となるのが正しい並行実行の可否です。
共用ロック(読み取り)は複数のプログラムが同時に取得可能であり、並行実行が許されます。一方、排他ロック(書き込み)は単独で保持される必要があり、他のプログラムが共用・排他ロックを要求した場合は待機が発生します。
したがって、後続プログラムが共用ロックを要求し、先行プログラムが共用ロックの場合は○(並行可)、それ以外は×(待機)となるのが正しい並行実行の可否です。
よくある誤解
排他ロックでも読み取りは可能と誤解し、共用ロックと同様に並行実行できると考えることがあります。
また、共用ロックと排他ロックの違いを混同し、すべてのアクセスが並行可能と誤認するケースも多いです。
また、共用ロックと排他ロックの違いを混同し、すべてのアクセスが並行可能と誤認するケースも多いです。
解法ステップ
- 先行プログラムのロックモード(共用 or 排他)を確認する。
- 後続プログラムのロックモードを確認する。
- 共用ロック同士ならば並行実行可能(○)。
- 排他ロックが絡む場合は後続プログラムは待機(×)。
- 表の各組み合わせに対して上記ルールを適用し、正しい並行可否を判断する。
選択肢別の誤答解説
- ア:排他ロック同士で後続プログラムが共用ロックを取得できると誤って○にしている。排他ロックがある場合は待機が必要。
- イ:先行プログラムが排他ロックのとき後続プログラムの共用ロックを×にしているが、排他ロックがある場合は共用ロックも待機が必要なので正しい。だが後続プログラムの排他ロックが先行プログラムの共用ロックに対して○となっているのが誤り。
- ウ:後続プログラムの共用ロックが先行プログラムの排他ロックに対して○となっているが、排他ロックがある場合は待機が必要。
- エ:共用ロック同士は○、それ以外は×で正しい。
補足コラム
データベースのロック制御はデータの整合性を保つために不可欠です。共用ロックは読み取り専用で複数同時に取得可能ですが、排他ロックは書き込み時に単独で保持されます。これにより、データの競合や不整合を防ぎます。ロックの種類とその挙動を理解することは、トランザクション制御やデッドロック回避の基礎となります。
FAQ
Q: 共用ロックはなぜ複数同時に取得できるのですか?
A: 共用ロックは読み取り専用でデータを変更しないため、複数のプログラムが同時にアクセスしてもデータの整合性が保たれるからです。
A: 共用ロックは読み取り専用でデータを変更しないため、複数のプログラムが同時にアクセスしてもデータの整合性が保たれるからです。
Q: 排他ロックがあるときに共用ロックを取得できない理由は?
A: 排他ロックは書き込みを伴いデータを変更するため、他のプログラムが読み取り中に変更されると整合性が崩れるため、共用ロックの取得は待機が必要です。
A: 排他ロックは書き込みを伴いデータを変更するため、他のプログラムが読み取り中に変更されると整合性が崩れるため、共用ロックの取得は待機が必要です。
関連キーワード: ロック制御、共用ロック、排他ロック、並行実行、トランザクション、データベースアクセス

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

