参照制約と行の追加・削除
出典: 平成30年度 春期 応用情報技術者試験 午前 問28 (IPA)
SQL において,A 表の主キーが B 表の外部キーによって参照されている場合,各表の行を追加・削除する操作の参照制約に関する制限について,正しく整理した図はどれか。ここで,△印は操作が拒否される場合があることを表し,○印は制限なしに操作ができることを表す。
各選択肢は,行を「追加」「削除」する操作について A 表・B 表ごとに ○ か △ を示した 2 行 2 列の表(列見出し: 追加,削除。行見出し: A 表,B 表)を,上記のように 1 行に書き直したもの。
- ア A 表: 追加○,削除△ / B 表: 追加△,削除○
- イ A 表: 追加○,削除△ / B 表: 追加○,削除△
- ウ A 表: 追加△,削除○ / B 表: 追加○,削除△
- エ A 表: 追加△,削除○ / B 表: 追加△,削除○
正解と解説を見る
正解: ア
- ア: A 表は追加○・削除△、B 表は追加△・削除○ なので、正しい答えです。
- イ: B 表への追加が○になっています。A 表にない値の行を追加すると拒否されるので、B 表の追加は△です。
- ウ: A 表の追加が△、削除が○になっており、親と子の関係が逆です。
- エ: 全ての操作が△になっていますが、A 表への追加と B 表からの削除は制限なしにできます。
ポイント
A 表の主キーを B 表の外部キーが参照しています (A が親、B が子)。
- A 表 (親): 追加は制限なし (○)。削除 は、B 表から参照されている行を消すと参照先がなくなるので拒否される場合があります (△)。
- B 表 (子): 追加 は、A 表にない値を外部キーに入れると参照整合性に反するので拒否される場合があります (△)。削除は制限なし (○)。