この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

関係データベース(リレーショナルデータベース)における外部キー(Foreign Key)は参照整合性制約を実現するためのキー制約。外部キーの値は参照先テーブルの候補キー(通常は主キー)に存在する値でなければならない(またはNULL)。外部キーの特性:①参照先の候補キーに存在する値または NULLのみ設定可能(参照整合性)②外部キー自体の値は重複可能(主キーのような一意性制約なし)③NULLを許可(参照先なし・未定の関係を表現)④一つのテーブルに複数の外部キーを定義可能(複数の他テーブルを参照)。例えば受注テーブルが顧客テーブルと商品テーブルの両方を参照する場合、顧客IDと商品IDの2つの外部キーが同一テーブルに存在する。外部キー制約が設定されると参照整合性が自動的に保証され、参照先に存在しない値の挿入や、外部キーから参照されている行の削除が禁止される。

なぜ他の選択肢は違うのか

選択肢 ア
外部キーの値に一意性制約は不要。同じ顧客が複数回注文すれば受注テーブルの顧客ID(外部キー)は同じ値が複数行に存在するのが当然の設計であり、外部キーが重複していても参照整合性は保たれる。一意性制約が必要なのは参照される側の候補キー(主キー・一意キー)であり、参照する側の外部キーには一意性は求められない。
選択肢 イ
外部キーは参照する候補キーと同じデータ型(型互換性・比較可能性)がなければならない。例えばINT型の主キーを参照する外部キーはINT型で定義する必要があり、VARCHAR型とINT型など比較不能な型の組み合わせは参照整合性を検証できないためDBMSが外部キー定義時にエラーを返す。型の一致は参照整合性の前提条件。
選択肢 ウ
参照整合性制約の根本原則は「外部キーの値は参照先テーブルの候補キーに必ず存在しなければならない(またはNULL)」こと。存在しない値(ダングリング参照・ゴースト参照)を許可すると、削除された行への参照が残ったり、存在しない顧客への受注が作られる矛盾が生じる。DBMSはこの制約を強制することでデータ一貫性を保証する。

解くときのポイント

外部キー制約の特性: ①参照先に存在する値のみ設定可(参照整合性)②値の重複は許可③NULLは許可(参照先なし)④一つのテーブルに複数定義可能。