ホーム > 情報処理安全確保支援士試験 > 2009年 春期
情報処理安全確保支援士試験 2009年 春期 午前2 問17
DBMSの排他制御機能に関する記述のうち,適切なものはどれか。
ア:排他制御機能によって,同時実行処理でのデータの整合性を保つことができる。(正解)
イ:排他制御機能の使用によって,デッドロックを防止できる。
ウ:排他制御はDBMSが自動的に行い,アプリケーションプログラムからロック,アンロックの指示はできない。
エ:バッチによる更新処理では排他制御を行う必要はない。
解説
DBMSの排他制御機能に関する問題【午前2 解説】
要点まとめ
- 結論:排他制御機能は同時実行処理におけるデータの整合性を保つために不可欠です。
- 根拠:複数のトランザクションが同時にデータを操作すると不整合が生じるため、排他制御でアクセスを制限します。
- 差がつくポイント:排他制御はデータの一貫性維持が目的であり、デッドロック防止や自動化の範囲、バッチ処理の必要性についての理解が重要です。
正解の理由
選択肢アは「排他制御機能によって、同時実行処理でのデータの整合性を保つことができる」と述べています。これはDBMSの排他制御の本質であり、複数のトランザクションが同時に同じデータを更新する際に不整合が起きないようにロックをかけることで整合性を保証します。したがって正解です。
よくある誤解
排他制御がデッドロックを防止するわけではなく、むしろデッドロックが発生する可能性があることを理解していないことが多いです。
また、排他制御はDBMSが自動的に行う場合もありますが、アプリケーションから明示的にロック操作を指示できることもあります。
また、排他制御はDBMSが自動的に行う場合もありますが、アプリケーションから明示的にロック操作を指示できることもあります。
解法ステップ
- 排他制御の目的を「データの整合性維持」と認識する。
- 同時実行制御と排他制御の関係を理解する。
- デッドロックは排他制御の副作用であり、防止は別の機構や対策が必要と知る。
- DBMSの排他制御は自動的に行われる場合もあるが、アプリケーションから操作可能な場合もあることを確認する。
- バッチ処理でも排他制御は必要な場合があるため、無条件に不要とは言えないことを覚える。
選択肢別の誤答解説
- ア: 正解。排他制御は同時実行処理のデータ整合性を保つための機能。
- イ: 誤り。排他制御はデッドロックの原因にもなり得るため、防止は別の対策が必要。
- ウ: 誤り。DBMSによる自動排他制御もあるが、アプリケーションから明示的にロック操作を行うことも可能。
- エ: 誤り。バッチ処理でも複数の処理が同時にデータを扱う場合は排他制御が必要になることがある。
補足コラム
排他制御はロック機構を用いてトランザクションの整合性を保ちます。ロックには共有ロック(読み取り用)と排他ロック(書き込み用)があり、これらを適切に管理することで一貫性を維持します。デッドロックは複数のトランザクションが互いにロックを待ち合う状態で、検出や回避のためのアルゴリズムがDBMSに組み込まれています。
FAQ
Q: 排他制御はすべて自動で行われますか?
A: 多くのDBMSは自動的に排他制御を行いますが、アプリケーションが明示的にロックを操作することも可能です。
A: 多くのDBMSは自動的に排他制御を行いますが、アプリケーションが明示的にロックを操作することも可能です。
Q: デッドロックは排他制御で防げますか?
A: いいえ。排他制御はデッドロックの原因になることもあり、防止には別途検出や回避の仕組みが必要です。
A: いいえ。排他制御はデッドロックの原因になることもあり、防止には別途検出や回避の仕組みが必要です。
Q: バッチ処理では排他制御は不要ですか?
A: バッチ処理でも複数の処理が同時にデータを扱う場合は排他制御が必要です。
A: バッチ処理でも複数の処理が同時にデータを扱う場合は排他制御が必要です。
関連キーワード: 排他制御, 同時実行制御, トランザクション, ロック機構, デッドロック