DBデータベーススペシャリスト試験 午前Ⅱ

平成21年度春期 データベーススペシャリスト 午前Ⅱ 問13

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

DBMSの排他制御機能に関する記述のうち,適切なものはどれか。

選択肢

  1. ア
    排他制御機能によって,同時実行処理でのデータの整合性を保つことができる。
  2. イ
    排他制御機能の使用によって,デッドロックを防止できる。
  3. ウ
    排他制御はDBMSが自動的に行い,アプリケーションプログラムからロック,アンロックの指示はできない。
  4. エ
    バッチによる更新処理では排他制御を行う必要はない。
解き方のヒントを見る

同時実行制御を整理する視点

複数の処理が同じデータを扱う場面では、各操作の順序、資源の単位、待ち状態を整理し、相互の処理がどの時点で影響し合うかを段階的に確認することが大切です。

この問題で問われていること

ロックと競合の関係に絞り、各トランザクションがどの資源をいつ利用し、別の処理がどこで待つ可能性があるかを時系列で捉え、個々の操作を分けて考えます。

視点

同時実行の検討では、処理ごとの資源へのアクセス、保持される状態、解放までの流れを分けて整理します。そのうえで、同じ資源をめぐる待ちや順序の違いが、処理全体の見え方にどう関係するかを確認します。

確認ポイント

  • 各処理が利用する資源と、その利用順序を整理する
  • ロックの保持中に別処理が待つ箇所を時系列で確認する
  • 処理結果の整合性と待ち状態を別々の観点で見比べる
正解と解説を見る

正解

ア

解説

正答はアです。排他制御は、複数のトランザクションが同じデータを同時に扱う場合に、相互の処理が不整合を起こさないよう調整する機能です。

理由

排他制御では、ある処理がデータを更新している間に別の処理が競合する操作を行うことを制限し、同時実行による不整合を防ぎます。そのため、データの整合性を保つというアの記述が適切です。

比較

排他制御はデッドロックを必ず防ぐ機能ではなく、DBMSやアプリケーションの設定・処理内容に応じてロックの取得や解放が扱われます。また、バッチ処理でも同時実行処理との競合があれば排他制御が必要です。

選択肢ア(正解)

これは正解だよ。排他制御は、複数の処理が同じデータを同時に扱うとき、処理の競合によって更新内容が不整合になることを防ぐための機能です。したがって、同時実行処理でデータの整合性を保つことができるという記述は、排他制御の基本的な目的と一致します。

選択肢イ

これは不正解だよ。排他制御では、複数の処理が互いにロックの解放を待ち続けるデッドロックが発生する可能性があります。排他制御はデータの競合を調整する機能であり、その使用だけでデッドロックを防止できるとはいえません。

選択肢ウ

これは不正解だよ。排他制御はDBMSが関与して実施しますが、アプリケーションプログラムからトランザクションやロックに関する指示を行える場合があります。「ロック,アンロックの指示はできない」と一律に断定しているため、適切ではありません。

選択肢エ

これは不正解だよ。バッチによる更新処理であっても、別の処理が同じデータを参照・更新する可能性があります。その場合は処理間の競合を調整する必要があるため、バッチ処理では排他制御を行う必要がないという記述は誤りです。

学習のポイント

排他制御の目的と、デッドロックやロック操作との関係を区別して理解しましょう。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 データベーススペシャリスト試験 午前Ⅱ 問13(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針