情報処理安全確保支援士試験 2021年 秋期 午前221


次の表において,“在庫”表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを破線の下線は外部キーを表す。    在庫(在庫管理番号製品番号,在庫量)  製品(製品番号、製品名、型,単価)
“在庫”表の行削除
“在庫”表の表削除
“在庫”表への行追加(正解)
“製品”表への行追加

解説

参照制約によって拒否される可能性がある操作はどれか【午前2 解説】

要点まとめ

  • 結論:外部キー制約により「在庫」表への行追加が拒否される可能性があります。
  • 根拠:「在庫」表の製品番号は「製品」表の主キーを参照しており、存在しない製品番号は登録できません。
  • 差がつくポイント:外部キー制約は参照先の主キーの存在を保証するため、参照先にない値の追加が拒否される点を理解しましょう。

正解の理由

「在庫」表の製品番号は「製品」表の製品番号を外部キーとして参照しています。つまり、「在庫」表に新しい行を追加する際、その製品番号は必ず「製品」表に存在していなければなりません。存在しない製品番号を「在庫」表に追加しようとすると、参照制約違反となり操作が拒否されます。したがって、正解はウ: “在庫”表への行追加です。

よくある誤解

外部キー制約は「削除」や「表削除」にも影響すると誤解されがちですが、参照先のテーブル(ここでは「製品」表)に対する削除制限が主であり、「在庫」表の行削除や表削除は直接拒否されません。

解法ステップ

  1. 「在庫」表の製品番号が外部キーであることを確認する。
  2. 外部キーは参照先の主キーの存在を保証する制約であることを理解する。
  3. 参照制約違反が起きる操作は、参照先に存在しない値を外部キーに設定する操作であると判断する。
  4. 選択肢の中で「在庫」表に新しい行を追加する操作が該当することを見極める。

選択肢別の誤答解説

  • ア: “在庫”表の行削除
    → 外部キー制約は参照先の整合性を保つためのものであり、参照元の行削除は制約違反になりません。
  • イ: “在庫”表の表削除
    → 表削除は制約の前にテーブル自体を消す操作であり、通常は制約違反ではなくDB管理者権限が必要です。
  • ウ: “在庫”表への行追加
    → 正解。参照先に存在しない製品番号を追加すると制約違反で拒否されます。
  • エ: “製品”表への行追加
    → 製品表への行追加は参照先の主キー追加であり、制約違反にはなりません。

補足コラム

外部キー制約はリレーショナルデータベースの整合性を保つ重要な機能です。参照元テーブルの外部キーは必ず参照先テーブルの主キーに存在する値でなければならず、これによりデータの一貫性が保証されます。逆に、参照先の行を削除する際は、参照元に影響が出るため「ON DELETE CASCADE」や「ON DELETE RESTRICT」などのオプション設定が重要です。

FAQ

Q: 外部キー制約はどのような操作で違反が起きますか?
A: 参照先に存在しない値を参照元に追加する操作や、参照先の行を参照元が存在する状態で削除する操作で違反が起きます。
Q: 「在庫」表の行削除は外部キー制約に影響しますか?
A: いいえ。外部キー制約は参照先の整合性を保つものであり、参照元の行削除は制約違反になりません。

関連キーワード: 外部キー制約, 参照整合性, リレーショナルデータベース, 主キー, 外部キー, データベース制約
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ