平成30年度 春期 午前 問28
データベース
参照制約に関する問題
SQL において,A 表の主キーが B 表の外部キーによって参照されている場合,各表の行を追加・削除する操作の参照制約に関する制限について,正しく整理した図はどれか。ここで,△印は操作が拒否される場合があることを表し,○印は制限なしに操作ができることを表す。
- アA 表 … 追加 ○・削除 △/B 表 … 追加 △・削除 ○
- イA 表 … 追加 ○・削除 △/B 表 … 追加 ○・削除 △
- ウA 表 … 追加 △・削除 ○/B 表 … 追加 ○・削除 △
- エA 表 … 追加 △・削除 ○/B 表 … 追加 △・削除 ○
答えと解説を見る
✓ これが正解アA 表 … 追加 ○・削除 △/B 表 … 追加 △・削除 ○
解説
参照が宙に浮く操作だけが拒まれます。
設問は、主キーが他の表の外部キーから参照されているとき、追加と削除のどちらが拒まれ得るかを整理した図を選ばせています。軸は、参照が宙に浮いてしまう操作はどれかという一点です。宙に浮くのは二つだけです。一つは参照される側の行を消すことで、その行を指している参照が行き先を失います。もう一つは参照する側に新しい行を入れることで、指し先が存在しない値を外部キーに入れようとすると拒まれます。残る二つの操作は、どうやっても参照を壊しません。参照される側に行を足しても、その行はまだ誰からも指されていないので問題は起こりません。参照する側の行を消すのは、指すのをやめるだけなので誰も困りません。したがって参照される側は追加が制限なし、削除が拒まれ得るという並びになり、参照する側はその逆になります。四つの肢は記号を二つずつ入れ替えて作られているので、覚えて当てにいくのではなく、宙に浮く二つをその場で作り直すほうが確実です。
ほかの選択肢はなぜ違うのか
- イA 表 … 追加 ○・削除 △/B 表 …:参照する側の記号を、参照される側と同じ並びにした形です。指し先の無い値を外部キーに入れる操作が拒まれ得ることを見落としています。
- ウA 表 … 追加 △・削除 ○/B 表 …:二つの表の並びをそっくり入れ替えた形です。参照される側の行を消しても参照が宙に浮かないことになってしまい、制約の向きが逆になります。
- エA 表 … 追加 △・削除 ○/B 表 …:参照される側の記号を、参照する側と同じ並びにした形です。まだ誰からも指されていない行を足す操作まで拒まれる整理になっています。
出典:平成30年度 春期 応用情報技術者試験 午前 問28(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)