候補キー

候補キー（こうほキー、英語：candidate key）は、コンピュータの関係データベースの関係モデルにおいて、スーパーキーのうち、既約 (irreducible) の形のものをいう。

既約とは、ここでは、それを構成する属性（列）のどれか一つでも欠ければ一意性が確保できなくなること、つまり冗長な属性を含まないことをいう。極小 (minimal) ともいう。

要するに、組（行）の識別のために必要な、属性またはその集合が候補キーである。候補キーは、組の「アドレス」あるいは「識別子」だと考えることもできる。

候補キーという名は、それが主キーとして選ばれる候補であるところから由来する。

1つの関係（表）には、関係というものの定義上、少なくとも1つ候補キーが存在する。1つの関係に候補キーが2つ以上存在することもある。

例えば、市町村（市町村ID, 市町村名, 都道府県名）という関係の場合、市町村ID と {市町村名, 都道府県名} が候補キーである。なお、市町村名には多少の重複があるため（府中市など）、市町村名は単独では候補キーにならない。

NULLを許容する候補キーというものを認めるかについては諸説ある。一部の人々は、主キーには認められないが候補キーには認められると、考えている。別の人々は、主キーには認められないし候補キーにも認められないと、考えている。主キーには認められないが候補キーには認められるという考えについては、候補キーのうちの任意に選ばれた一つが主キーであるとする定義とは矛盾する。

なお、SQLの方言における CREATE UNIQUE INDEX 文で指定される一意性制約は、厳密には候補キーとは別の概念であるから、一意性制約にNULLを許すことができるものがあることは、ここでの議論に必ずしも影響しない。

 関連項目 
関係データベース
関係モデル
主キー
スーパーキー
代理キー
関係の正規化
SQL

Category:データベース
Category:データモデリング