版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第7章關(guān)聯(lián)式資料庫的正規(guī)化7-1正規(guī)化的基礎(chǔ)7-2功能相依7-3第一階到第三階正規(guī)化型式7-4多重值相依與第四階正規(guī)化型式7-5合併相依與第五階正規(guī)化型式7-1正規(guī)化的基礎(chǔ)7-1-1關(guān)聯(lián)表為什麼需要正規(guī)化7-1-2正規(guī)化的型式7-1正規(guī)化的基礎(chǔ)-說明「正規(guī)化」(Normalization)是一種標(biāo)準(zhǔn)處理程序來決定關(guān)聯(lián)表應(yīng)該擁有哪些屬性,其目的是建立「良好結(jié)構(gòu)關(guān)聯(lián)表」(Well-structuredRelation)。良好結(jié)構(gòu)關(guān)聯(lián)表是一種沒有重複資料的關(guān)聯(lián)表,而且在新增、刪除或更新資料時,不會造成錯誤或資料不一致的異常情況。7-1正規(guī)化的基礎(chǔ)-目的去除重複性(EliminatingRedundancy):就是建立沒有重複資料的關(guān)聯(lián)表,因為重複資料不只浪費資料庫的儲存空間,而且會產(chǎn)生資料維護(hù)上的問題。去除不一致的相依性(EliminatingInconsistentDependency):資料相依是指關(guān)聯(lián)表中的屬性之間擁有關(guān)係,如果關(guān)聯(lián)表擁有不一致的資料相依,這些屬性就會在新增、刪除或更新資料時,造成異?,F(xiàn)象。7-1-1關(guān)聯(lián)表為什麼需要正規(guī)化-說明關(guān)聯(lián)式資料庫正規(guī)化的目的以一句話來說,就是避免資料重複,關(guān)聯(lián)表擁有非自然結(jié)合的屬性,就會造成資料重複的問題,稱為「非正規(guī)化型式」(UnnormalizedForm)關(guān)聯(lián)表。7-1-1關(guān)聯(lián)表為什麼需要正規(guī)化-更新異常(UpdateAnomaly)在Student_Course_Classes關(guān)聯(lián)表更新指定的屬性資料,因為資料重複儲存在多筆值組(記錄),需要同時更新多筆值組的資料。7-1-1關(guān)聯(lián)表為什麼需要正規(guī)化-刪除異常(DeletionAnomaly)在Student_Course_Classes關(guān)聯(lián)表刪除值組,可能刪除合法資料。例如:CS101和CS121課程都有一筆值組,如下所示:7-1-1關(guān)聯(lián)表為什麼需要正規(guī)化-新增異常(InsertionAnomaly)在Student_Course_Classes關(guān)聯(lián)表新增值組和刪除相反,可能只新增部分值組的資料。例如:新增一筆值組,課程編號是CS240,課程名稱為資料結(jié)構(gòu),學(xué)分是3,如下:7-1-2正規(guī)化的型式-階段正規(guī)化的處理過程一共分為五個階段的正規(guī)化型式,每一階正規(guī)化型式是在處理不同的屬性間資料相依(Dependency)的問題,如下圖所示:7-1-2正規(guī)化的型式-前三階第一階正規(guī)化型式(FirstNormalForm,1NF):在關(guān)聯(lián)表刪除多重值屬性,讓關(guān)聯(lián)表只擁有單元值屬性。第二階正規(guī)化型式(SecondNormalForm,2NF):滿足1NF且關(guān)聯(lián)表沒有「部分相依」(PartialDependency)。第三階正規(guī)化型式(ThirdNormalForm,3NF):滿足2NF,且關(guān)聯(lián)表沒有「遞移相依」(TransitiveDependency)。7-1-2正規(guī)化的型式-BCNF+四和五階Boyce-Codd正規(guī)化型式(Boyce-CoddNormalForm,BCNF):屬於一種廣意的第三階正規(guī)化型式,如果關(guān)聯(lián)表擁有多個複合候選鍵,刪除候選鍵間的功能相依。第四階正規(guī)化型式(FourthNormalForm,4NF):滿足BCNF且沒有多重值相依。第五階正規(guī)化型式(FifthNormalForm,5NF):滿足4NF且沒有合併相依。7-2功能相依7-2-1功能相依的定義7-2-2功能相依的種類7-2-3找出所有的功能相依7-2-4阿姆斯壯推論規(guī)則7-2-5功能相依的推論範(fàn)例7-2功能相依-說明功能相依(FunctionalDependency,簡稱FD)是描述關(guān)聯(lián)表中屬性間的相依關(guān)係,這是關(guān)聯(lián)式資料庫正規(guī)化的基礎(chǔ),簡單的說,關(guān)聯(lián)表正規(guī)化的第一步,就是在關(guān)聯(lián)表找出所有屬性間的功能相依。7-2功能相依-目的當(dāng)在關(guān)聯(lián)表找出所有屬性間的功能相依後,就可以幫助我們在關(guān)聯(lián)表找出:重複資料:一些不該屬於此關(guān)聯(lián)表的屬性。候選鍵和主鍵:如果關(guān)聯(lián)表的所有屬性都功能相依於一個或一組屬性,這個屬性就是候選鍵(CandidateKey)或主鍵(PrimaryKey)。7-2-1功能相依的定義-定義定義7.1:功能相依(FunctionalDependency)以關(guān)聯(lián)表R為例,若關(guān)聯(lián)表R擁有屬性A與B,A與B可以是複合屬性,我們可以說屬性B功能相依(FunctionalDependent)於A,或A功能決定(FunctionalDetermines)B,寫成:R.A→R.B或簡寫成:A→B若關(guān)聯(lián)表R擁有A→B的功能相依,則在關(guān)聯(lián)表R的每一對t1和t2值組且t1(A)=t2(A),可以得到:t1(B)=t2(B)。7-2-1功能相依的定義-說明關(guān)聯(lián)表中如果2個值組的屬性A值是相同,我們就可以知道屬性B的值也一定相同,換句話說,如果知道屬性A的值,就可以知道屬性B的值,如下所示:A1→B1A1→{B1,B2,…Bn}{A1,A2,…,An}→B1{A1,A2,…,An}→{B1,B2,…Bn}上述功能相依屬於一種單方向的關(guān)聯(lián),A→B不表示B→A。7-2-1功能相依的定義-範(fàn)例在Students關(guān)聯(lián)表的一些功能相依範(fàn)例,如下:sid→birthday
sid→GPAsid→tel
sid→{name,birthday}sid→{name,birthday,GPA}sid→{name,birthday,GPA,tel}{sid,name}→{name,birthday,GPA,tel}7-2-2功能相依的種類-種類功能相依的種類主要可以分為三種:完全相依(FullDependency)部分相依(PartialDependency)遞移相依(TransitiveDependency)7-2-2功能相依的種類-範(fàn)例關(guān)聯(lián)表範(fàn)例是Student_Course_Instructors關(guān)聯(lián)表,如下圖所示:7-2-2功能相依的種類-完全相依完全相依是指如果屬性A(複合屬性)和B是關(guān)聯(lián)表屬性,B功能相依於A,且B沒有功能相依於任何A的子集,則稱B完全功能相依於A。例如:Student_Course_Instructors關(guān)聯(lián)表的完全相依,如下所示:sid→namec_no→titleeid→instructoreid→office{sid,c_no,eid}→{name,title,instructor,office}7-2-2功能相依的種類-部分相依部分相依是指如果A(複合屬性)和B是關(guān)聯(lián)表的屬性,B是功能相依於A,如果刪除A子集的部分屬性,仍然不會影響功能相依,則稱B部分功能相依於A。例如:Student_Course_Instructors關(guān)聯(lián)表的部分相依,如下所示:{sid,c_no}→name{sid,c_no}→title{eid,instructor}→office7-2-2功能相依的種類-遞移相依1如果A、B和C是關(guān)聯(lián)表的屬性,A→B且B→C,則稱C是遞移相依於A,A→C。例如:Student_Course_Instructors關(guān)聯(lián)表的遞移相依,如下所示:{sid,c_no,eid}→office上述office屬性是遞移相依於{sid,c_no,eid},因為:{sid,c_no,eid}→instructorinstructor→office7-2-2功能相依的種類-遞移相依27-2-3找出所有的功能相依暴力演算法(BruteForceAlgorithm):這是一種破解密碼常用的演算法,以作苦工方式嘗試所有可能的密碼組合,也就是說,在關(guān)聯(lián)表找出各屬性間的所有可能組合,然後一一檢查是否符合功能相依,如果關(guān)聯(lián)表的屬性很多,相對就需要花費更多的時間。推論基礎(chǔ)演算法(Inference-basedAlgorithm):因為功能相依可以由其他功能相依來推論出,換句話說,推論基礎(chǔ)演算法是從關(guān)聯(lián)表已知的功能相依,使用推論規(guī)則推論出所有可能的功能相依。7-2-4阿姆斯壯推論規(guī)則-說明阿姆斯壯推論規(guī)則(Amstrong’sInferenceRule)可以從某些已知的功能相依推論出其他隱含的功能相依,這是一種建全且完整的規(guī)則,其意義如下所示:建全(Sound):阿姆斯壯推論規(guī)則不會導(dǎo)出多餘的功能相依。完整(Complete):阿姆斯壯推論規(guī)則可以導(dǎo)出所有的功能相依。7-2-4阿姆斯壯推論規(guī)則-反身規(guī)則(ReflexitivityRule)如果屬性B是屬性A的子集合,則A→B,其定義如下:若:{B1,B2,…,Bn}{A1,A2,….,An}則:{A1,A2,….,An}→{B1,B2,…,Bn}例如:{sid,name}{sid,name},所有屬性都是本身的子集合,所以:sid→sid、name→name和{sid,name}→{sid,name}。7-2-4阿姆斯壯推論規(guī)則-擴(kuò)充規(guī)則(AugmentationRule)如果A→B且屬性C是屬性D的子集合,則AD→BC,其定義如下:若:{A1,A2,….,An}→{B1,B2,…,Bn}且{C1,…,Cn}?{D1,...,Dn}則:{A1,A2,….,An,D1,…,Dn}→{B1,B2,…,Bn,C1,...,Cn}例如:sid→name且{GPA}{birthday,GPA},則可以得到:{sid,birthday,GPA}→{name,GPA}7-2-4阿姆斯壯推論規(guī)則-遞移規(guī)則(TransitivityRule)如果A→B且B→C,則A→C,其定義如下:若:{A1,…,An}→{B1,…,Bn}且{B1,…,Bn}→{C1,...,Cn}則:{A1,...,An}→{C1,...,Cn}例如:sid→instructor且instructor→office,則可以得到:sid→office7-2-4阿姆斯壯推論規(guī)則-分解規(guī)則(DecompositionRule)如果A→BC,則A→B且A→C,其定義如下:若:{A1,…,An}→{B1,…,Bn,C1,...,Cn}則:{A1,...,An}→{B1,...,Bn}且{A1,...,An}→{C1,...,Cn}例如:sid→{name,birthday},則可以得到:sid→name且sid→birthday7-2-4阿姆斯壯推論規(guī)則-聯(lián)集規(guī)則(UnionRule)如果A→B且A→C,則A→BC,其定義如下:若:{A1,…,An}→{B1,…,Bn}且{A1,…,An}→{C1,...,Cn}則:{A1,...,An}→{B1,...,Bn,C1,...,Cn}例如:sid→name且sid→birthday,則可得:sid→{name,birthday}7-2-5功能相依的推論範(fàn)例-範(fàn)例現(xiàn)在只需使用推論規(guī)則,就可以從關(guān)聯(lián)表現(xiàn)有的功能相依推論出其他的功能相依。例如:關(guān)聯(lián)表已經(jīng)擁有3條功能相依(FunctionalDependency,FD),如下所示:1:AB→D2:BD→E3:E→C請使用上述3條功能相依推論出AB→C。7-2-5功能相依的推論範(fàn)例-過程7-3第一階到第三階正規(guī)化型式7-3-1第一階正規(guī)化型式–1NF7-3-2第二階正規(guī)化型式–2NF7-3-3第三階正規(guī)化型式–3NF7-3-4Boyce-Codd正規(guī)化型式
–BCNF7-3-5符合Boyce-Codd正規(guī)化型式的範(fàn)例7-3-1第一階正規(guī)化型式–1NF(定義)定義7.2:關(guān)聯(lián)表R符合第一階正規(guī)化型式(FirstNormalForm;1NF)是指關(guān)聯(lián)表的每一個定義域(Domain)都是單元值(AtomicValue)且只能是單元值,也就是刪除多重值屬性型態(tài)(Multi-valueAttributeType)與複合屬性型態(tài)(CompositeAttributeType)的屬性。簡單的說,上述定義是指關(guān)聯(lián)表沒有多重值和複合屬性。7-3-1第一階正規(guī)化型式–1NF(範(fàn)例)例如:在Students關(guān)聯(lián)表儲存學(xué)生的選課資料,主鍵是學(xué)號sid,如下圖所示:7-3-1第一階正規(guī)化型式–1NF(正規(guī)化方法1)方法一:分割成不同的關(guān)聯(lián)表關(guān)聯(lián)表違反1NF,一階正規(guī)化可以將這些多重值屬性連同主鍵分割成新關(guān)聯(lián)表,如下圖所示:7-3-1第一階正規(guī)化型式–1NF(正規(guī)化方法2)方法二:分割成值組1NF關(guān)聯(lián)表的每一個屬性只能儲存單元值,所以一階正規(guī)化可以將多重值屬性改成重複值組,屬性的每一個多重值新增一筆值組,如下圖所示:7-3-1第一階正規(guī)化型式–1NF(正規(guī)化方法3)方法三:分割成不同屬性一階正規(guī)化還可以將多重值屬性配合虛值新增為關(guān)聯(lián)表的多個屬性,不過其先決條件是多重值的個數(shù)是有限的。例如:一位學(xué)生規(guī)定只能修兩門課程,Students關(guān)聯(lián)表可以使用2組屬性儲存選課資料的課程編號與名稱,雖然符合1NF,但是若學(xué)生選課數(shù)不只兩門,就會產(chǎn)生資料無法新增的異常情況。7-3-2第二階正規(guī)化型式–2NF(定義)定義7.3:關(guān)聯(lián)表R符合第二階正規(guī)化型式(SecondNormalForm;2NF)是指關(guān)聯(lián)表符合1NF,而且所有非主鍵(PrimaryKey)的屬性都完全相依(FullyDependency)於主鍵,也就是刪除所有部份相依的屬性。簡單的說,上述定義是指關(guān)聯(lián)表中,不是主鍵的屬性需要完全相依於主鍵;反過來說,就是刪除關(guān)聯(lián)表所有部分相依(PartialDependency)的屬性。7-3-2第二階正規(guī)化型式–2NF(範(fàn)例)Students關(guān)聯(lián)表執(zhí)行一階正規(guī)化後,已經(jīng)分割成Students和Classes關(guān)聯(lián)表,Classes關(guān)聯(lián)表繼續(xù)第二階正規(guī)化,如下圖:7-3-2第二階正規(guī)化型式–2NF(功能相依)Classes關(guān)聯(lián)表的主鍵是(sid,c_no,eid),關(guān)聯(lián)表已知的功能相依,如下所示:FD1:{sid,c_no,eid}→roomFD2:c_no→titleFD3:eid→{instructor,office}7-3-2第二階正規(guī)化型式–2NF(正規(guī)化結(jié)果)7-3-3第三階正規(guī)化型式–3NF(定義)定義7.4:關(guān)聯(lián)表R符合第三階正規(guī)化型式(ThirdNormalForm;3NF)是指關(guān)聯(lián)表符合2NF,而且所有非主鍵(PrimaryKey)的屬性都只能功能相依(FunctionalDependency)於主鍵;沒有功能相依於其他非主鍵的屬性,即刪除遞移相依的屬性。簡單的說,上述定義是指關(guān)聯(lián)表中不屬於主鍵的屬性都只能功能相依於主鍵,而不能同時功能相依於其他非主鍵的屬性,也就是刪除關(guān)聯(lián)表所有遞移相依(TransitiveDependency)的屬性。7-3-3第三階正規(guī)化型式–3NF(範(fàn)例)例如:繼續(xù)上一節(jié)的關(guān)聯(lián)表,執(zhí)行Instructors關(guān)聯(lián)表的第三階正規(guī)化,如下圖所示:7-3-3第三階正規(guī)化型式–3NF(正規(guī)化結(jié)果)eid→office是遞移相依7-3-4Boyce-Codd正規(guī)化型式–BCNF(條件)Boyce-Codd正規(guī)化是在處理關(guān)聯(lián)表擁有多個候選鍵的特殊情況,Boyce-Codd正規(guī)化處理的關(guān)聯(lián)表至少擁有二個或更多個候選鍵,而且這兩個候選鍵是:複合候選鍵。在複合候選鍵之間擁有重疊屬性,也就是說至少擁有一個相同屬性。如果關(guān)聯(lián)表沒有上述情況,3NF就等於BCNF。7-3-4Boyce-Codd正規(guī)化型式–BCNF(範(fàn)例1)例如:學(xué)生身份證字號(SSN)與成績(grade)的Students關(guān)聯(lián)表,如下圖所示:Students關(guān)聯(lián)表擁有兩個候選鍵,如下所示:(sid,c_no)(SSN,c_no)7-3-4Boyce-Codd正規(guī)化型式–BCNF(範(fàn)例2)兩個候選鍵擁有重疊屬性c_no,在候選鍵之間擁有功能相依SSN→sid,因為身份證字號可以決定學(xué)生編號,如下所示:{sid,c_no}→SSNSSN→sid上述SSN屬性可以決定sid屬性,不過SSN只是候選鍵的一部分,且不是超鍵(Superkey),所以違反BCNF。7-3-4Boyce-Codd正規(guī)化型式–BCNF(定義)定義7.5:關(guān)聯(lián)表R符合BCNF正規(guī)化型式(Boyce-CoddNormalForm;BCNF)是指關(guān)聯(lián)表所有主要的功能相依A→B,A一定且只可以是候選鍵(CandidateKeys),也就是刪除只功能相依候選鍵部分屬性的功能相依。簡單的說,上述定義是指關(guān)聯(lián)表中,主要功能相依A→B的左邊屬性A稱為「決定屬性」(Determinant),決定屬性一定是候選鍵或主鍵。功能相依的標(biāo)準(zhǔn)語法,如下所示:候選鍵或主鍵→其他屬性7-3-4Boyce-Codd正規(guī)化型式–BCNF(正規(guī)化結(jié)果1)例如:執(zhí)行前述的關(guān)聯(lián)表Students關(guān)聯(lián)表的BCNF正規(guī)化,如下圖所示:7-3-4Boyce-Codd正規(guī)化型式–BCNF(正規(guī)化結(jié)果2)因為Students關(guān)聯(lián)表的sid和SSN兩個屬性間相互擁有功能相依,如下所示:sid→SSNSSN→sid所以執(zhí)行BCNF正規(guī)化分割Students關(guān)聯(lián)表時,也可以使用SSN屬性進(jìn)行分割,如下圖所示:7-3-5符合Boyce-Codd正規(guī)化型式的範(fàn)例(說明)Boyce-Codd正規(guī)化型式的條件是關(guān)聯(lián)表至少擁有二個或多個複合候選鍵,不過關(guān)聯(lián)表擁有兩個複合候選鍵,並不表示一定需要進(jìn)行BCNF正規(guī)化,兩個複合候選鍵的關(guān)聯(lián)表仍可以符合BNCF。7-3-5符合Boyce-Codd正規(guī)化型式的範(fàn)例(範(fàn)例1)例如:學(xué)生期末考座位的Exams關(guān)聯(lián)表,因為期末考分成多天進(jìn)行考試,所以各科的考試座位可能不同,如下圖所示:7-3-5符合Boyce-Codd正規(guī)化型式的範(fàn)例(範(fàn)例2)在Exams關(guān)聯(lián)表一共有兩個候選鍵,如下所示:(sid,c_no)(seat_no,c_no)兩個候選鍵擁有重疊屬性c_no,不過在候選鍵之間並沒有功能相依seat_no→sid。在Exams關(guān)聯(lián)表擁有的功能相依清單,如下所示:{sid,c_no}→seat_no{seat_no,c_no}→sid上述2個功能相依的決定屬性都是候選鍵,符合BCNF定義。所以,Exams關(guān)聯(lián)表雖然擁有2組候選鍵,但是它不但符合3NF,而且符合BCNF。7-4多重值相依與第四階正規(guī)化型式7-4-1多重值相依(Multi-valuedDependency)7-4-2第四階正規(guī)化型式–4NF7-4多重值相依與第四階正規(guī)化型式第四階正規(guī)化型式的基礎(chǔ)是「多重值相依」(Multi-valuedDependency,MVD),這是1977年R.Fagin所提出,屬於功能相依的推廣定義,或是說,功能相依是多重值相依的一種特例。多重值相依的先決條件是關(guān)聯(lián)表擁有3個以上的屬性。7-4-1多重值相依(範(fàn)例)例如:一門課可能由多位講師授課,每一門課可以使用多本教課書,儲存這些資料的Course_Instructor_Textbook關(guān)聯(lián)表,簡稱為CIT,如下圖所示:7-4-1多重值相依(說明)CIT關(guān)聯(lián)表的屬性仍然有類似功能相依的相依情況,例如:對於每一門課,存在課程相關(guān)教課書的子集合,同樣的,對於每一門課,存在此課程相關(guān)講師的子集合,如下所示:教課書textbook相依於課程course(在此的相依不是指功能相依)。講師instructor相依於課程course(在此的相依不是指功能相依)。上述相依關(guān)係就是「多重值相依」(Multi-valuedDependency),以雙箭頭表示寫成:course→→textbookcourse→→instructor7-4-1多重值相依(定義)定義7.6:多重值相依(Multi-valuedDependency)以關(guān)聯(lián)表R為例,若關(guān)聯(lián)表R是由屬性A、B與C組成R(A,B,C),A、B與C可以是複合屬性,我們可以說屬性B多重值相依(Multi-valuedDependent)於A,或A多重決定(Multi-determines)於B,寫成:R.A→→R.B或簡寫成:A→→B若關(guān)聯(lián)表R擁有A→→B多重值相依,則表示存在t1和t2值組且t1(A)=t2(A),且另外存在二個值組t3和t4滿足下列條件:t1(A)=t2(A)=t3(A)=t4(A)t3(B)=t1(B)t3(C)=t2(C)t4(B)=t2(B)t4(C)=t1(C)7-4-1多重值相依(定義說明)以CIT關(guān)聯(lián)表為例,因為關(guān)聯(lián)表CIT擁有course→→textbook(A→→B)多重值相依,所以在關(guān)聯(lián)表可以找到交換instructor屬性的2對值組t1、t2和t3、t4,如下圖所示:7-4-1多重值相依(異常狀況)在CIT關(guān)聯(lián)表擁有很多重複資料,這些重複資料會導(dǎo)致新增或更新異常,例如:新增講師陳慶新教授程式語言這門課,雖然只有一門課,但是需要同時新增3筆值組,每一個值組是一本教課書,否則就會產(chǎn)生資料不一致的問題。7-4-1多重值相依(推論規(guī)則1)多重值相依的推論規(guī)則是1977年C.Beeri、R.Fagin和J.H.Howard擴(kuò)充自阿姆斯壯推論規(guī)則,其中前3個推論規(guī)是源自功能相依,如下所示:FD反身規(guī)則(FDReflexitivity):如果屬性B是屬性A的子集合,則A→B。FD擴(kuò)充規(guī)則(FDAugmentation):如果A→B且屬性C是屬性D的子集合,則AD→BC。FD遞移規(guī)則(FDTransitivity):如果A→B且B→C,則A→C。MVD擴(kuò)充規(guī)則(MVDAugmentation):如果A→→B且屬性C是屬性D的子集合,則AD→→BC。MVD遞移規(guī)則(MVDTransitivity):如果A→→B且B→→C,則A→→C–B。7-4-1多重值相依(推論規(guī)則2)MVD互補規(guī)則(MVDComplementation):如果A→→B,則A→→(R–A–B)。MVD聯(lián)集規(guī)則(MVDUnion):如果A→→B且A→→C,則A→→BC。MVD分解規(guī)則(MVDDecomposition):如果A→→BC,則A→→BC,A→→B-C且A→→C-B。複製規(guī)則(Replication或稱為升級Promotion):如果A→B,則A→→B。合併規(guī)則(Coalescence):如果A→→B且C→D,D是B的子集合,C與B的交集是空集合,則A→D。偽裝遞移規(guī)則(Pseudotransitivity):如果A→→B且CB→→D,則CA→→D-CB。混合偽裝遞移規(guī)則(MixedPseudotransitivity):如果A→→B且AB→→C,則A→→C-B。7-4-2第四階正規(guī)化型式–4NF(定義)定義7.7:關(guān)聯(lián)表R符合第四階正規(guī)化型式(FourthNormalForm;4NF)是指關(guān)聯(lián)表符合BCNF,而且所有多重值相依(Multi-valuedDependency)都是功能相依(FunctionalDependency),也就是刪除多重值相依。簡單的說,上述定義是指關(guān)聯(lián)表沒有存在的多重值相依,只有功能相依。7-4-2第四階正規(guī)化型式–4NF(正規(guī)化)CIT關(guān)聯(lián)表擁有2個多重值相依,如下所示:course→→textbookcourse→→instructor執(zhí)行第四階正規(guī)化,只需將多重值相依A→→B兩邊的屬性獨立成關(guān)聯(lián)表即可,如下圖所示:7-5合併相依與第五階正規(guī)化型式7-5-1合併相依(JoinDependency)7-5-2第五階正規(guī)化型式–5NF7-5合併相依與第五階正規(guī)化型式關(guān)聯(lián)式資料庫正規(guī)化分析的第一階到第三階正規(guī)化型式是使用功能相依找出關(guān)聯(lián)表的重複資料。在第四階正規(guī)化型式的基礎(chǔ)是多重值相依,這是功能相依的擴(kuò)充。第五階正規(guī)化型式的基礎(chǔ)則是擴(kuò)充多重值相依的「合併相依」(JoinDependency)。簡單的說,合併相依是指當(dāng)關(guān)聯(lián)表分割成3個或更多關(guān)聯(lián)表後,一定能夠透過多次合併運算恢復(fù)成原來的關(guān)聯(lián)表。7-5-1合併相依(範(fàn)例)例如:每個科系(department)開多門課,課程(course)可以給多位學(xué)生修,學(xué)生(student)可以修不同科系的課,這3個屬性循環(huán)關(guān)聯(lián)儲存在同一個關(guān)聯(lián)表DCS,如下圖所示:7-5-1合併相依(說明)將DCS分割成2個關(guān)聯(lián)表,看看是否可以解決資料重複的問題,分割方式有多種組合,如下所示:DC(department,co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保研究實驗室操作手冊
- 高新區(qū)車輛通行策略
- 城市地鐵涵洞建設(shè)協(xié)議
- 設(shè)備租用合同:照明機械
- 商業(yè)地產(chǎn)交易居間合同范本
- 倉庫施工員招聘合同范例
- 農(nóng)貿(mào)市場招投標(biāo)優(yōu)化方案
- 體育館暖通工程安裝合同
- 預(yù)算編制與執(zhí)行暫行辦法
- 無人機巡航安保人員聘用協(xié)議
- 更換電梯協(xié)議書范本
- 湖北省仙桃市2023-2024學(xué)年七年級下學(xué)期期末地理試題(無答案)
- 每日食品安全檢查記錄表
- JTG-D40-2011公路水泥混凝土路面設(shè)計規(guī)范
- 2023年七年級語文上冊期末測試卷(完美版)
- 測繪公司工作個人年度總結(jié)
- MOOC 普通植物病理學(xué)-西北農(nóng)林科技大學(xué) 中國大學(xué)慕課答案
- 【新收入準(zhǔn)則對建筑企業(yè)會計核算的影響:以J公司為例14000字(論文)】
- 一年級數(shù)學(xué)上冊口算比賽
- (高清版)DZT 0282-2015 水文地質(zhì)調(diào)查規(guī)范(1:50000)
- 施工現(xiàn)場消防培訓(xùn)課件
評論
0/150
提交評論