問題本文
関係データベースにおける主キーに関する記述のうち,適切なものはどれか。
選択肢
- ア.主キーに設定したフィールドの値に1行だけならNULLを設定することができる。
- イ.主キーに設定したフィールドの値を更新することはできない。
- ウ.主キーに設定したフィールドは他の表の外部キーとして参照することができない。
- エ.主キーは複数フィールドを組み合わせて設定することができる。
正解
エ. 主キーは複数フィールドを組み合わせて設定することができる。
解説
リレーショナルデータベースにおける主キー(primary key)は,表の各行(レコード)を一意に識別するために設定するフィールドである. 主キーには2つの重要な制約があり,(1)NOT NULL制約:NULLを設定できない,(2)UNIQUE制約:値が表内で一意でなければならない,という条件を満たす必要がある. また,1つのフィールドで一意性を確保できないテーブルでは,複数のフィールドを組み合わせた複合主キー(合成主キー)として設定することも可能で,複合キーは関連テーブル等で広く使われる. 主キーは他表の外部キーから参照されるのが典型用途で,他表からの参照を禁じる制約はない. 値の更新も一意性が保たれれば技術的には可能.
選択肢ごとの解説
- ア.誤り. 主キーに設定したフィールドの値にはNULLを設定することはできない(NOT NULL制約). 「1行だけならNULLを設定できる」という例外はなく,主キー制約上,いかなる行においてもNULL値は許容されない. 一意識別のための制約として全行で値を持つ必要があるためである.
- イ.誤り. 主キーに設定したフィールドの値は技術的には更新可能で,一意性が保たれていれば変更できる. 「更新することはできない」と断定するのは厳密には誤りで,整合性管理上,主キー値の変更は外部キー参照に影響するため推奨されないが,絶対に不可能というわけではないためこの選択肢は不適切である.
- ウ.誤り. 主キーは他表の外部キーから参照される典型用途を持つフィールドで,参照を禁じる制約はない. むしろ主キーが外部キー参照の対象となるのが標準的なリレーショナルDB設計の基本パターンであり,「参照できない」とする本選択肢はリレーショナルDB設計の原則に明らかに反する記述で誤りである.
- エ.正しい. 主キーは複数のフィールドを組み合わせて設定すること(複合主キー・合成主キー)が可能であり,本問の記述に合致するため. 単一フィールドで一意性を確保できないテーブル(関連テーブルなど)で複合主キーとして活用される,リレーショナルDB設計の基本的な仕組みとして広く用いられる手法である.
ITパスポート 2016年 (平成28年 秋期) の過去問一覧へ戻る・問95