更新と参照の処理結果を矛盾させないようにするためのDBMSの機能|情報セキュリティマネジメント 平成31年 春期午前試験 問45
出典:平成31年春期 午前 問45
分野:データベース / トランザクション処理
トランザクションT1が更新中のデータを,トランザクションT2が参照しようとしたとき,更新と参照の処理結果を矛盾させないようにするためのDBMSの機能はどれか。
- ア:最適化
- イ:参照制約
- ウ:排他制御
- エ:副問合せ
TSUNAGARU-ADVICE
まず押さえたいこと
複数のトランザクションが同じデータを同時に扱うときに、処理結果の矛盾を防ぐために使われるのが排他制御です。あるトランザクションが更新中のデータを、別のトランザクションが不用意に参照・更新しないように制御します。
迷ったときの判断軸
「同時アクセスによる矛盾を防ぐ」なら排他制御と覚えましょう。最適化はSQLの実行方法を効率化する機能、参照制約は主キーと外部キーなどの整合性を保つ仕組み、副問合せはSQL文の中に別の問合せを含める記述方法です。
学習の優先度
排他制御はデータベースの基礎論点で、科目Bとの直接的な関連は強くありません。同時実行時の整合性を守る仕組みという役割を押さえたら、リスク・脅威・アクセス制御・ログ分析・インシデント対応などのセキュリティ分野を優先しましょう。
排他制御は、複数のトランザクションが同じデータを同時に更新・参照したときに、処理結果の矛盾が起きないようにアクセスを制御するDBMSの機能です。代表的な方法として、処理中のデータにロックをかけ、他のトランザクションによる更新や参照を制限する方法があります。
本問では、「トランザクションT1が更新中のデータを,トランザクションT2が参照しようとしたとき」「更新と参照の処理結果を矛盾させないようにする」という部分が判断のポイントです。複数トランザクション間の整合性を保つための機能なので、ウが適切です。
❌他選択肢が誤りの理由ア:最適化
⇒最適化は、SQLの実行方法を工夫して、より効率的に処理できる実行計画を選択する機能です。複数トランザクション間の同時アクセスを制御するものではありません。
イ:参照制約
⇒参照制約は、外部キーなどを用いて、関連するテーブル間のデータの整合性を保つ仕組みです。トランザクション同士の更新・参照の競合を制御する機能ではありません。
エ:副問合せ
⇒副問合せは、SQL文の中に別のSELECT文などを記述して、その結果を利用する方法です。同時実行されるトランザクションの整合性を保つ機能ではありません。