平成26年度 春期 ITパスポート試験 公開問題 問64 解説 関係データベースの主キー
関係データベースの主キーに関する記述のうち,適切なものはどれか。
- ア 各表は,主キーだけで関係付ける。
- イ 主キーの値として,同一のものがあってもよい。
- ウ 主キーの値として,NULLをもつことができない。 ✓ 正答
- エ 複数の列を組み合わせて主キーにすることはできない。
解説
主キーの性質を理解して正解を導く
この問題は、データベース設計における最重要概念である「主キー(Primary Key)」の定義を問うています。主キーを特定するための判断基準は以下の2点に尽きます。
- 重複がないこと(一意性制約)
- 空(NULL)ではないこと(非NULL制約)
この原則さえ押さえていれば、選択肢ウが正しいと直感的に判断できます。
主キーの重要な役割とは
主キーとは、データベースの表(テーブル)の中にある個々の行を、誰が見ても間違いなく特定するための識別子です。たとえば、「社員番号」「商品コード」「注文ID」などがこれに該当します。
もし、ある行を特定しようとしたときに主キーが「空(NULL)」であったり、「他の行と同じ値」であったりしたらどうなるでしょうか。どの行を指しているのか判断できなくなり、データとしての信頼性が失われてしまいます。そのため、データベースシステムでは主キーに対して、自動的にこれら2つの制約が課されるようになっています。
各選択肢の誤り
- ア:表の関係付け(リレーション)には、主キーだけでなく、他の表の主キーを参照する「外部キー」を使用します。主キーだけで関係付けるわけではありません。
- イ:主キーには「一意性制約」があるため、同一の値を持つことは許されません。重複を許すと、どのデータを修正・削除すればよいか特定できなくなります。
- エ:主キーは1つの列だけでなく、複数の列を組み合わせて作成する「複合主キー」も認められています。たとえば、「部署コード」と「社員番号」をセットにして1つの行を特定するようなケースです。
実務での活用シーン
この知識は、システムエンジニアやデータベース管理者がテーブルを設計する際の「設計ルール」そのものです。例えば、会員管理システムを開発する場合、メールアドレスや電話番号を主キーに設定するか、それともシステム側で「会員ID」という連番を自動発行して主キーにするかを検討します。
なぜなら、メールアドレスや電話番号は将来的に変更される可能性があるからです。このように、主キーの定義を正しく理解しておくことは、データ整合性が保たれた壊れにくいシステムを構築するための第一歩となります。