候補キーの定義
関係Rのどの属性YjもXに関数従属であり(一意性)、Xが極小あるいは非冗長のとき、このXを候補キーまたは単にキーという。Xが極小あるいは非冗長とは、Xから属性の一部を取り除くと、関数従属にならないような属性Y1が存在することを意味する。

最初なにをいっているのかわかりませんでした。
データベース技術 新版(専門分野シリーズ)」(ITEC)のp.51にありました。
例をあげて考えてみましょう。

  学生(学生番号,氏名,学年,学部,学部所在地)
  履修(学生番号,科目名,成績,先生)

という表があったとします。

まず、学生表からみてみましょう。

学生番号をXとします。
その他の属性はYとします。

  学生(X,Y1,Y2,Y3,Y4)

  {学生番号}→{氏名}
  {学生番号}→{学年}
  {学生番号}→{学部}
  {学生番号}→{学部所在地}

学生表のY1,Y2,Y3,Y4も、
学生番号Xに関数従属しています。

では、学生番号Xが極小あるいは非冗長であるかをみてみます。

学生番号という属性がなければ、
Xがないのですから当然ですが
関数従属にはなりえません。

この場合、「どの属性Yjも」というのが重要です。
Y1,Y2,Y3,Y4のうち
ひとつでもXに関数従属していなかったら、
一意性が保たれないのですから、
Xは候補キーにはならないのです。


履修表はどうでしょうか。

  (学生番号科目名,成績,先生)

学生番号と科目名を、候補キーXとします。
その他の属性はYとします。

  履修(X1,X2,Y1,Y2)

となっています。

  {学生番号,科目名}→{成績}
  {学生番号,科目名}→{先生}

学生番号と科目名がわかってはじめて成績がわかります。
学生番号と科目名がわかってはじめて先生がわかります。
どちらかでも欠けてしまったら、
成績Y1,先生Y2は、関数従属しない、ということになります。

X1,X2のどちらか片方でもかけてしまったら、
Xは候補キーにはなりえません。

つまり、学生番号と科目名は、
欠けてはならない。
つまり、両方そろってはじめて、X(候補キー)といえます。

  {学生番号,科目名}

という複合キーなわけです。


p.s.
じつはこの定義のあとに「関数従属性に関する推測論」というのが載っていました。おそらくこの推測論は前述の定義から導かれるのだろうとおもいます。候補キーや主キー、外部キーを列挙させる問題はよく出題されています。もしかしたらこれがわかったらずいぶん楽になるのでは?と期待をしています。

関数従属性に関する推測論

関係Rに複雑な関数従属関係がある場合、属性Xがキーであることを導くためには次に示す関数従属性に関する推測論を用いる。

これらの推測論によりXが関係Rのすべての属性を関数決定することが導ければ、Xはキーである。

1.反射律
Uを関係Rの属性集合とする。Y⊆X⊆Uのとき、X→Yは関数従属である。これは、右辺が左辺に含まれるという自明の従属性を与える。

2.増加律
X→Yが成立し、かつZ⊆Uのとき、XZ→YZが成り立つ。X,Y,Zは属性の集合であり、XZはX∪Zの略記である。

3.推移律
X→YとY→Zが成立すると、X→Zが成立する。

4.合併律
X→Y,X→Zが成立すると、X→YZが成立する。

[PR]
by nwdb | 2004-11-06 16:02 | データベース
<< 関数従属性に関する推測論 候補キーと主キーの違い >>


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

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


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


アクセス解析

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