平成30年度春期 応用情報技術者試験 午前 問28
SQLにおいて,A表の主キーがB表の外部キーによって参照されている場合,各表の行を追加・削除する操作の参照制約に関する制限について,正しく整理した図はどれか。ここで,△印は操作が拒否される場合があることを表し,○印は制限なしに操作ができることを表す。

※選択肢ア〜エは上の図表内に記載されています。
解答・解説を見る
正解:ア
AI解説
参照制約(外部キー制約)は「B表(子)の外部キーの値は,必ずA表(親)の主キーに存在しなければならない」という制約である。これに違反し得る操作は拒否される場合がある。具体的には,A表(被参照側)への行追加とB表(参照側)からの行削除は常に制限なし(○),A表の行削除は参照している行があれば拒否(△),B表の行追加は対応する主キーがなければ拒否(△)となる。この組合せを表した図がアである。 ア: 正解。A表:追加○・削除△,B表:追加△・削除○という整理は参照制約の動作と一致する。 イ: 誤り。A表とB表の制限の付き方が逆になっており,親の削除や子の追加が制限なしとなっているのは参照制約に反する。 ウ: 誤り。全操作に制限がある(または全て制限なし)ような整理は,参照制約が制限する操作を正しく表していない。 エ: 誤り。追加・削除の制限の組合せが参照制約の実際の動作と一致しない。 💡 「子は親がいないと存在できない」と擬人化して覚える。親を消すとき(子が残る恐れ)と子を作るとき(親がいない恐れ)が危険=拒否される場合がある操作。逆に親を増やす・子を消すのはいつでも安全,と考えれば表を暗記しなくても導ける。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。