平成31年度 春期 午前Ⅱ 問21
データベース
参照制約に関する問題
次の表において,“在庫”表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
在庫(在庫管理番号,<u style="text-decoration-style: dashed">製品番号</u>,在庫量)
製品(製品番号,製品名,型,単価)
- ア“在庫”表の行削除
- イ“在庫”表の表削除
- ウ“在庫”表への行追加
- エ“製品”表への行追加
答えと解説を見る
✓ これが正解ウ“在庫”表への行追加
解説
製品表に無い製品番号の行を在庫表に追加すると、拒否されます。
参照制約は、参照する側の外部キーの値が、参照される側の主キーの値として存在することを求める制約です。この表では、在庫表の製品番号が外部キーで、製品表の製品番号を参照しています。在庫表に行を追加するとき、その製品番号が製品表に存在しなければ、参照先の無い行ができてしまうので拒否されます。制約が問題になるのは、参照先の無い行が生まれる操作です。
ほかの選択肢はなぜ違うのか
- ア“在庫”表の行削除:在庫表の行を削除しても、消えるのは参照する側の行だけです。参照先を失う行は生まれないので、参照制約に反しません。拒否されうるのは、参照されている製品表の行を削除する操作の方です。
- イ“在庫”表の表削除:在庫表そのものを削除しても、参照する側の表がなくなるだけで、参照先を失った行が残ることはありません。参照制約によって拒否される操作には当たりません。
- エ“製品”表への行追加:製品表に行を追加すると、参照される側の製品番号が増えるだけです。在庫表のどの行も参照先を失うことはないので、参照制約に反することはなく、拒否される理由がありません。
出典:平成31年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)