データベース
次の操作のうち、参照整合性制約(外部キー制約)に違反するものはどれか。 【テーブル構成】 ・部署テーブル: 部署ID(主キー)、部署名 ・社員テーブル: 社員ID(主キー)、氏名、部署ID(外部キー → 部署テーブル.部署ID) 現在、部署ID=10「開発部」が存在し、社員テーブルに部署ID=10 の社員が3名登録されている。
ア.部署テーブルに新しい部署ID=20「営業部」を追加する
イ.社員テーブルの社員1名を部署ID=20(まだ存在しない)に更新する正解
ウ.社員テーブルに部署ID=10 を持つ新しい社員を追加する
エ.DELETE FROM 部署 WHERE 部署ID = 10(ただし外部キー制約にON DELETE CASCADEが設定されている)
解説
参照整合性制約は「宙に浮いた参照を許さない」ルール。社員が「部署コード=99」と書かれているのに、部署テーブルに99番の部署が存在しないという状況が違反。また「親を消そうとしたのに子が残る」状況(CASCADE なし)も違反の典型。
なぜ イ が正解か
選択肢イ: 社員テーブルの部署IDを「20」に更新しようとするが、部署テーブルに部署ID=20 は存在しない。外部キー制約は「社員テーブルの部署IDは必ず部署テーブルの部署IDに存在しなければならない」を保証するため、存在しない20への更新は制約違反となる。また選択肢エも CASCADE なしでは違反となる(社員が参照している部署を削除)。
出典: AI生成問題(学習用)