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

選択肢
ア:(正解)
イ:
ウ:
エ:
SQLの参照制約に関する操作制限【午前2 解説】
要点まとめ
- 結論:主キーを持つA表は追加は自由だが、削除は参照されている場合に制限される。外部キーを持つB表は追加時に参照先の存在が必要で、削除は制限されない。
- 根拠:外部キー制約は参照整合性を保つため、B表の外部キーはA表の主キーを参照し、A表の削除は参照されている場合に拒否される。
- 差がつくポイント:外部キーの追加時に参照先が存在しないと拒否される点と、主キーの削除時に参照されていると拒否される点を正確に理解すること。
正解の理由
アは、A表の追加が○(制限なし)、削除が△(参照されている場合拒否)、B表の追加が△(参照先がなければ拒否)、削除が○(制限なし)と正しく示しています。これは外部キー制約の基本ルールに合致しています。
よくある誤解
外部キーを持つ側(B表)の削除に制限があると誤解しがちですが、実際は参照先の主キーが削除される場合に制限がかかります。追加時の参照先存在チェックも忘れやすいポイントです。
解法ステップ
- 主キーを持つA表の行追加は自由であることを確認する。
- A表の行削除は、B表に参照されている場合拒否されることを理解する。
- B表の行追加は、参照先のA表の主キーが存在しなければ拒否されることを確認する。
- B表の行削除は、参照制約上制限されないことを理解する。
- 各操作の制限を表に当てはめて正しい図を選ぶ。
選択肢別の誤答解説
- イ:B表の追加が○となっているが、参照先がなければ追加は拒否されるため誤り。
- ウ:A表の追加が△となっているが、主キーの追加は制限なしであるため誤り。
- エ:A表の追加が△、B表の削除が○は正しいが、B表の追加も△であるべきところが誤り。
補足コラム
外部キー制約はデータベースの整合性を保つ重要な仕組みです。参照整合性違反を防ぐため、主キーの削除や外部キーの追加時に制限がかかります。ON DELETEやON UPDATEのオプションで動作をカスタマイズ可能ですが、基本は今回のような制約が標準です。
FAQ
Q: 外部キーの追加時に参照先が存在しないとどうなる?
A: 追加操作は拒否され、エラーとなります。参照整合性が保てないためです。
A: 追加操作は拒否され、エラーとなります。参照整合性が保てないためです。
Q: 主キーの削除は常に拒否されるのですか?
A: 参照されている場合に拒否されます。参照がなければ削除可能です。
A: 参照されている場合に拒否されます。参照がなければ削除可能です。
関連キーワード: 外部キー制約、参照整合性、主キー、SQL操作制限、データベース管理

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

