問題プレビューID: d7736120

問 31

関係データベースの“注文”表の“顧客番号”は,“顧客”表の主キー“顧客番号”を参照する外部キーである。このとき,参照の整合性を損なうデータ操作はどれか。ここで,ア~エの記述におけるデータの並びは,それぞれの表の列の並びと同順とする。

注文

伝票番号顧客番号
0001C005
0002K001
0003C005
0004D010

顧客

顧客番号顧客名
C005福島
D010千葉
K001長野
L035宮崎
解説

参照の整合性(参照制約)とは、外部キーの値が参照先の主キーとして必ず存在することを保証する制約です。“注文”表の“顧客番号”は“顧客”表の主キー“顧客番号”を参照する外部キーなので、外部キーには“顧客”表に存在する顧客番号しか設定できません。

  • ア: “顧客”表の行 [L035, 宮崎] は“注文”表から参照されていないため、削除しても整合性は損なわれません。
  • イ: “注文”表への [0005, D010] の追加は、D010 が“顧客”表に存在するため問題ありません。
  • ウ: “注文”表への [0006, F020] の追加は、F020 が“顧客”表に存在しないため、参照の整合性を損ないます。
  • エ: “注文”表の行 [0002, K001] の削除は、参照される側の“顧客”表に影響しないため問題ありません。

したがって、正解は「ウ」です。