応用情報技術者 2013年 春期 午前2 問30
問題文
A表は外部キーによってB表から参照されている。ここで,A表の行を削除するとき、それを参照しているB表の行を同時に全て削除することを指定するSQLの参照動作はどれか。
選択肢
ア:CASCADE(正解)
イ:CONSTRAINT
ウ:NO ACTION
エ:REFERENCES
外部キーの参照動作に関する問題【午前2 解説】
要点まとめ
- 結論:A表の行削除時にB表の参照行も同時に削除する参照動作は「CASCADE」です。
- 根拠:CASCADEは外部キー制約で親テーブルの変更に連動して子テーブルの行を自動的に更新・削除します。
- 差がつくポイント:CASCADE以外の選択肢は参照制約の定義や動作を示す用語であり、削除連鎖を意味しません。
正解の理由
「CASCADE」は外部キー制約のオプションで、親テーブルの行が削除または更新された際に、それを参照する子テーブルの行も自動的に削除または更新される動作を指定します。
この問題では、A表の行削除時にB表の参照行も同時に削除する動作を求めているため、正解はア: CASCADEです。
この問題では、A表の行削除時にB表の参照行も同時に削除する動作を求めているため、正解はア: CASCADEです。
よくある誤解
CONSTRAINTは制約の定義自体を指し、動作ではありません。
NO ACTIONは削除を拒否する動作であり、連鎖削除とは逆の意味です。
NO ACTIONは削除を拒否する動作であり、連鎖削除とは逆の意味です。
解法ステップ
- 問題文で「A表の行削除時にB表の行も同時に削除」とあることを確認する。
- 外部キー制約の参照動作の種類を思い出す。
- 「CASCADE」が連鎖削除を意味することを理解する。
- 他の選択肢の意味を確認し、該当しないことを確認する。
- 正解を「CASCADE」と判断する。
選択肢別の誤答解説
- ア: CASCADE → 正解。親テーブルの削除に連動して子テーブルも削除する。
- イ: CONSTRAINT → 制約の定義を示すキーワードで、動作ではない。
- ウ: NO ACTION → 親テーブルの削除時に子テーブルの参照がある場合、削除を拒否する動作。
- エ: REFERENCES → 外部キー制約を定義する際に使うキーワードで、動作指定ではない。
補足コラム
外部キー制約の参照動作には主に「CASCADE」「SET NULL」「NO ACTION」「RESTRICT」などがあります。
CASCADEはデータの整合性を保ちながら親子関係のデータを一括管理できるため、設計時に適切に使うことが重要です。
CASCADEはデータの整合性を保ちながら親子関係のデータを一括管理できるため、設計時に適切に使うことが重要です。
FAQ
Q: CASCADEは更新時にも使えますか?
A: はい。CASCADEは親テーブルの更新時にも子テーブルの該当列を自動更新します。
A: はい。CASCADEは親テーブルの更新時にも子テーブルの該当列を自動更新します。
Q: NO ACTIONとRESTRICTの違いは何ですか?
A: 両者は似ていますが、NO ACTIONはトランザクション終了時にチェックし、RESTRICTは即時にチェックします。
A: 両者は似ていますが、NO ACTIONはトランザクション終了時にチェックし、RESTRICTは即時にチェックします。
関連キーワード: 外部キー制約、参照動作、CASCADE, SQL, 連鎖削除

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

