候補キーとは?こうほきー
候補キーとは、行を一意に識別でき、かつどの属性を取り除いても一意性が失われない(極小である)属性の組。1つの表に複数あってよく、その中から設計者が選んだ1つが主キー、選ばれなかった残りが代替キー。
最終更新:2026-10-07
この語が出る過去問を解く →背景
関係モデルには「何行目」という位置の概念が無く、行を指す手段は値しかない。だから表を設計するときは、まずどの属性の組で行を指せるかを漏れなく洗い出す必要がある。その候補を列挙したものが候補キーで、主キーの決定は列挙が済んで初めて「どれを使うか」の選択になる。列挙を飛ばして主キーを決めると、後から一意性制約を付け忘れた重複が入り込む。
具体例
図書館の蔵書表では、ISBNでも自館の資料IDでも1件を特定できるので候補キーは2つ。資料IDを主キーにするなら、ISBN側にはPostgreSQLならUNIQUE制約を付けて重複を防ぐ。逆に同じ本を複数冊持つならISBNは一意でなくなり、候補キーから外れる。
試験での引っ掛け
一意でありさえすれば候補キーになるわけではなく、極小性が条件。資料IDだけで一意なら〈資料ID+書名〉は一意でも候補キーではない。またNULL不可・重複不可が課されるのは主キーに選んだ後の話で、候補キーであるかどうかはNULLの可否では決まらない。
関連用語
出た過去問
出典:令和2年度 10月試験 高度試験 午前Ⅰ 問9(IPA)
UMLを用いて表した図のデータモデルから、“部品”表、“納入”表及び“メーカ”表を関係データベース上に定義するときの解釈のうち、適切なものはどれか。
正解:部品番号とメーカ番号の組みを“納入”表の候補キーの一部にできる。
要点:多対多を表す関連クラスは両側の主キーを外部キーとして持つ
“納入”は“部品”と“メーカ”の両方に多対1で結び付く関連クラスなので、“納入”表は部品番号とメーカ番号の双方を外部キーとして持つ。同じ部品を同じメーカから複数回納入しうるので、部品番号とメーカ番号だけでは行を一意に識別できないが、納入日などと組み合わせれば候補キーになる。つまり部品番号とメーカ番号の組みは候補キーの一部として使える。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。