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


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

解説

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

要点まとめ

  • 結論:外部キー制約により「在庫」表への行追加が拒否される可能性があります。
  • 根拠:「在庫」表の製品番号は「製品」表の主キーを参照しており、存在しない製品番号は登録できません。
  • 差がつくポイント:外部キー制約の役割を理解し、どの操作が参照整合性違反を引き起こすかを見極めることが重要です。

正解の理由

「在庫」表の製品番号は「製品」表の製品番号を参照する外部キーです。このため、「在庫」表に存在しない製品番号を持つ行を追加しようとすると、参照整合性が保てず操作は拒否されます。
一方、行削除や表削除は参照制約の設定によっては制限される場合もありますが、問題文では「在庫」表の製品番号に参照制約があるため、直接影響を受けるのは「在庫」表への行追加です。

よくある誤解

外部キー制約は「削除」操作だけに影響すると誤解しがちですが、存在しない参照先を指定する「追加」操作も拒否されます。

解法ステップ

  1. 問題文の表構造を確認し、主キーと外部キーを把握する。
  2. 外部キーがどの表のどのカラムを参照しているかを理解する。
  3. 参照制約がある場合、どの操作が整合性違反を起こすかを考える。
  4. 各選択肢の操作が参照制約にどう影響するかを検討する。
  5. 最も参照制約違反を起こす可能性が高い操作を選ぶ。

選択肢別の誤答解説

  • ア: “在庫” 表の行削除
    → 「在庫」表の行削除は、参照される側ではなく参照する側の操作であり、通常は拒否されません。
  • イ: “在庫” 表の表削除
    → 表削除は参照制約の影響を受ける場合もありますが、問題文の焦点は製品番号の参照制約です。
  • ウ: “在庫” 表への行追加
    → 正解。存在しない製品番号を指定すると参照制約違反で拒否されます。
  • エ: “製品” 表への行追加
    → 製品表への行追加は参照される側の追加であり、参照制約違反にはなりません。

補足コラム

外部キー制約はデータベースの整合性を保つために重要です。参照先の主キーが存在しない値を外部キーに設定できないため、データの一貫性が保証されます。削除時には「カスケード削除」や「制約違反エラー」などの挙動が設定可能です。

FAQ

Q: 外部キー制約はどのような操作で違反が起きますか?
A: 存在しない参照先を指定した行の追加や、参照されている行の削除で違反が起きます。
Q: 「製品」表の行削除は「在庫」表に影響しますか?
A: はい。参照されている主キーを削除すると参照制約違反となり、削除が拒否されるかカスケード削除が実行されます。

関連キーワード: 外部キー制約, 参照整合性, 主キー, データベース設計, SQL制約
← 前の問題へ次の問題へ →

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