平成22年 秋期 基本情報技術者 午前 問33

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

注文
伝票番号 顧客番号
0001 C005
0002 K001
0003 C005
0004 D010
顧客
顧客番号 顧客名
C005 福島
D010 千葉
K001 長崎
L035 宮崎

 ア  “顧客”表の行  L035  宮崎  を削除する。
 イ  “注文”表に行  0005  D010  を追加する。
 ウ  “注文”表に行  0006  F020  を追加する。
 エ  “注文”表の行  0002  K001  を削除する。


答え ウ


解説

 ア  “注文”表の顧客番号に L035 がないので削除しても問題ありません。
 イ  “顧客”表の顧客番号に D010 があるので追加しても問題ありません。
 ウ  “顧客”表の顧客番号に F020 がないので追加すると整合性が損なわれます。
 エ  “注文”表のどの行の削除も問題ありません。


キーワード
・整合性制約

キーワードの解説
  • 整合性制約
    データベースを常に正しい状態に保つために規則です。
    整合性制約には、
    • 一意性制約
      追加、更新する際、列あるいは列のグループに含まれるデータが、テーブル内のすべての行で一意でなければならない。
    • 参照制約
      複数のテーブルを利用して他のテーブルの値を参照する場合、参照するタプルが必ず存在しなければならない。
    • 定義域制約
      属性の値が原子値(これ以上細分化できない単純な値)でなければならない。
    • 表検査制約
      データ挿入又は更新時に条件を満たさないデータの場合は操作を抑止しなければならない。
    などがあります。

もっと、「整合性制約」について調べてみよう。

戻る 一覧へ 次へ