SQL において, A 表の主キーがB 表の外部キーによって参照されている場合, 行を追加・削除する操作の制限について, 正しく整理した図はどれか。ここで, △印は操作が拒否される場合があることを表し, ○印は制限なしに操作できることを表す。
解説
SQLの主キーと外部キーの操作制限整理図【午前2 解説】
要点まとめ
- 結論:主キーを持つA表は行の追加に制限なく、削除は参照されている場合に拒否される。外部キーを持つB表は追加時に参照先が存在しないと拒否され、削除は制限なし。
- 根拠:外部キー制約は参照整合性を保つため、B表の外部キーはA表の主キーを参照し、存在しない主キーを参照できず、主キー削除は参照されていると拒否。
- 差がつくポイント:外部キーの追加制限と主キーの削除制限の理解が重要。操作の可否を正確に把握し、参照整合性の概念を押さえることが合格の鍵。
正解の理由
選択肢アは、A表(主キー側)が行追加に制限なく○、削除は参照されている場合に△(拒否される可能性あり)と正しく示しています。B表(外部キー側)は、追加時に参照先が存在しない場合は拒否されるため△、削除は制限なく○となり、外部キー制約の基本ルールを正確に表現しています。これがSQLの参照整合性制約の標準的な動作です。
よくある誤解
外部キー側の行追加は無条件に可能と誤解しがちですが、参照先の主キーが存在しないと追加は拒否されます。主キー側の削除も、参照されていなければ可能ですが、参照されていると拒否される点を混同しやすいです。
解法ステップ
- 主キーと外部キーの関係を確認する(A表が主キー、B表が外部キー)。
- 主キー側の行追加は制限なし(新しい主キーは自由に追加可能)。
- 主キー側の行削除は、外部キーで参照されている場合は拒否される。
- 外部キー側の行追加は、参照先の主キーが存在しなければ拒否される。
- 外部キー側の行削除は制限なし(参照整合性に影響しない)。
- 以上のルールを表に当てはめて正しい図を選ぶ。
選択肢別の誤答解説
- ア:正解。主キー追加○、削除△、外部キー追加△、削除○の正しい組み合わせ。
- イ:外部キーの追加が○となっており、存在しない主キーを参照できる誤りがある。
- ウ:主キーの追加が△、削除が○となっており、主キー追加に制限がある誤解。
- エ:主キーの追加が△、削除が○、外部キーの追加が△、削除が○で主キー追加に誤りがある。
補足コラム
外部キー制約はデータベースの整合性を保つ重要な機能です。主キーは一意に行を識別し、外部キーは他表の主キーを参照して関係性を表現します。参照整合性を保つため、外部キーは必ず存在する主キーを参照しなければならず、主キーの削除は参照されていない場合に限り許可されます。これにより、データの矛盾や孤立した参照を防ぎます。
FAQ
Q: 外部キーの追加時に参照先が存在しない場合はどうなりますか?
A: 参照整合性違反となり、追加操作は拒否されます。
Q: 主キーの行を削除したいが、外部キーで参照されている場合はどうなりますか?
A: 削除は拒否されます。参照されている主キーは削除できません。
Q: 外部キーの行削除に制限はありますか?
A: 基本的に制限はなく、自由に削除可能です。
関連キーワード: 主キー, 外部キー, 参照整合性, SQL制約, データベース操作制限