http:www.sip-ac.jp/sip/konan_text/dbm04-02.html,        © 2001 Ayumi Yoshikawa
主観情報処理研究所

データベースマネジメント:正規化(最終更新:2015/12/06 16:33:44 JST)

正規化(その2)

関数従属性(教科書48ページ)

関数従属性とは,フィールド間の方向を持つ関係のことである.方向を持つ関係とは,2つのフィールド間で,一方のフィールドから他方のフィールドが一意に定まるが,逆に他方のフィールドからは一意に定まらない関係のことである.

2つのフィールドをそれぞれX,Yとすると,関数従属性は次のように表現できる.

  1. Xのすべての値について,対応するYの値を常に1件だけ示すことができる
  2. YはXに関数従属する
  3. Xが決まればYが一意に決まる
  4. X→Y(XならばY)
  5. Y=f(X)

フィールド<学籍番号>と<学生氏名>の間で考えると,学籍番号に対しては必ず1つの学生氏名が対応するが,同姓同名が存在する場合があるので,学生氏名からは学籍番号が複数対応する可能性がある.この場合「学生氏名は学籍番号に関数従属する」と言える.

YがXに関数従属するとき,Xをこの関係における候補キー,Yを属性項目あるいは非キーと呼ぶ.

上の学籍番号と学生氏名の関係の場合,学籍番号を候補キーとすると,学生氏名は属性項目になる.

[*]下へ▼ ▲[#]上へ

関数従属性図と関数従属性の推論則

関数従属性図

関数従属性の表現方法として関数従属性図も利用される. 下図の1行目は関数従属性を示したものである.

関数従属性図と従属性の推論則

[*]下へ▼ ▲[#]上へ

関数従属性の推論則

関数従属性には次のような推論則が成り立つ. 関数従属性図による表現は上図の2および3行目を参照のこと.

反射律(自明の関数従属)
一般には属性間にA⊇Bの関係があるときA→Bとなる.図に示したように{A,B}⊇Aが成り立つので{A,B}→Aとなる
増加律
A→Bが成り立つとき,同じCを加えた{A,C}→{B,C}が成り立つ
推移律
A→BおよびB→Cが成り立つとき,A→Cが成り立つ
合併律
A→BおよびA→Cが成り立つとき,A→{B,C}も成り立つ

[*]下へ▼ ▲[#]上へ

部分関数従属(教科書49ページ)

候補キーの全体でなく候補キーの一部に関数従属性が成り立つとき,部分関数従属があるという.教科書49ページの下の例のように,候補キーが{伝票コード,商品コード}の複合キーであるとき,属性項目の商品名と単価は複合キーに関数従属すると同時に,商品コードにも関数従属している.

{d1,d2}が複合主キーで,従属するフィールドとして<d3>と<d4>があるとき,例えば,{d1,d2}→d3とd1→d3の2つの関数従属関係が同時に成り立つとき,部分関数従属性がある.

部分関数従属性

同様に上の例は,反射律から{A,B}→Bが成り立つ.またB→Cとの推移律から{A,B}→Cが成り立つので,Cは{A,B}とBに関数従属するため部分関数従属となる.

[*]下へ▼ ▲[#]上へ

完全関数従属(教科書50ページ)

候補キーだけで完全に属性項目が決定されるとき,完全関数従属であるという.教科書50ページの例参照.

[*]下へ▼ ▲[#]上へ

推移関数従属(教科書50ページ)

属性項目間にさらに関数従属性が存在している関係を推移関数従属であるという.例えば,項目Bが項目Aに関数従属し,さらに項目Cが項目Bに関数従属しているとき,項目Cは項目Aに推移関数従属しているという.教科書51ページの例参照.

{d1,d2}が候補キーで,<d3>と<d4>がそれぞれ属性項目であるとき,{d1,d2}→d3,{d1,d2}→d4,d3→d4が同時成り立つ場合,属性項目間に関数従属性が存在する.

[*]下へ▼ ▲[#]上へ

候補キー間の関数従属性図表現

2つの候補キーは互いに相手を一意に特定することができる. つまりA→BとB→Aが同時に成り立つことになる. よって図示すると下図のようになり,関数従属性は成立しない.

候補キー

[*]下へ▼ ▲[#]上へ

このサイトに関するお問い合わせは,連絡先のページをご覧ください.

このページのボトムへ講義資料このページのトップへ

前のページに戻る  1  2  3  4  次のページへ進む   データベースマネジメントの目次に戻る ,        © 2001 Ayumi Yoshikawa