No.88 関係データベース"注文"表の"顧客番号"は"顧客"表の主キー"顧客番号"に対応する外部キーである。
このとき、参照の整合性を損なうデータ操作はどれか。
ここで、ア~エの記述におけるデータの並びは、それぞれの表の列の並びと同順とする。
このとき、参照の整合性を損なうデータ操作はどれか。
ここで、ア~エの記述におけるデータの並びは、それぞれの表の列の並びと同順とする。
⭕️
❌
💾
🖊 | ☑️ |
⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
"注文"表の"顧客番号"列が、"顧客"表の"顧客番号"列を参照しています。
例をあげると、"注文"表の外部キーである"顧客番号"列に"C005"の行があるなら、"顧客"表の"顧客番号"列にも"C005"の値をもつ行が存在していなくてはならないということになります。
参照制約が問題になるのは、"注文"表への行の追加の時と、"顧客"表の行の削除でこの処理をチェックしてみることが必要です。
例をあげると、"注文"表の外部キーである"顧客番号"列に"C005"の行があるなら、"顧客"表の"顧客番号"列にも"C005"の値をもつ行が存在していなくてはならないということになります。
参照制約が問題になるのは、"注文"表への行の追加の時と、"顧客"表の行の削除でこの処理をチェックしてみることが必要です。
- "顧客"表の行L035宮崎を削除する。
"注文"表の"顧客番号"列には、"LO35"の値をもつ行がないので削除可能です。 - "注文"表に行0005D010を追加する。
"顧客番号"が"D010"の行は、顧客表にすでに存在しているので、問題なく追加できます。 - "注文"表に行0006F020を追加する。
正しい。"顧客番号"が"F020"の行は、"顧客"表に存在していないので追加できません。このようなときには先に"顧客"表にレコードを追加してから"注文"表への追加を行う必要があります。 - "注文"表の行0002K001を削除する。
この問題の場合、"注文"表の行の削除は特に問題になることはありません。
💾
✔️
[[ d.CommentTxt ]] |
< | > |
🥇 |