関係データベース“注文”表の“顧客番号”は“顧客”表の主キー“顧客番号”に対応する外部キーである。
このとき、参照の整合性を損なうデータ操作はどれか。
ここで、ア〜エの記述におけるデータの並びは、それぞれの表の列の並びと同順とする。
注文
伝票番号 |
顧客番号 |
0001 |
C005 |
0002 |
K001 |
0003 |
C005 |
0004 |
D010 |
|
|
顧客
顧客番号 |
顧客名 |
C005 |
福島 |
D010 |
千葉 |
K001 |
長崎 |
L035 |
宮崎 |
|
ア |
“顧客”表の行 L035 宮崎 を削除する。 |
イ |
“注文”表に行 0005 D010 を追加する。 |
ウ |
“注文”表に行 0006 F020 を追加する。 |
エ |
“注文”表の行 0002 K001 を削除する。 |
答え ウ
【解説】
ア |
“注文”表の顧客番号に L035 がないので削除しても問題ありません。 |
イ |
“顧客”表の顧客番号に D010 があるので追加しても問題ありません。 |
ウ |
“顧客”表の顧客番号に F020 がないので追加すると整合性が損なわれます。 |
エ |
“注文”表のどの行の削除も問題ありません。 |
【キーワード】
・整合性制約
【キーワードの解説】
- 整合性制約
データベースを常に正しい状態に保つために規則です。
整合性制約には、
- 一意性制約
追加、更新する際、列あるいは列のグループに含まれるデータが、テーブル内のすべての行で一意でなければならない。
- 参照制約
複数のテーブルを利用して他のテーブルの値を参照する場合、参照するタプルが必ず存在しなければならない。
- 定義域制約
属性の値が原子値(これ以上細分化できない単純な値)でなければならない。
- 表検査制約
データ挿入又は更新時に条件を満たさないデータの場合は操作を抑止しなければならない。
などがあります。
もっと、「整合性制約」について調べてみよう。
戻る
一覧へ
次へ
|