DBデータベーススペシャリスト試験 午前Ⅱ
令和7年度秋期 データベーススペシャリスト 午前Ⅱ 問8
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アPK_システム番号 DEFERRED
- イPK_システム番号 IMMEDIATE
- ウUK_担当者番号 DEFERRED
- エUK_担当者番号 IMMEDIATE
解き方のヒントを見る
トランザクション境界を見極める視点
トランザクションの開始・終了と、処理途中で共有データを扱う範囲に注目し、整合性を保つためにどの単位で状態を確定・保留するかを整理しましょう。処理の区切りと影響範囲を照らし合わせることが重要です。
この問題で問われていること
一連の処理を時系列に並べ、どの時点で変更が確定した扱いになるか、途中の失敗や中断が周囲の処理にどう関係するかを確認してください。境界とデータの状態を同じ観点で比較すると整理しやすくなります。
視点
トランザクションを、複数の操作を一つのまとまりとして扱うための境界と捉えます。各操作の順序、確定前後の状態、失敗時に残る影響を整理し、整合性という観点から全体のつながりを確認しましょう。
確認ポイント
- 処理を開始・実行・終了の時系列に分けて整理する
- 変更が確定する前後でデータの状態を区別する
- 失敗や中断が処理全体へ及ぼす範囲を確認する
正解と解説を見る
正解
ウ
解説
担当者番号には一意制約があり、更新文を1文ずつ直ちに検査すると一時的な重複が発生します。検査をトランザクションの確定時まで遅らせることで、二つの更新文を最後まで正常に実行できます。
理由
初期状態ではシステム番号1234の担当者番号が111、システム番号6789が222です。最初のUPDATEで前者を222にすると、担当者番号222が一時的に重複します。次のUPDATEで後者を111にするため、最終状態では担当者番号は再び一意になります。したがって、担当者番号の一意制約をCOMMIT時まで遅延させれば、トランザクション全体を正常終了できます。
比較
主キーであるシステム番号は、二つのUPDATEで1234と6789という異なる既存値を対象にしており、重複する値へ変更していません。そのため主キー制約を遅延させる必要はありません。また、一意制約をIMMEDIATEのままにすると、最初のUPDATE直後に一時的な重複が検査され、後続のUPDATEまで到達できません。
選択肢ア
これは不正解だよ。PK_システム番号はシステム番号列の主キー制約を示します。二つのUPDATEではシステム番号1234と6789を変更せず、主キーの重複は発生しません。必要なのは更新途中に一時的な重複が生じる担当者番号の一意制約を遅延させることなので、この指定では目的を満たしません。
選択肢イ
これは不正解だよ。PK_システム番号 IMMEDIATEは、主キー制約を各SQL文の実行時に検査する指定です。今回の更新対象であるシステム番号は互いに異なったままであり、主キー検査を遅延させる必要はありません。一方、問題となるのは最初の更新直後に一時的に重複する担当者番号です。
選択肢ウ(正解)
これは正解だよ。UK_担当者番号は担当者番号の一意制約を表します。最初のUPDATEで担当者番号222が一時的に重複しますが、次のUPDATEで元の担当者番号111と入れ替わり、COMMIT時には一意になります。この制約をDEFERREDにすると検査が確定時まで遅れ、二つのUPDATEを正常に完了できます。
選択肢エ
これは不正解だよ。UK_担当者番号 IMMEDIATEは、担当者番号の一意制約を各SQL文の実行時に検査する指定です。最初のUPDATE後には担当者番号222が二つ存在するため、その時点で一意制約違反になります。後続のUPDATEで最終的に整合しても、即時検査ではそこまで処理が進みません。
学習のポイント
遅延可能な制約と即時制約の違い、更新途中の一時的な重複を理解する。
出典:独立行政法人 情報処理推進機構(IPA)令和7年度秋期 データベーススペシャリスト試験 午前Ⅱ 問8(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針