候補キーと主キーの違い
候補キーは、主キーの候補となるキーのことであると説明されます。

特定の行を識別できる列(項目)のことを、候補キーといいます。

一般に、候補キー(candidate key)は、
1つの表(リレーション)のなかに複数あることが多いのですが、
このうちの、ただ1つだけをえらんで、主キー(primary key)とします。

候補キーは、複合キー(連結キー)のばあいがあります。
そのうちの1つから主キーをえらびますので、
主キーも複合キーのばあいがあります。

主キーは1つの属性とはかぎりません。
「ただひとつ」というのは、
数ある候補キーの組み合わせのうち1つ、
という意味です。

候補キーをみつけるのはとてもだいじなことです。
そして、そのうちからえらんだたった1つの主キーが
他の表とむすびつけるためのキーになります。

それでは、どのようにキーを選択するのでしょう。

データベース技術 新版(専門分野シリーズ)」(ITEC)のp.34-35の説明をみてみると、
候補キー
関係の中でn個組(行)を一意に識別し、冗長性のない1個または1個以上の属性を候補キーという。関係の中に候補キーは複数個あってもよい。
主キー
候補キーのうちのどれか一つの主たるものを主キーという。主キーは一つの表内にただ一つ定義でき、一意性を保証するためにナル値は認められない。

とあります。
主キーの説明にある、
ナル値は認められない
というところがたいせつです。

つまり、主キーの条件(キー制約)は、
1.一意性制約
2.非ナル制約
ですが、
候補キーの条件は、1の一意性制約のみです。

たとえば、

{登録No,住基コード,氏名,生年月日,住所,電話番号}

という表があったとします。
あたらしい住民を登録するときに、
登録No は、登録する際に自動的に振られる、とします。

登録No は、おなじものはありえませんし、
値がないということもありません。
これは主キーになりえる、といえます。

住基コードですが、
同じ住基コードは日本中に2つとないため、
これは一意であるといえます。
住基コードから行(レコード)を特定できるわけです。

ところが、
データの登録時、
住基コードがわからないときがあるかもしれないとします。
住基コード欄に何も入れない、という状態です。
これをナル値といいます。

ナル値(NULL値)とは、
値の全く入っていない状態を指します。

このとき、住基コードは候補キーではあるが、
主キーではない、といえます。
[PR]
by nwdb | 2004-11-06 13:18 | データベース
<< 候補キーの定義 三重県、図書館の件でNECを指... >>


リンク
■SQL攻略 実行すれば理解できる

■ITBooks ネットワーク技術の解説とNetwork関連書籍の紹介


受験歴
初級シスアド
→2004年春合格
テクニカルエンジニア(ネットワーク)
→2004年秋受験


アクセス解析

以前の記事
フォロー中のブログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧