|
ライフログ
|
関係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. じつはこの定義のあとに「関数従属性に関する推測論」というのが載っていました。おそらくこの推測論は前述の定義から導かれるのだろうとおもいます。候補キーや主キー、外部キーを列挙させる問題はよく出題されています。もしかしたらこれがわかったらずいぶん楽になるのでは?と期待をしています。 関数従属性に関する推測論
by nwdb
| 2004-11-06 16:02
| データベース
|
リンク
■SQL攻略 実行すれば理解できる
■ITBooks ネットワーク技術の解説とNetwork関連書籍の紹介 受験歴 初級シスアド→2004年春合格 テクニカルエンジニア(ネットワーク) →2004年秋受験 以前の記事
フォロー中のブログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
| |||||||
ファン申請 |
||