問題プレビューID: 2e9fe19d

問 33

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

注文

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

顧客

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

参照の整合性(参照制約)は,外部キーの値が参照先の表の主キーとして必ず存在することを保証する制約である。“注文”表の“顧客番号”は“顧客”表の“顧客番号”を参照する外部キーなので,存在しない顧客番号を“注文”表に追加すると参照の整合性を損なう。

  • ア: 顧客番号 L035 を参照している“注文”表の行がないため,削除しても問題ない。
  • イ: 顧客番号 D010 は“顧客”表に存在するため,追加しても問題ない。
  • ウ: 顧客番号 F020 は“顧客”表の主キーに存在しないため,参照先のない外部キーとなり参照の整合性を損なう。
  • エ: 参照する側である“注文”表の行を削除するだけなので問題ない。

よって,参照の整合性を損なう操作はウである。