第8問
リレーショナルデータベース(RDB(では定義された複数の表に様々なデータを 格納して処理を行う。下記のようなA 表とB 表がある場合、参照の完全性(参照整 合性ともいう(を保つために必要な事柄として、最も適切なものを下記の解答群か ら選べ。 商品コード 商品名 単価 主キー A 表 商品コード 数量 外部キー 日付 B 表 解答群
- ア B 表の外部キーの値には重複や空の値があってはならない。
- イ B 表の外部キーの値はA 表の主キーに存在しなければならない。
- ウ B 表の行は削除できるが、A 表の行は削除できない。
- エ 商品に関するデータが未登録であった場合、B 表にデータ入力を行う。 DKJC-1F
▼ 解答・解説を見る
正解:イ
解答:イ
参照の完全性(参照整合性)の意味を問う。A表が主キー(商品コード)を持ち、B表がそれを参照する外部キー(商品コード)を持つ。
参照整合性とは、外部キーの値が参照先の主キーに必ず存在する(または NULL)ことを保証する制約である。これにより、存在しない商品コードを持つ明細が生じることを防ぐ。
- ア(×):外部キーには重複が許される(同じ商品が複数回売れる)。また外部キーはNULL(空値)を取り得る場合もあり、「重複や空があってはならない」は主キーの性質と混同しており誤り。
- イ(○):B表(参照する側)の外部キーの値は、A表(参照される側)の主キーに存在しなければならない。これが参照整合性の核心。
- ウ(×):参照整合性の制約は「参照されている親(A表)の行を勝手に削除できない(または連動処理が必要)」という方向で働く。子(B表)の行は削除可だが、A表が一律「削除できない」というのは不正確で、本問の趣旨と異なる。
- エ(×):参照整合性を保つには、まずA表に商品を登録してからB表に明細を入力する必要がある。未登録のままB表へ入力するのは整合性に反し誤り。
よって イ。