love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統(tǒng)計

          積分與排名

          friends

          link

          最新評論

          關系數(shù)據(jù)庫設計理論-->3NF

          函數(shù)依賴

          1.函數(shù)依賴定義

          A-> B,即? A函數(shù)決定B ? ,A稱為決定因素。

          2.關系的鍵碼、超鍵碼

          屬性函數(shù)決定關系R的所有其它屬性,并且該屬性的任何真子集都不能函數(shù)決定R的所有其它屬性,則屬性是鍵碼。 鍵碼必須是最小的。

          包含鍵碼的屬性集稱為 超鍵碼 。每個鍵碼都是超鍵碼。

          例題: 已知關系R包含屬性{A,B,C,D},R的鍵碼為{A,B},則下面的選項哪1個是R

          的超鍵碼(? )。

          ? A.{A}??? B.{C,D}?? C.{A,B,C,D}? D.{B,C,D}

          答案:C

          ?

          3.幾個概念

          平凡依賴:如果B是A的子集,則稱該依賴為平凡的。

          非平凡依賴:如果B中至少有一個屬性不在A中,則稱該依賴為非平凡的。

          完全非平凡依賴:如果B中沒有一個屬性在A中,則稱該依賴為完全非平凡的。

          平凡依賴規(guī)則:函數(shù)依賴A1A2 An B1B2 Bm等價于A1A2 An C1C2 Ck,其中?? C是B的子集,但不在A中出現(xiàn)。稱這個規(guī)則為 平凡依賴規(guī)則

          ?

          4.傳遞規(guī)則

          ??? 如果A1A2 An B1B2 Bm和B1B2 Bm C1C2 Ck,在關系R中成立,則A1A2 An C1C2 Ck在R中也成立。這個規(guī)則就稱為傳遞規(guī)則。

          ?

          例題: 現(xiàn)給定一個關系R的實例如下表,則可能是函數(shù)依賴的是( B ).

          ??? Fl

          ??? F2

          ??? R

          ??? F。

          ??? F5

          ??? 李華

          ??? 20020330

          ??? H

          ??? 1

          ??? lO

          ??? 金謙

          ??? 20020330

          ??? 0

          ??? 1

          ??? 5

          ??? 李華

          ??? 20020218

          ??? O? ·

          ??? 3

          ??? 15

          ??? 呂宋

          ??? 200201]5

          ??? H

          ? ?? 2

          ??? 5

          ??? 顧小華

          ??? 20020218

          ??? O

          ??? 1

          ??? 20

          A.F1 F2??????????? B.F1F2→F5

          C.F3 F4→F5??????? D.F2F3→F4

          ?

          學習要點二

          1. 函數(shù)依賴集:假設{A1,A2, An}是屬性集,記為A,S是函數(shù)依賴集。

          屬性集A在依賴集S下的封閉集是這樣的屬性集X,它使得滿足依賴集S中的所有依賴的每個關系也都滿足A X。

          A1A2 An X是蘊含于S中的函數(shù)依賴。

          2.封閉集:

          對于給定的函數(shù)依賴集S,屬性集A函數(shù)決定的屬性的集合就是屬性集A在依賴集S下的封閉集。

          學會計算某屬性集的封閉集,可以根據(jù)給定的函數(shù)依賴集推導蘊含于該依賴集的其他函數(shù)依賴。

          ?

          例題: 假設關系模式為R(A,B,C,D),函數(shù)依賴為A→B,B→C和B→D。

          ??? (1)求蘊含于給定函數(shù)依賴的所有非平凡函數(shù)依賴;

          ??? (2)求R的所有鍵碼;

          ??? (3)求R的所有超碼(不包括鍵碼)。

          ??? 參考答案:

          ??? (1)先求各種屬性組合的封閉集,再從中找出新的函數(shù)依賴。

          ??? A+=ABCD??????? ?B+=BCD? ?C+=C ??D+=D

          ??? A→C,A→D??? (2)

          ??? AB+==ABCD? AC+==ABCD ???AD+=ABCD ?BC+=BCD? ?BD+=BCD

          CD+=CD

          ??? AB→C,AB→D AC→B,AC→D? AD→B,AD→C? BC→D? BD→C

          ??? ABC+=ABCD ?ABD+=ABCD ??BCD+=BCD

          ??? ABC→D? ABD→C???

          ??? ABCD+=ABCD

          ??? 蘊含于給定函數(shù)依賴的非平凡函數(shù)依賴共12個。

          ??? (2)A為鍵碼。

          ??? (3)AB,AC,AD,ABC,ABD,ABCD為超鍵碼。

          ???

          學習要點三

          ?

          1. 幾個概念

          l???????? 主屬性:鍵碼所在的屬性稱為主屬性。

          l???????? 主屬性:鍵碼所在的屬性稱為主屬性。

          l???????? 非主屬性:鍵碼屬性以外的屬性稱為非主屬性。

          l???????? 非主屬性:鍵碼屬性以外的屬性稱為非主屬性。

          l???????? 完全依賴:對于函數(shù)依賴W A,如果存在V是W的真子集而函數(shù)依賴

          ? ??V A成立,則稱A部分依賴于W;若不存在這種V,則稱A完全依賴于W。

          l???????? 傳遞依賴

          ??? 對于函數(shù)依賴X Y,如果X不函數(shù)依賴于Y,而函數(shù)依賴Y Z成立,則稱Z對X傳遞依賴。

          ?

          學習要點四

          1.第一范式(1NF)

          如果一個關系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則這個關系屬于第一范式。

          2.第二范式(2NF)

          若關系模式R屬于第一范式,且每個非主屬性都完全函數(shù)依賴于鍵碼,則R屬于第二范式。

          例題:學生關系模式Student(Sno,Sname,Sdept,Mname,Cname,Grade)。

          ?該關系模式存在如下部分依賴:

          ?? Sno,Cname Sname,Sdept,Mname

          ??? 不滿足 每個非主屬性都完全函數(shù)依賴于鍵碼 的條件。學生關系模式不屬于第二范式。

          3.第三范式(3NF)

          若關系模式R屬于第一范式,且每個非主屬性都不傳遞依賴于鍵碼,則R屬于第三范式。

          4.BC范式(BCNF)

          若關系模式R屬于第一范式,且每個屬性都不傳遞依賴于鍵碼,則R屬于BC范式。

          BC范式的條件表述:

          l???????? 每個非平凡依賴的左邊必須包含鍵碼;每個決定因素必須包含鍵碼。

          l???????? BC范式既檢查非主屬性,又檢查主屬性。

          例題: 寫出3個關系模式分別滿足:

          ? (1)是1NF,不是2NF;

          ? (2)是2NF,不是3NF;

          ? (3)是3NF,也是BCNF。

          ? 各用兩句話分別說明所寫的關系模式是前者,不是(或也是)后者。

          ? 答:(1)學生選課(學號,姓名,課程號,成績)

          ? 屬性不可分,是1NF;存在非主屬性對鍵碼的部分依賴(學號,課程號→姓名),不

          ? 是2NF。

          ??? (2)學生(學號,姓名,系別,系主任)

          ??? 鍵碼為單屬性,不存在部分依賴,是2NF;存在非主屬性對鍵碼的傳遞依賴(學號→

          姓名,系別;系別≯學號;系別→系主任;學號傳遞→系主任),不是3NF。

          ??? (3)學生(學號,姓名,年齡)

          ??? 非主屬性(姓名,年齡)對鍵碼不存在部分依賴和傳遞依賴,是3NF;

          ??? 主屬性(學號)對鍵碼也不存在部分依賴和傳遞依賴,是BCNF。

          ?

          學習要點五

          1.模式分解的三種方法

          1)部分依賴歸子集;完全依賴隨鍵碼。

          ??? 關系模式 升級 第二范式:消除非主屬性對鍵碼的部分依賴。

          解決的辦法:對原有模式進行分解。

          分解的關鍵:找出對鍵碼部分依賴的非主屬性所依賴的鍵碼的真子集,把這個真子集與所有相應的非主屬性組合成一個新的模式;對鍵碼完全依賴的所有非主屬性則與鍵碼組合成另一個新模式。

          ?2)基本依賴為基礎,中間屬性作橋梁

          關系模式 升級 第三范式:消除非主屬性對鍵碼的傳遞依賴。

          解決的辦法:以構成傳遞鏈的兩個基本依賴為基礎形成兩個新的模式,切斷傳遞鏈,保持兩個基本依賴,有中間屬性作為橋梁,跨接兩個新的模式,實現(xiàn)無損的自然連接。

          3)找違例自成一體,舍其右全集歸一

          ??? 關系模式 升級 BC范式:消除非主屬性對鍵碼的部分依賴和傳遞依賴,消除? 主屬性對鍵碼的部分依賴和傳遞依賴。

          解決的辦法:對關系R(A,B,C),若存在BCNF的違例A B ,則R分解為

          R1(A,B)? R2(A,C), R1,R2則為BCNF.

          ?

          例題: 關系模式為R(A,B,C,D),函數(shù)依賴為AB→C,C→D和D→A。

          ??? (1)找出所有違背BCNF的函數(shù)依賴。提示:應該考慮不在給定的依賴集但蘊含于

          其中的依賴;

          ??? (2)關系模式R分解成屬于BCNF的關系模式的集合。

          ??? 參考答案:

          (1)參看主教材P.122例6.1,共有14個非平凡函數(shù)依賴(包括已知的和導出的)

          C→A,C→D,D→A

          AB→C,AB→D,AC→D,BC→A,BC→D,BD→A,BD→C,CD→A

          ABC→D,ABD→C,BCD→A

          ??? 共有3個鍵碼:AB,BC,BD

          ??? 其決定因素不包含鍵碼的函數(shù)依賴即為BC范式的違例,如下所示:

          ??? C→A,C→D,D→A,AC→D,CD→A

          ??? (2)以違例C→D為基礎進行分解:

          ??? Rl(C,D),R2(A,B,C)

          ??? R1屬于BC范式。

          ??? R2有函數(shù)依賴C→A,AB→C,BC→A

          ??? AB+=ABC.BC+=ABC

          ??? AB,BC均為鍵碼。

          ??? 函數(shù)依賴C→A為BC范式違例。于是R2又可分解為:

          ??? R3(A,C),R4(B,C)

          ??? 至此,R分解為R1,R3,R4,均屬于BC范式。

          posted on 2006-05-23 10:44 liaojiyong 閱讀(2956) 評論(0)  編輯  收藏 所屬分類: DBMixture

          主站蜘蛛池模板: 寻乌县| 武强县| 白水县| 德惠市| 仙桃市| 青州市| 承德市| 康定县| 营口市| 保山市| 平邑县| 安塞县| 新巴尔虎左旗| 郧西县| 泊头市| 榆社县| 民县| 卫辉市| 郁南县| 长寿区| 永福县| 亚东县| 元谋县| 易门县| 嘉峪关市| 广宗县| 秦安县| 彝良县| 仙桃市| 梅河口市| 葫芦岛市| 额尔古纳市| 石嘴山市| 塘沽区| 隆昌县| 修水县| 民乐县| 汾西县| 东莞市| 白河县| 宝清县|