Skip to content

DBの基本(候補キーとスーパーキーとは)

データベースの基礎として、用語の説明ページです。ここでは、候補キー、スーパーキーを解説します。

候補キーとは

英語だとcandidate keyと呼ばれています。候補キーの定義はスーパーキーの既約(irreducible)のものとされています。ここでの既約とは、それを構成する属性(列)のどれか一つでも欠けると一意性が確保できなくなることです。 つまりは冗長な属性を含まないものとなっています。 また、組(行)を識別するために必要となる属性が候補キーということになります。 候補という名前は主キーになりえる候補というところからきているものになります。主キーの説明は別項目で実施しているので、ご確認ください。

一つの関係には少なくとも一つの候補キーは存在します。(もちろん2つ以上あることもあります。)

候補キーの制約

主キーには2つ制約がありましたが、候補キーの制約は一意性制約のみとなります。 NULL値については、制約にはなりません。(ただし、NULL値についてもあるべきではないという主張もあります。)

スーパーキーとは

英語ではsuper keyです。(そのままです) 関係内の組(行)が一意に特定できる属性(または集合属性)と示します。 候補キーや主キーとの違いは一意に識別できるすべての組み合わせという点が違います。スーパーキーのうち、既約(冗長がない状態)であるならば、それは候補キーとなります。

候補キーとなる属性(または集合属性)に余分な属性を付与すると、それは候補キーではありませんが、スーパーキーです。なので、とある関係におけるスーパーキーと候補キー、主キーの量には以下の関係があります。

  • スーパーキー ≧ 候補キー ≧ 主キー

スーパーキーの制約とは

スーパーキー自体に制約という考え方はありません。スーパーキーは余分な属性を付与してもスーパーキーですので、制約にはなりません。