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