問84
頻出度★★★
関係データベースの主キーに関する記述のうち, 適切なものはどれか。
この問題の解説と、これまでの解答の記録です。
関係データベースの主キーに関する記述のうち, 適切なものはどれか。
表どうしの関連付けは、一方の表の主キーを他方の表が外部キーとして参照することで成立する。参照する側の列は主キーである必要はなく、また参照先も主キーだけとは限らない (一意性制約をもつ列を参照できる実装もある)。「主キーだけで関係付けられる」という断定は誤り。
主キーには実体保全性 (エンティティ整合性) の制約があり、NULL を値としてもつことはできない。NULL は「値が不明・未定」を意味するため、それを許すと行を一意に識別できなくなる。複合主キーの場合は構成するどの項目も NULL にできない。
主キーは一意性制約をもち、同じ表の中で同一の値をもつ行が複数存在してはならない。値の重複を許すと、その値で行を特定できず主キーの役割を果たせない。重複を許してよいのは主キー以外の一般の項目である。
正解 主キーは「表の中の行を一意に識別できること」が要件であり、1 項目だけで一意にできない場合は複数の項目を組み合わせて主キーとしてよい。これを複合主キー (連結キー) と呼ぶ。例えば「受注明細」表では受注番号だけでは行が特定できないが、受注番号と明細行番号を組み合わせれば行を一意に識別できる。したがって「一つの表において、複数の項目を組み合わせて主キーとしてもよい」とする エ が適切である。