版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章關(guān)系規(guī)范化函數(shù)依賴
函數(shù)依賴/完全依賴/部分依賴/傳遞依賴范式范式第一/第二/第三/BC/第四范式
關(guān)系模式規(guī)范化Armstrong公理函數(shù)依賴集閉包屬性集閉包最小函數(shù)依賴集關(guān)系模式分解關(guān)系模式的分解算法1第6章關(guān)系規(guī)范化2問題1:邏輯模型中的關(guān)系模式,是否可以使用?
問題2:EBook中的Book、Cust、Press、Buy是否可用如下BInfo替代?BInfo(BNo,BName,Author,EditNo,Price,PPrice,SPrice,CNo,CName,CSex,Birth,Phone,Marry,Photo,Email,PNo,PName,PCode,PAddr,Email,HPage,PDate)分析1:購買圖書的每個(gè)客戶,不但需要添加客戶信息、書號(hào)和購買日期等必要信息,而且還要重復(fù)添加圖書和出版社的全部信息(數(shù)據(jù)冗余)。分析2:如果刪除部分下架的圖書信息,則會(huì)把購買這些書的的客戶信息和出版社信息一起刪除,這是絕對不合理的(刪除異常)。顯然:使用Book、Cust、Press和Buy,明顯優(yōu)于使用BInfo!結(jié)論:邏輯模型中的關(guān)系模式,不能直接使用,需要進(jìn)行規(guī)范化(本章內(nèi)容),從而在一定程度上解決數(shù)據(jù)冗余、插入異常、修改異常和刪除異常等方面的問題。思考:從數(shù)據(jù)冗余、插入異常、修改異常和刪除異常等方面,進(jìn)一步分析單表BInfo的不合理性。6.1函數(shù)依賴函數(shù)依賴完全依賴部分依賴傳遞依賴多值依賴36.1.1函數(shù)依賴4定義6.1設(shè)R(U)是屬性集U上的關(guān)系模式,X和Y是U的子集。對于R(U)的任意關(guān)系的任意元組t1,t2,如果t1[Y]≠t2[Y],成立t1[X]≠t2[X](即:不存在t1,t2,使得t1[X]=t2[X],而t1[Y]≠t2[Y])。則稱X函數(shù)確定Y(即:X→Y)或Y函數(shù)依賴于X。如果X→Y,并且Y→X,則稱X與Y互相函數(shù)依賴。記為:X←→Y。如果X不函數(shù)確定Y,則記為:XY。提示:對于關(guān)系模式R(U),如果成立X→Y,則對R(U)的任意關(guān)系均成立X→Y。例如:在BInfo中,則存在函數(shù)依賴:BNo→BName;BNo→Author;BNo→PNo;BNo→EditNo;BNo→Price但是:BnameAuthor;BNamePNo。6.1.1函數(shù)依賴5如果X→Y,且Y
X,則稱X→Y是平凡函數(shù)依賴。即:集合的任意子集均平凡函數(shù)依賴于自身。亦即:平凡函數(shù)依賴總是成立的。如果X→Y,但Y
X,則稱X→Y是非平凡函數(shù)依賴。說明:若無特殊聲明,則函數(shù)依賴均指非平凡函數(shù)依賴。例如:在BInfo中,存在函數(shù)依賴:
非平凡函數(shù)依賴:(BNo,CNo)→PDate
平凡函數(shù)依賴:(BNo,CNo)→(BNo,CNo);(BNo,CNo)→BNo;(BNo,CNo)→CNo。說明:(X,Y)→Y簡記為XY→Y;(X,Y)→(X,Y)簡記為XY→XY。函數(shù)依賴集:R(U)的所有函數(shù)依賴的集合。記為:F={函數(shù)依賴}。所以:R(U)可以進(jìn)一步表示為R(U,F(xiàn))。6.1.1函數(shù)依賴6例6.1BInfo可以表示為:BInfo(U,F(xiàn))U={BNo,CNo,BName,Author,EditNo,Price,PPrice,SPrice,CName,CSex,Birth,Phone,Marry,Photo,Email,PNo,PName,PCode,PAddr,Email,HPage,PDate}F={BNo→(BName,Author,PNo,EditNo,Price,PPrice,SPrice),CNo→(CName,CSex,Birth,Marry,Photo,Email),PNo→(PName,PCode,PAddr,Phone,Email,HPage,
(CNo,BNo)→PDate}6.1.1函數(shù)依賴7例6.2如果R(A,B,C,D,E)存在函數(shù)依賴A→B;A→C;A→D;C→D;BC→E。則R(A,B,C,D,E)可以表示如下:R(U,F(xiàn))U={A,B,C,D,E}F={A→B,A→C,A→D,C→D,BC→E}6.1.2完全依賴和部分依賴8定義6.2在R(U,F(xiàn))中,如果X→Y,且對于X的任何一個(gè)真子集X’,都滿足X’Y(即:Y不函數(shù)依賴于X的任意真子集,只依賴于X本身)。則稱Y完全函數(shù)依賴于X,記作XY。定義6.3在R(U,F(xiàn))中,如果X→Y,且Y不完全函數(shù)依賴于X。則稱Y部分函數(shù)依賴于X,記作XY。例如:在BInfo中,由于:BNoPDate,而且CNoPDate。因此:(BNo,CNo)PDate例如:在R(A,B,C,D,E)中,如果F={A→C,AB→D,AB→E,C→E}。則ABC;ABD;ABE。根據(jù)定義6.1和定義6.2,則候選鍵可以進(jìn)一步描述:在R(U,F(xiàn))中X
U,如果XU,則X是候選鍵。例如:在例6.1中,(BNo,CNo)是BInfo的候選鍵。在例6.2中,AB是R的候選鍵。提示:利用“屬性集的閉包”可以給出“候選鍵”更直觀的解釋。6.1.3傳遞依賴9定義6.4在R(U,F(xiàn))中,如果X→Y,Y→Z,并且YX。則稱Z傳遞函數(shù)依賴于X。記為:XZ。說明:在定義6.4中,X→Y和Y→Z均為非平凡依賴。如果Y→X,則X←→Y,會(huì)導(dǎo)致Z直接依賴于X。所以X→Y、Y→Z和Y→X會(huì)導(dǎo)致非本質(zhì)上的傳遞依賴。例如:在BInfo中,成立BnoPName;BnoPCode。6.2范式范式第一范式第二范式第三范式BC范式第四范式106.2.1范式11范式:是滿足系統(tǒng)規(guī)范要求的關(guān)系模式的集合。規(guī)范化的關(guān)系模式的集合。在實(shí)際應(yīng)用中,邏輯模型中的關(guān)系模式一般必須達(dá)到系統(tǒng)的規(guī)范要求。根據(jù)不同應(yīng)用需求,可以把滿足不同規(guī)范要求的關(guān)系模式分為:第一范式(FirstNormalForm,1NF)第二范式(2NF)第三范式(3NF)BC范式(BoyceCoddNormalForm,BCNF)第四范式(4NF)第五范式(5NF)。1NF、2NF和3NF是關(guān)系規(guī)范化的基本要求。如果關(guān)系模式R滿足第n范式,則記為R∈nNF。6.2.1范式12范式之間的關(guān)系如下(如圖6.1所示):1NF2NF3NFBCNF4NF5NF6.2.2第一范式13定義6.5如果R(U,F(xiàn))的所有屬性都是不可再分的最小數(shù)據(jù)項(xiàng),則稱R滿足1NF。即:R∈1NF。1NF是關(guān)系模式必須滿足的最低要求。即關(guān)系數(shù)據(jù)庫系統(tǒng)必須滿足1NF。通常滿足1NF的關(guān)系模式,存在較多的冗余數(shù)據(jù),而且存在插入異常、修改異常和刪除異常等問題,從而會(huì)破壞數(shù)據(jù)完整性6.2.3第二范式14定義6.6如果R(U,F(xiàn))∈1NF,并且R的每一個(gè)非主屬性都完全函數(shù)依賴于R的候選鍵,則R∈2NF。2NF的等價(jià)描述:對于R(U,F(xiàn))∈1NF,如果存在非主屬性部分函數(shù)依賴于R的候選鍵,則R∈2NF。例6.3在例1.1的BInfo中,則:判斷BInfo∈2NF?,如果不是,則分解相應(yīng)的關(guān)系模式,使之滿足2NF。(1)預(yù)處理:判斷BInfo是否存在計(jì)算型屬性。如果存在,則從BInfo中去掉該冗余屬性。例如:如果在BInfo中,存在利潤BProfit屬性,則利潤可以由進(jìn)價(jià)和售價(jià)導(dǎo)出。即:BProfit=SPrice-PPrice(2)1NF判斷:分析BInfo的屬性可知,每個(gè)屬性均為不可再分的屬性,因此BInfo∈1NF。不難看出,在BInfo的關(guān)系中,存在大量的冗余數(shù)據(jù)。6.2.3第二范式15(3)確定候選建在BInfo中,戶號(hào)確定客戶的其它屬性;書號(hào)確定圖書的其它屬性;社號(hào)確定出版社的其它屬性;戶號(hào)和書號(hào)確定購買日期。BInfo的函數(shù)依賴關(guān)系如圖6.2所示。BInfo的候選鍵為(BNo,CNo);BNo和CNo為主屬性;其它為非主屬性。CNoCNameCSexBirthMarryPhotoEmail
CNoBNoPNamePCodePAddrPhoneEmailHPageBNoBNameAuthorEditNoPNoPricePPriceSPricePDate6.2.3第二范式16(4)2NF分解在BInfo中,由于存在函數(shù)依賴:BNo→(BName,Author,PNo,EditNo,Price,PPrice,SPrice)CNo→(CName,CSex,Birth,Marry,Photo,Email)PNo→(PName,PCode,PAddr,Phone,Email,HPage)則存在非主屬性對候選建的部分函數(shù)依賴:
(BNo,CNo)(BName,Author,PNo,EditNo,Price,PPrice,SPrice)(BNo,CNo)(CName,CSex,Birth,Marry,Photo,Email)(BNo,CNo)(PName,PCode,PAddr,Phone,Email,HPage)不難看出,BInfo中存在三組非主屬性對候選鍵的部分依賴,因此R2NF。因此采用投影分解法,把導(dǎo)致R2NF的部分函數(shù)依賴進(jìn)行如下分解:6.2.3第二范式17BInfo=Cust∪PressBook∪Buy1)Cust(U1,F1):U1={CNo,CName,CSex,Birth,Marry,Photo,Email}F1={CNo→(CName,CSex,Birth,Marry,Photo,Email)}2)Buy(U2,F2):U2={BNo,CNo,PDate}F2={(BNo,CNo)→PDate}3)PressBook(U3,F3):U3={BNo,BName,Author,EditNo,Price,PPrice,SPrice,PNo,PName,PCode,PAddr,Phone,Email,HPage}F3={BNo→(BName,Author,PNo,EditNo,Price,PPrice,SPrice),PNo→(PName,PCode,PAddr,Phone,Email,HPage)}不難證明,Cust∈2NF,PressBook∈2NF,Buy∈2NF。6.2.3第二范式BInfo的2NF分解結(jié)果18
CNoCNameCSexBirthMarryPhotoEmail
CNoBNoPNamePCodePAddrPhoneEmailHPageBNoBNameAuthorEditNoPNoPricePPriceSPricePDate提示:在進(jìn)行2NF分解時(shí),一般需要把包含候選鍵的屬性集合及其相應(yīng)的函數(shù)依賴單獨(dú)分解出來,因?yàn)樗沁B接的基本條件例如:(BNo,CNo)PDate,盡管它存在一定的數(shù)據(jù)冗余
6.2.3第二范式19例6.4R(U,F):U={A,B,C,D,E};F={AD→E,A→B,B→C}。判斷R(U,F)∈2NF?,如果不是,則分解R(U,F),使之滿足2NF。(1)確定候選建根據(jù)F不難看出,R(U,F)的候選建為AD。A和D為主屬性;B,C和E為非主屬性。(2)判斷是否存在部分函數(shù)依賴因?yàn)椋篈→B,B→C,所以:ADB和ADC。即:B和C均部分函數(shù)依賴于AD。因此:R(U,F)2NF。R(U,F)的2NF分解結(jié)果如下:R1(U1,F1)=({A,D,E},{AD→E})R2(U2,F2)=({A,B,C},{A→B,B→C})不難證明,R1(U1,F1)∈2NF,R2(U2,F2)∈2NF。6.2.3第二范式20提示:2NF雖然在一定程度上解決了插入異常、修改異常、刪除異常和冗余數(shù)據(jù)等問題,但2NF一般也不是最理想的關(guān)系模式,仍然會(huì)破壞數(shù)據(jù)完整性。結(jié)論:解決不滿足2NF的方法是分解關(guān)系模式,消除所有非主屬性對候選鍵的部分函數(shù)依賴關(guān)系。即:對于R∈1NF,只要存在一個(gè)非主屬性部分函數(shù)依賴于R的候選鍵,則R2NF。6.2.4第三范式定義6.7如果R(U,F(xiàn))∈2NF,且R的每個(gè)非主屬性都不傳遞函數(shù)依賴于R的候選鍵,則R∈3NF。顯然,如果R∈3NF,則R的每個(gè)非主屬性,既不部分函數(shù)依賴于候選鍵,也不傳遞函數(shù)依賴于候選鍵。即:如果R∈3NF,則R∈2NF。例6.5在例6.3中,則:判斷BInfo∈3NF?,如果不是,則分解相應(yīng)的關(guān)系模式,使之滿足3NF。分析:在例6.3中,顯然成立:Cust(U1,F1)∈3NF,Buy(U2,F2)∈3NF。那么:PressBook(U3,F3)∈3NF?(1)確定候選建根據(jù)F3不難看出,PressBook的候選建為BNo。BNo為主屬性;其他屬性為非主屬性。216.2.4第三范式(2)3NF分解在F3中,因?yàn)榇嬖谌缦潞瘮?shù)依賴:BNo→(BName,Author,PNo,EditNo,Price,PPrice,SPrice)PNo→(PName,PCode,PAddr,Phone,Email,HPage)所以:非主屬性PName,PCode,PAddr,Phone,Email和HPage均傳遞依賴于候選鍵BNo,即:BNo(PName,PCode,PAddr,Phone,Email,HPage)所以:PressBook(U3,F3)3NF。因此:采用投影分解法,把導(dǎo)致PressBook3NF的傳遞函數(shù)依賴進(jìn)行分解。226.2.4第三范式PressBook的3NF分解結(jié)果如下:PressBook=Press∪Book1)Book(U4,F4):U4={BNo,BName,Author,PNo,EditNo,Price,PPrice,SPrice}F4={BNo→(BName,Author,PNo,EditNo,Price,PPrice,SPrice)}2)Press(U5,F5):U5={PNo,PName,PCode,PAddr,Phone,Email,HPage}F5={PNo→(PName,PCode,PAddr,Phone,Email,HPage)}不難證明,Book(U4,F4)∈3NF,Press(U5,F5)∈3NF。236.2.4第三范式PressBook的3NF分解如圖6.4所示。24
CNoCNameCSexBirthMarryPhotoEmail
CNoBNoPNamePCodePAddrPhoneEmailHPageBNoBNameAuthorEditNoPNoPricePPriceSPricePDate
提示:在進(jìn)行3NF分解時(shí),一般需要把中間起傳遞作用的屬性集合同時(shí)分配到分解前后的關(guān)系模式中。因?yàn)樗沁B接的基本條件,盡管它存在一定的數(shù)據(jù)冗余。例如:BNo→PNo,PNo→(PName,PCode,PAddr,Phone,Email,HPage),所以把PNo同時(shí)分配到Book和Press中。BInfo的最終3NF分解結(jié)果Cust(U1,F1):U1={CNo,CName,CSex,Birth,Marry,Photo,Email}F1={CNo→(CName,CSex,Birth,Marry,Photo,Email)}Buy(U2,F2):U2={BNo,CNo,PDate}F2={(BNo,CNo)→PDate}Book(U4,F4):U4={BNo,BName,Author,PNo,EditNo,Price,PPrice,SPrice}F4={BNo→(BName,Author,PNo,EditNo,Price,PPrice,SPrice)}Press(U5,F5):U5={PNo,PName,PCode,PAddr,Phone,Email,HPage}F5={PNo→(PName,PCode,PAddr,Phone,Email,HPage)}
思考:分析BInfo的分解過程與EBook的“E-R圖向關(guān)系模式轉(zhuǎn)換過程”的區(qū)別。256.2.4第三范式例6.6在例6.4的R(U,F)中,請判斷R(U,F)∈3NF?如果不是,則分解相應(yīng)的關(guān)系模式,使之滿足3NF。對于R(U,F)的2NF分解結(jié)果,則顯然成立R1(U1,F1)∈3NF。那么:R2(U2,F2)∈3NF?由于在F2中存在:A→B,B→C,所以非主屬性C傳遞依賴于候選鍵A,即:AC。所以:R2(U2,F2)3NF。因此采用投影分解法,把導(dǎo)致3NF的傳遞函數(shù)依賴進(jìn)行分解如下:R2=R21∪R221)R21(U21,F21):U21={A,B};F21={A→B}2)R22(U22,F22):U22={B,C};F22={B→C}不難證明:R21(U21,F21)∈3NF,R22(U22,F22)∈3NF。266.2.4第三范式如果R(U,F(xiàn))∈1NF,并且R的每個(gè)非主屬性都不傳遞函數(shù)依賴于R的候選鍵,則R不一定滿足3NF。反例如下:例6.7關(guān)系模式BuyTest(U,F)如下(如圖6.5所示):U={BNo,BName,CNo,CName,PDate}F={BNo→BName,CNo→CName,(BNo,CNo)→PDate}則:BuyTest(U,F)3NF。276.2.4第三范式根據(jù)BuyTest(U,F)的F不難看出,(BNo,CNo)是BuyTest(U,F)的唯一候選鍵,而且非主屬性BName和CName均部分函數(shù)依賴于候選鍵(BNo,CNo),因此BuyTest(U,F)2NF,又因?yàn)?NF
3NF,從而BuyTest(U,F)3NF。但是:BuyTest(U,F)∈1NF,并且根據(jù)傳遞函數(shù)依賴的定義,BuyTest(U,F)的每一個(gè)非主屬性都不傳遞函數(shù)依賴于候選鍵(BNo,CNo)。28
CNameCNoBNoBNamePDate
6.2.4第三范式思考:如果R(U,F(xiàn))無非主屬性,則R∈3NF?提示:3NF雖然在一定程度上解決了插入異常、修改異常、刪除異常和冗余數(shù)據(jù)等問題,但3NF一般也不是最理想的關(guān)系模式,仍然會(huì)破壞數(shù)據(jù)完整性。結(jié)論:解決不滿足3NF的方法是分解關(guān)系模式,消除所有非主屬性對候選鍵的部分函數(shù)依賴關(guān)系和傳遞函數(shù)依賴關(guān)系。即:對于R∈1NF,只要存在一個(gè)非主屬性部分函數(shù)依賴于R的候選鍵,或者存在一個(gè)非主屬性傳遞函數(shù)依賴于R的候選鍵,則R3NF。296.2.5BC范式定義6.8對于R(U,F(xiàn))∈1NF的任意非平凡函數(shù)依賴X→Y,如果X必含有候選鍵,則R∈BCNF。根據(jù)定義6.8不難證明:如果R∈BCNF,則R的所有屬性(主屬性+非主屬性)均完全函數(shù)依賴于R的候選鍵,且均不傳遞依賴于R的候選鍵。即:BCNF在3NF的基礎(chǔ)上,進(jìn)一步消除了主屬性對候選鍵的部分函數(shù)依賴和傳遞函數(shù)依賴。BCNF的等價(jià)描述:如果R(U,F)∈1NF,則R的每個(gè)屬性既不部分,也不傳遞函數(shù)依賴于R的候選鍵。不難證明,以下結(jié)論成立:(1)如果R∈BCNF,則R∈3NF;如果R∈3NF,則R不一定滿足BCNF。(2)如果R∈3NF,且R只有一個(gè)候選鍵,則R∈BCNF。(3)如果R的候選鍵為全鍵,則R∈BCNF。306.2.5BC范式例6.8如果R(A,B,C,D)∈1NF的函數(shù)依賴集為F={AB→D,D→C},則RBCNF。因?yàn)椋篟的唯一候選鍵為AB,對于F中的函數(shù)依賴D→C,D不包含候選鍵,所以R(A,B,C,D)BCNF。R的BCNF分解結(jié)果:R=R1∪R2R1(U1,F1)=({A,B,D},{AB→D})R2(U2,F2)=({D,C},{D→C})顯然:R1(U1,F1)∈BCNF,R2(U2,F2)∈BCNF。思考:R(A,B,C,D)∈3NF?說明原因。316.2.5BC范式例6.9如果R(A,B,C)∈1NF的函數(shù)依賴集為F={AB→C,BC→A},則R∈BCNF。因?yàn)椋篟的候選鍵為AB和BC,由于R(A,B,C)的每個(gè)非平凡函數(shù)依賴均包含候選鍵,根據(jù)定義6.8可知,R(A,B,C)∈BCNF。例6.10如果R(A,B,C)∈1NF的函數(shù)依賴集為F={AB→C,AC→B,B→C},則RBCNF。因?yàn)椋篟的候選鍵為AB和AC,對于F中的函數(shù)依賴B→C,B不包含候選鍵,所以:R(A,B,C)BCNF。R的BCNF分解結(jié)果:R=R1∪R2R1(U1,F1)=({A,B},
)R2(U2,F2)=({B,C},{B→C})顯然:R1(U1,F1)∈BCNF,R2(U2,F2)∈BCNF。
思考:R(A,B,C)是否滿足3NF?說明原因。326.2.5BC范式例6.11如果R(A,B,C)∈1NF的函數(shù)依賴集為空集(F=
),則R∈BCNF。因?yàn)椋篎=
,所以A,B,C之間不存在任何函數(shù)依賴關(guān)系。所以:R的候選鍵為ABC(即:全鍵)。因此,R(A,B,C)∈BCNF。結(jié)論:解決不滿足BCNF的方法是分解關(guān)系模式,消除所有屬性對候選鍵的部分函數(shù)依賴關(guān)系和傳遞函數(shù)依賴關(guān)系。即:對于R∈1NF,只要存在一個(gè)屬性部分函數(shù)依賴于R的候選鍵;或者存在一個(gè)屬性傳遞函數(shù)依賴于R的候選鍵;或者存在一個(gè)函數(shù)依賴,其決定屬性集不包含R的候選鍵,則RBCNF。在函數(shù)依賴的范疇內(nèi),BCNF達(dá)到了范式規(guī)范化的最高級別,實(shí)現(xiàn)了函數(shù)依賴的“徹底分離”,已經(jīng)“基本上”解決了插入異常、修改異常和刪除異常等問題。思考:滿足BCNF的關(guān)系模式R存在冗余數(shù)據(jù)嗎?插入、修改和刪除是否出現(xiàn)異常?R是最理想的關(guān)系模式嗎?R存在多值依賴嗎?336.2.6第四范式定義6.9對于關(guān)系模式R(U,F(xiàn)),X和Y是U的子集,且Z=U-X-Y。如果R的關(guān)系中存在元組s1=(x,y1,z1)和s2=(x,y2,z2),則R的關(guān)系中一定存在元組t1=(x,y2,z1)和t2=(x,y1,z2),則稱Y多值依賴于X,記為X→→Y。其中:x,yi,zi(i=1,2)分別為元組在X,Y,Z上的分量值。在定義6.9中,通過分析s1,s2與t1,t2的特征,不難發(fā)現(xiàn)t1,t2是交換s1,s2的Y分量值后所得到的兩個(gè)元組,而且s1,s2與t1,t2的X,Z的分量值保持不變。多值依賴的等價(jià)定義:定義6.10對于關(guān)系模式R(U,F(xiàn)),X和Y是U的子集,且Z=U-X-Y。如果R的關(guān)系在(X,Z)上的每個(gè)值所對應(yīng)的一組Y值,只取決于X值而與Z值無關(guān),則稱Y多值依賴于X。346.2.6第四范式對于定義6.9和定義6.10的分析:對于定義6.9中的四個(gè)元組,假設(shè)s1,s2,t1,t2這四個(gè)元組組成的關(guān)系為S,則S在(X,Z)上的值x,z1(或x,z2)所對應(yīng)的一組Y值{y1,y2},只決定于X值x(即:x→(y1,y2)),而與Z值z1(或z2)無關(guān)。即:s1=(x,y1,z1)和t1=(x,y2,z1)在(X,Z)上的值x,z1,所對應(yīng)的Y值為{y1,y2},只取決于X值x,而與Z值z1無關(guān)。亦即:s2=(x,y2,z2)和t2=(x,y1,z2)在(X,Z)上的值x,z2,所對應(yīng)的Y值仍然為{y1,y2},只取決于X值x,而與Z值z2無關(guān)。約定:若X→→Y,而Z=
,則X→→Y稱為平凡多值依賴;否則為非平凡多值依賴。356.2.6第四范式例6.12對于關(guān)系模式:配送(書庫,職工,圖書),要求每個(gè)書庫有多個(gè)職工和多種圖書,同時(shí)要求每個(gè)職工管理所在書庫的圖書(如表6.1所示)。36書庫職工圖書庫1張磊高等數(shù)學(xué)庫1張磊圖像分析庫1張磊Java語言庫1李麗高等數(shù)學(xué)庫1李麗圖像分析庫1李麗Java語言庫2王娟數(shù)據(jù)結(jié)構(gòu)庫2王娟軟件工程庫2孫亮數(shù)據(jù)結(jié)構(gòu)庫2孫亮軟件工程6.2.6第四范式(1)根據(jù)定義6.9判斷配送的多值依賴設(shè)X={書庫},Y={職工},Z={圖書},對于配送關(guān)系中的元組:s1=(庫1,張磊,高等數(shù)學(xué))和s2=(庫1,李麗,圖像分析),則:t1=(庫1,李麗,高等數(shù)學(xué))和t2=(庫1,張磊,圖像分析)也在配送關(guān)系中。因此,職工多值依賴于書庫。(2)根據(jù)定義6.10判斷配送的多值依賴設(shè)X={書庫},Y={職工},Z={圖書},則配送在(X,Z)上的值:(庫1,高等數(shù)學(xué))、或(庫1,圖像分析)、或(庫1,Java語言)所對應(yīng)的一組Y值{張磊,李麗},只取決于X值:庫1(即:庫1→(張磊,李麗)),而與Z值高等數(shù)學(xué)、或圖像分析、或Java語言無關(guān)。因此,職工多值依賴于書庫。
思考:分析圖書對書庫的多值依賴關(guān)系。376.2.6第四范式因?yàn)榕渌椭写嬖诙嘀狄蕾?,從而?dǎo)致表6.1中存在大量的冗余數(shù)據(jù)、插入/修改/刪除數(shù)據(jù)復(fù)雜等問題。多值依賴的基本性質(zhì):(1)如果X→→Y,則X→→Z,其中Z=U-X-Y(對稱性)。(2)如果X→→Y,Y→→Z,則X→→Z–Y(傳遞性)。(3)如果X→Y,則X→→Y(函數(shù)依賴是多值依賴的特例)。(4)如果X→→Y,X→→Z,則X→→Y∪Z。(5)如果X→→Y,X→→Z,則X→→Y∩Z。(6)如果X→→Y,X→→Z,則X→→Y-Z,X→→Z-Y。(7)如果X→→Y在U上成立,則在W(X∪Y
W
U)上一定成立;反之不真。(8)如果X→→Y,且Z
Y,則X→→Z不一定成立。386.2.6第四范式定義6.11如果R(U,F)∈1NF的每個(gè)非平凡多值依賴X→→Y(Y
X),X都含有候選鍵,則R∈4NF。顯然,如果R∈4NF,則R∈BCNF。根據(jù)定義6.11不難證明,4NF不允許存在非平凡且非函數(shù)依賴的多值依賴。例如:在例6.12中,配送(書庫,職工,圖書)的候選鍵是全鍵,則配送∈BCNF,但是,配送不滿足4NF,因?yàn)榕渌痛嬖诙嘀狄蕾嚕簳鴰臁芾韱T;書庫→→圖書。采用投影分解法,配送的4NF分解結(jié)果:配送1(書庫,管理員),配送2(書庫,圖書)。396.2.6第四范式結(jié)論:解決不滿足4NF的方法是分解關(guān)系模式,消除所有非平凡且非函數(shù)依賴的多值依賴。即:對于R∈1NF,只要存在一個(gè)多值依賴X→→Y,但是X不包含R的候選鍵,則R4NF。在多值依賴的范疇內(nèi),4NF達(dá)到了范式規(guī)范化的最高級別,并“基本上”解決了數(shù)據(jù)冗余、插入異常、修改異常和刪除異常等問題。但是4NF仍然存在一定的問題。因此需要使用連接依賴,使關(guān)系模式達(dá)到更高級的范式5NF。即:對于R∈4NF,如果消除關(guān)系模式中的連接依賴,則R∈5NF。連接依賴和5NF的有關(guān)內(nèi)容,請參閱相關(guān)文獻(xiàn)。40關(guān)系模式的規(guī)范化過程41BCNF4NF3NF5NF2NF1NF消除連接依賴消除非平凡且非函數(shù)依賴的多值依賴
消除主屬性對候選鍵的部分和傳遞函數(shù)依賴消除非主屬性對候選鍵的傳遞函數(shù)依賴
消除非主屬性對候選鍵的部分函數(shù)依賴6.3關(guān)系模式規(guī)范化規(guī)范化:分解低級關(guān)系模式使其轉(zhuǎn)換為高級關(guān)系模式的過程(范式分解Armstrong公理函數(shù)依賴集閉包屬性集閉包最小函數(shù)依賴集關(guān)系模式分解關(guān)系模式的分解算法426.3.1Armstrong公理43Armstrong公理作為關(guān)系模式規(guī)范化的核心,可以解決如下問題:(1)計(jì)算函數(shù)依賴的閉包
。(2)確定關(guān)系模式的候選鍵。(3)計(jì)算屬性集合的閉包
。(4)計(jì)算最小函數(shù)依賴集Fmin。定義6.12對于關(guān)系模式R(U,F)∈1NF,如果在R(U,F)下X→Y,則稱函數(shù)依賴集F邏輯蘊(yùn)涵X→Y(F蘊(yùn)涵X→Y)。記為:FX→Y。提示:如果FX→Y,則X→Y可能屬于F,也可能不屬于F。例如:對于R(U,F),U={A,B,C},F(xiàn)={A→B,B→C},則FA→B,F(xiàn)B→C,F(xiàn)A→C;其中A→B∈F,B→C∈F,但是A→CF。6.3.1Armstrong公理44Armstrong公理是由W.W.Armstrong于1974提出的,具體內(nèi)容如下:Armstrong公理
關(guān)系模式R(U,F)∈1NF,如果W,X,Y,Z
U,則成立:(1)自反律:如果Y
X,則X→Y。(2)增廣律:如果X→Y,則XZ→YZ。(3)傳遞律:如果X→Y,Y→Z,則X→Z。Armstrong公理的推廣規(guī)則:(1)合并律:如果X→Y,X→Z,則X→YZ。(2)分解律:如果X→YZ,則X→Y,X→Z。(3)偽傳遞:如果X→Y,YW→Z,則有XW→Z。根據(jù)分解律和合并律,不難證明,推論6.1和推論6.2成立。推論6.lX→A1A2…Ak當(dāng)且僅當(dāng)X→Ai(i=l,2,…,k)。推論6.2Armstrong公理是封閉的。6.3.2函數(shù)依賴集閉包45定義6.13函數(shù)依賴集閉包是指在關(guān)系模式R(U,F)中,F(xiàn)所邏輯蘊(yùn)含的所有函數(shù)依賴的集合。記為:
顯然成立:={X→Y|
FX→Y}。例6.13對于R(X,Y,Z)∈1NF,如果F={X→Y,Y→Z},計(jì)算根據(jù)定義6.12和定義6.13,則不難導(dǎo)出
中的所有43個(gè)函數(shù)依賴。即:{X→
,X→X,X→Y,X→Z,X→XY,X→XZ,X→YZ,X→XYZ,Y→
,Y→Y,Y→Z,Y→YZ,
Z→
,Z→Z,
XY→
,XY→X,XY→Y,XY→Z,XY→XY,XY→YZ,XY→XZ,XY→XYZ,XZ→
,XZ→X,XZ→Y,XZ→Z,XZ→XY,XZ→XZ,XZ→XY,XZ→XYZ,YZ→
,YZ→Y,YZ→Z,YZ→YZ,
XYZ→
,XYZ→X,XYZ→Y,XYZ→Z,XYZ→XY,XYZ→YZ,XYZ→XZ,XYZ→XYZ,
→
}
6.3.2函數(shù)依賴集閉包46根據(jù)上述例題不難看出,
中包含了大量的平凡依賴;而且計(jì)算
是一個(gè)NP-Hard問題(Non-PolynomialHardProblem,非多項(xiàng)式時(shí)間困難問題)
的計(jì)算復(fù)雜度:O(2n)。6.3.3屬性集閉包47定義6.14U中屬性集X的閉包是指在R(U,F)中,X在F下按照Armstrong公理導(dǎo)出的所有屬性的集合。記為:顯然成立:={A|FX→A};而且
例6.14對于R(X,Y,Z)∈1NF,如果F={X→Y,Y→Z},計(jì)算根據(jù)定義6.14,由于X→Y,則=XY;又因?yàn)閅→Z,則=XYZ。根據(jù)例6.14不難發(fā)現(xiàn),利用Armstrong公理,計(jì)算“屬性集閉包”變得比較容易。如果把計(jì)算
轉(zhuǎn)換為計(jì)算
,將使計(jì)算
變得比較方便。推論6.3解決了該問題。推論6.3X→Y∈
當(dāng)且僅當(dāng)Y判定:X→Y∈
?,轉(zhuǎn)化為:計(jì)算=?和判定Y?定義6.15對于R(U,F),如果XU,且=U,則X是候選鍵。6.3.3屬性集閉包48屬性集閉包可以解決如下問題:(1)判斷候選鍵判斷屬性集X為候選鍵的方法:先計(jì)算
,再判斷=U?如果成立,則X是候選鍵,否則不是。(2)判斷函數(shù)依賴是否成立判斷函數(shù)依賴X→Y,在R(U,F)下成立的方法:先計(jì)算
,再判斷
,
?如果成立,則X→Y∈
,否則不成立。(3)計(jì)算
利用
生成
的方法:對于每一個(gè)ZU,先計(jì)算
,再對
任意S,輸出Z→S。6.3.3屬性集閉包49算法6.l對于R(U,F)∈1NF,如果XU,計(jì)算
的步驟:(1)i=1,X(i)=X(2)計(jì)算B={W|FV→W∧
VX(i)}(3)X(i+1)=B∪X(i)(4)判斷X(i+1)=X(i)?如果相等或X(i+1)=U,則=X(i+1),結(jié)束;否則i←i+l,轉(zhuǎn)向(2)。計(jì)算
的算法復(fù)雜度:O(|U|-|X|)。因?yàn)?≤|X(i)|<|X(i+1)|≤|U|。6.3.3屬性集閉包50例6.15對于R(U,F)∈1NF,U={A,B,C,D,E},F(xiàn)={AB→C,B→D,C→E,EC→B,AC→B}。計(jì)算=?(1)i=1,X(1)=AB(2)
VX(1),計(jì)算Y={W|FV→W∧
VX(1)};即:
計(jì)算:{W|FA→W}=?,{W|FB→W}=?,{W|FAB→W}=?。方法:依次掃描F的函數(shù)依賴,計(jì)算X(1)的子集分別為A,B,AB的函數(shù)依賴所導(dǎo)出的新屬性。即:A→
,B→D,AB→C,所以,Y=CD。(3)X(2)=Y∪X(1)=ABCD。(4)判斷X(2)=X(1)?因?yàn)閄(2)≠X(1),且X(2)≠U,所以X(1)
X(2),轉(zhuǎn)向(2),繼續(xù)計(jì)算X(1)=ABCD的子集導(dǎo)出的新屬性,即:AB→C,B→D,C→E,AC→B;所以,Y=E。(5)X(2)=Y∪X(1)=E∪X(1)=ABCDE。(6)因?yàn)閄(2)=U,結(jié)束。6.3.3屬性集閉包51算法6.l可以簡化如下(如圖6.7所示):(1)=X。(2)如果
存在Y,而且Y→A
F,則=∪A。(3)判斷
是否改變,如果不改變,則輸出
,結(jié)束;否則轉(zhuǎn)向(2)。Y新
A6.3.3屬性集閉包52例6.16對于R∈1NF,U={A,B,C,D},F(xiàn)={A→B,BC→D},計(jì)算
、
、
和
(1)=AA,A→B
F,=∪B=AB。(2)=B。(3)=C。(4)=AC(如圖6.8所示)A,A→B
F,=∪B=ABC;BC,BC→D
F,=∪D=ABCD。
AC
A→B
BC→DABCDACB6.3.4最小函數(shù)依賴集53定義6.16對于函數(shù)依賴集F和G,如果=,則稱F和G互相覆蓋(或者F和G等價(jià)。記為:F≡G。定義6.17函數(shù)依賴集F稱為最小函數(shù)依賴集(記為:Fmin),如果F滿足:(1)函數(shù)依賴的右部均為單屬性。(2)不含冗余函數(shù)依賴。即:不存在X→A,使得F≡F-{X→A}。(3)函數(shù)依賴的左部均無冗余屬性。即:不存在X→A,對于
ZX,滿足:F≡(F-{X→A})∪{Z→A}。例如:對于R(U,F),U={A,B,C,D},F(xiàn)={A→B,A→C,B→C,C→D},則A→C是冗余函數(shù)依賴,所以Fmin={A→B,B→C,C→D}。再如:對于R(U,F),U={A,B,C,D},F(xiàn)={A→B,BC→D,B→D},則BC→D中的屬性C是冗余屬性,所以Fmin={A→B,B→D}。如何判斷F覆蓋G或者G覆蓋F?定理6.1幫助解決了這個(gè)問題。6.3.4最小函數(shù)依賴集54定理6.1對于函數(shù)依賴集F和G,則:=當(dāng)且僅當(dāng)
∧證明:必要性:因?yàn)?/p>
,所以G,且F充分性:因?yàn)?/p>
∧
,所以=(1)根據(jù)
,證明
只需證明任意X→Y,則X→Y因?yàn)?/p>
,所以又因?yàn)閄→Y,所以Y
進(jìn)而X→Y。即:
(2)根據(jù)
,證明
。同理可證。如果需要判斷F覆蓋G(即:
),則只須依次判斷G的函數(shù)依賴X→Y,是否成立
?給出了判斷兩個(gè)函數(shù)依賴集等價(jià)的可行性算法。6.3.4最小函數(shù)依賴集55算法6.2計(jì)算Fmin=?(1)分解X→Y1Y2…Yn的右側(cè)屬性為單屬性。即:對X→Y1Y2…YnF,則X→Y1,X→Y2,…,X→Yn。(2)消除X=X1…Xi…Xn→Y左側(cè)屬性的冗余屬性Xi。即:如果Y,則消除屬性Xi。(3)消除冗余函數(shù)依賴X→Y。即:如果Y,則消除X→Y。思考:Fmin是否唯一?不難看出:如果F≡G,則可以利用Fmin替代G(或Gmin替代F)。6.3.4最小函數(shù)依賴集56例6.17對于R(U,F),U={A,B,C,D,E},F(xiàn)={A→D,E→D,D→B,BC→D,DC→A,B→AD},計(jì)算Fmin=?分析:(1)依次分解函數(shù)依賴的右側(cè)屬性為單屬性。即:F={A→D,E→D,D→B,BC→D,DC→A,B→A,B→D}(2)依次消除函數(shù)依賴左側(cè)屬性的冗余屬性。即:1)BC→D中C冗余。因?yàn)镈,所以消除C。因此F={A→D,E→D,D→B,B→D,DC→A,B→A}。2)DC→A中C冗余。因?yàn)锳,所以消除C。因此F={A→D,E→D,D→B,B→D,D→A,B→A}。6.3.4最小函數(shù)依賴集57(3)依次消除冗余函數(shù)依賴。即:B→D冗余。因?yàn)镈,所以消除B→D。則F={A→D,E→D,D→B,D→A,B→A}。同樣,D→A冗余,則F={A→D,E→D,D→B,B→A}。所以Fmin={A→D,E→D,D→B,B→A}思考:在例6.17中,是否存在等價(jià)的Fmin。6.3.4最小函數(shù)依賴集58F的最小依賴集不一定是唯一的
例:F={A→B,B→A,B→C,A→C,C→A}
6.3.5關(guān)系模式分解59等價(jià)分解:分解后的關(guān)系模式,既要保持信息不能丟失,又要保持函數(shù)依賴不能改變。保連接分解:如果分解后的關(guān)系模式,通過連接所生成的新關(guān)系模式,與原始關(guān)系模式等價(jià)。這種連接稱為“無損連接”。保依賴分解:如果分解后的關(guān)系模式,函數(shù)依賴集的閉包,與原始關(guān)系模式的閉包等價(jià)不難看出:保連接分解可以保持關(guān)系模式分解后不丟失數(shù)據(jù)信息;保依賴分解可以保持關(guān)系模式分解后不破壞數(shù)據(jù)完整性。即:保連接保信息;保依賴保完整。關(guān)系模式的常用分解:(1)關(guān)系模式的保連接分解。(2)關(guān)系模式的保依賴分解。(3)關(guān)系模式的既保連接,又保依賴分解。關(guān)系模式的理想分解。6.3.5關(guān)系模式分解60定義6.18對于R(U,F),V
U,則{X→Y|X→Y∧XY
V}的一個(gè)覆蓋G稱為F在V上的投影。例6.18對于R(U,F),U={A,B,C,D},F(xiàn)={A→B,B→C,C→D},V={A,B,C},則AB
V,A→B;BC
V,B→C。F在V上的投影:G={A→B,B→C}。
定義6.19對于R(U,F),U=U1∪U2∪…∪Un,且任意不同的Ui和Uj均不相互包含,則R{R1(U1,F1),…,Rn(Un,Fn)}稱為R(U,F)的一個(gè)分解。其中:Fi為F在Ui上的投影(i=1,2,…,n)。
例6.19對于R(U,F),U={A,B,C,D},F(xiàn)={A→B,B→C,C→D},則R{R1(U1,F1),R2(U2,F2)}為R(U,F)的一個(gè)分解。其中:U1={A,B,C},F(xiàn)1={A→B,B→C}。U2={A,B,D},F(xiàn)2={A→B,B→D}。6.3.5關(guān)系模式分解61定義6.20假設(shè)R{R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn)}是R(U,F)的一個(gè)分解,如果R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn)的連接與R(U,F)等價(jià),即:則
R稱為R的保連接分解。
6.3.5關(guān)系模式分解62例6.20對于PBook(U,F),U={BNo,PNo,PBoss},F(xiàn)={BNo→PNo,PNo→PBoss},PBook對應(yīng)的關(guān)系如表6.2所示,則如下分解保連接嗎?(1)R
1={B1({BNo},
),P1({PNo},
),S1(PBoss,
)}(2)R2={B2({BNo,PNo},{BNo→PNo}),P2({PNo,PBoss},{PNo→PBoss})}(3)R
3={B3({BNo,PNo},{BNo→PNo}),P3({BNo,PBoss},{BNo→PBoss})}(4)R
4={B4({BNo,PBoss},{BNo→PBoss}),P4({PNo,PBoss},{PNo→PBoss})}
6.3.5關(guān)系模式分解63表6.2PBook書號(hào)BNo社號(hào)PNo社長Pboss(可以重名)ISBN978-7-04-040664-1ISBN978-7-04劉軍ISBN978-7-302-33894-9ISBN978-7-302劉軍ISBN978-7-5612-2591-2ISBN978-7-5612吳廣ISBN978-7-5612-2123-1ISBN978-7-5612吳廣ISBN978-7-5178-0167-2ISBN978-7-81140白亮ISBN978-7-81140-582-8ISBN978-7-81140白亮6.3.5關(guān)系模式分解64根據(jù)F可知,PBook(U,F)2NF。(1)R
1={B1,P1,S1}不保連接。因?yàn)椋築1,P1,S1僅包含書號(hào)、社號(hào)和社長自身的基本信息,已經(jīng)丟失了所有的函數(shù)依賴關(guān)系,所以PBook已經(jīng)無法通過B1,P1,S1的連接進(jìn)行恢復(fù)。如果使用笛卡兒積,則生成6*4*3=72個(gè)元組的新關(guān)系,與PBook不符。(2)R
2={B2,P2}保連接。因?yàn)椋築2,P2對應(yīng)的關(guān)系如表6.3和表6.4所示。顯然PBook=B2P2。6.3.5關(guān)系模式分解65表6.3B2BNoPNoISBN978-7-04-040664-1ISBN978-7-04ISBN978-7-302-33894-9ISBN978-7-302ISBN978-7-5612-2591-2ISBN978-7-5612ISBN978-7-5612-2123-1ISBN978-7-5612ISBN978-7-5178-0167-2ISBN978-7-81140ISBN978-7-81140-582-8ISBN978-7-81140PNoPBossISBN978-7-04劉軍ISBN978-7-302劉軍ISBN978-7-5612吳廣ISBN978-7-81140白亮表6.4P26.3.5關(guān)系模式分解66(3)R
3={B3,P3}保連接。因?yàn)椋築3和P3對應(yīng)的關(guān)系如6.3和表6.5所示。顯然PBook=B3P3
。6.3.5關(guān)系模式分解67表6.3B3BNoPNoISBN978-7-04-040664-1ISBN978-7-04ISBN978-7-302-33894-9ISBN978-7-302ISBN978-7-5612-2591-2ISBN978-7-5612ISBN978-7-5612-2123-1ISBN978-7-5612ISBN978-7-5178-0167-2ISBN978-7-81140ISBN978-7-81140-582-8ISBN978-7-81140表6.5P3BNoPBossISBN978-7-04-040664-1劉軍ISBN978-7-302-33894-9劉軍ISBN978-7-5612-2591-2吳廣ISBN978-7-5612-2123-1吳廣ISBN978-7-5178-0167-2白亮ISBN978-7-81140-582-8白亮6.3.5關(guān)系模式分解68(4)R4={B4,P4}不保連接。因?yàn)椋築4,P4,對應(yīng)的關(guān)系如6.6和表6.4所示。所以:B4P4的對應(yīng)的關(guān)系如6.7所示。6.3.5關(guān)系模式分解69表6.6B4表6.4P4BNoPBoosISBN978-7-04-040664-1劉軍ISBN978-7-302-33894-9劉軍ISBN978-7-5612-2591-2吳廣ISBN978-7-5612-2123-1吳廣ISBN978-7-5178-0167-2白亮ISBN978-7-81140-582-8白亮BNoPBoosISBN978-7-04-040664-1劉軍ISBN978-7-302-33894-9劉軍ISBN978-7-5612-2591-2吳廣ISBN978-7-5612-2123-1吳廣ISBN978-7-5178-0167-2白亮ISBN978-7-81140-582-8白亮6.3.5關(guān)系模式分解70表6.7B4與P4的自然連接BnoPNoPBossISBN978-7-04-040664-1ISBN978-7-04劉軍ISBN978-7-04-040664-1ISBN978-7-302劉軍ISBN978-7-302-33894-9ISBN978-7-04劉軍ISBN978-7-302-33894-9ISBN978-7-302劉軍ISBN978-7-5612-2591-2ISBN978-7-5612吳廣ISBN978-7-5612-2123-1ISBN978-7-5612吳廣ISBN978-7-5178-0167-2ISBN978-7-81140白亮ISBN978-7-81140-582-8ISBN978-7-81140白亮6.3.5關(guān)系模式分解71綜上所述:在使用分解后的關(guān)系模式再現(xiàn)原始關(guān)系模式時(shí),使用笛卡兒積會(huì)增加很多沒有意義的元組(一般不用);使用條件連接對于特殊應(yīng)用比較有效(不建議經(jīng)常使用);使用自然連接是最有效的方法(建議經(jīng)常使用)。6.3.5關(guān)系模式分解72定義6.21R{R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn)}是R(U,F)的一個(gè)分解,如果(F1∪F2∪…∪Fn)≡F,即:則R
稱為R的保依賴分解。6.3.5關(guān)系模式分解73例6.21對于例6.20中的分解,判斷其保依賴性。(1)R
1={B1,P1,S1}不保連接,不保依賴。因?yàn)樵贐1({BNo},
),P1({PNo},
),S1(PBoss,
)中,FB1∪FP1∪FS1=
。所以
≠(FB1∪FP1∪FS1)。(2)R
2={B2,P2}保連接,保依賴。理想的分解。因?yàn)樵贐2({BNo,PNo},{BNo→PNo}),P2({PNo,PBoss},{PNo→PBoss})中,F(xiàn)B2∪FP2={BNo→PNo,PNo→PBoss}。所以=(FB2∪FP2)。6.3.5關(guān)系模式分解74例6.21對于例6.20中的分解,判斷其保依賴性。(3)R
3={B3,P3}保連接,不保依賴。因?yàn)樵贐3({BNo,PNo},{BNo→PNo}),P3({BNo,PBoss},{BNo→PBoss})中,F(xiàn)B3∪FP3={BNo→PNo,BNo→PBoss}。所以
≠(FB3∪FP3),顯然丟失PNo→PBoss。(4)R
4={B4,P4}不保連接,不保依賴。因在B4({BNo,PBoss},{BNo→PBoss}),P4({PNo,PBoss},{PNo→PBoss})中,F(xiàn)B4∪FP4={BNo→PBoss,PNo→PBoss}。所以
≠(FB4∪FP4),顯然丟失BNo→PNo。思考1:舉例說明不保連接保依賴分解。思考2:分析保連接和保依賴的關(guān)系?6.3.6關(guān)系模式的分解算法75根據(jù)關(guān)系模式分解的基本理論,常用的分解算法如下:(1)模式分解的保連接算法。(2)模式分解的保依賴算法。(3)3NF分解的保依賴算法。(4)3NF分解的既保連接性又保依賴算法。(5)BCNF分解的保連接算法。(6)4NF分解的保連接算法。6.3.6關(guān)系模式的分解算法76算法6.3模式分解的保連接算法。如果R{R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn)}是R(U,F)的一個(gè)分解,U={A1,A2,…,Am},F(xiàn)min={FD1,FD2,…,FDt},則R的保連接分解如下:(1)構(gòu)造狀態(tài)表T(n,m)。建立一張n行m列的狀態(tài)表T(n,m),每行對應(yīng)分解后的一個(gè)Ri(Ui,Fi),每列對應(yīng)R(U,F)的一個(gè)屬性,則T的第i行第j列T(i,j)的填寫方法:如果第i個(gè)Ri(Ui,Fi)的Ui包含R(U,F)的第j個(gè)Aj,則T(i,j)=aj;否則T(i,j)=bij。(2)利用R(U,Fmin)的FDi修正T。依次使用R(U,Fmin)的函數(shù)依賴FDi(不妨設(shè)為:X→Y)修正T,如果T在X分量上的值不等,則不需要修正,轉(zhuǎn)向下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字化時(shí)代事業(yè)單位合同管理轉(zhuǎn)型路徑
- 學(xué)生形近字識(shí)別訓(xùn)練方案
- 2026年橋梁健康監(jiān)測與生命線工程建設(shè)
- 購物中心促銷活動(dòng)策劃方案
- 電力行業(yè)安全生產(chǎn)管理培訓(xùn)教材
- 公路養(yǎng)護(hù)技術(shù)規(guī)范與案例應(yīng)用
- 監(jiān)理工程師崗位職責(zé)與管理辦法
- 幼兒園體育課程培訓(xùn)心得分享
- 2026年跨國項(xiàng)目中的BIM技術(shù)應(yīng)用分析
- 第六課+珍惜婚姻關(guān)系+課件-2026屆高考政治一輪復(fù)習(xí)統(tǒng)編版選擇性必修二法律與生活
- 原油儲(chǔ)存建設(shè)項(xiàng)目可行性研究報(bào)告
- 遼寧衛(wèi)視小品趙本山小品《相親2》臺(tái)詞版
- 畢業(yè)生離校聚會(huì)安全應(yīng)急預(yù)案
- 統(tǒng)編版2024-2025學(xué)年三年級上冊語文期末情景檢測試卷(含答案)
- 醫(yī)療機(jī)構(gòu)衛(wèi)生計(jì)生監(jiān)督協(xié)管巡查記錄
- JJF 2118-2024壓力式六氟化硫氣體密度控制器校驗(yàn)儀校準(zhǔn)規(guī)范
- 代辦退休授權(quán)委托書模板
- (正式版)JBT 9634-2024 汽輪機(jī)冷油器(管式)尺寸系列和技術(shù)規(guī)范
- (高清版)DZT 0309-2017 地質(zhì)環(huán)境監(jiān)測標(biāo)志
- 地基驗(yàn)槽(擋土墻)
- 2014FSC懸架答辯報(bào)告-太原理工
評論
0/150
提交評論