版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論5.1 數(shù)據(jù)依賴5.1.1 問題的提出5.1.2 函數(shù)依賴的基本概念5.1.3 候選碼5.1.1 問題的提出現(xiàn)假定有一個(gè)描述學(xué)生成績(jī)管理的數(shù)據(jù)庫(kù),用一個(gè)單一的關(guān)系模式XSCJ來(lái)表示。XSCJ關(guān)系模式表示為:XSCJ(Sno,SName,Sdept,Director,Cno,Cname,Cscore)其中:各屬性代表的中文含義依次為:學(xué)生、學(xué)生姓名、所在系名、系主任、課程號(hào)、課程名、課程成績(jī)。并且,該關(guān)系模式有如下數(shù)據(jù)語(yǔ)義規(guī)定:系與學(xué)生之間是1:n的聯(lián)系,即:一個(gè)系有多名學(xué)生,而一名學(xué)生只屬于一個(gè)系;系與系主任之間是1:1的聯(lián)系,即:一個(gè)系只有一名主任,一名系主任也只在一個(gè)系任職;學(xué)生與課程之間是m:n的聯(lián)系,即:一名學(xué)生可選修多門課程,而每門課程有多名學(xué)生選修;每個(gè)學(xué)生學(xué)習(xí)一門課程有一個(gè)成績(jī)。5.1.1 問題的提出現(xiàn)假設(shè)有如表5-1所示的關(guān)系模式XSCJ的一個(gè)具體實(shí)例。表5-1XSCJ表SnoSnameSdeptDirectorCnoCnameCscoreS1張強(qiáng)計(jì)算機(jī)系李軍C01數(shù)據(jù)庫(kù)85S2王紅電子系宋鵬C01數(shù)據(jù)庫(kù)90S3周穎計(jì)算機(jī)系李軍C01數(shù)據(jù)庫(kù)75S1張強(qiáng)計(jì)算機(jī)系李軍C02數(shù)據(jù)結(jié)構(gòu)80S2王紅電子系宋鵬C02數(shù)據(jù)結(jié)構(gòu)565.1.1 問題的提出1. 插入異常(InsertionAnomalies)所謂插入異常,表現(xiàn)為向關(guān)系中插入元組卻插不進(jìn)去。從上述XSCJ關(guān)系模式可以看出:由于學(xué)號(hào)決定系,要想插入學(xué)生所在系的信息,則必須先有學(xué)生的學(xué)號(hào),但是,如果該系還未招生,就沒有學(xué)生,于是該系的信息就無(wú)法插入。2. 刪除異常(DeletionAnomalies)刪除異常表現(xiàn)為刪除某一數(shù)據(jù)信息連帶刪除了其它不應(yīng)該刪除的信息。例如如果某個(gè)系的學(xué)生全部畢業(yè)了,于是,在刪除該系學(xué)生信息的同時(shí),該系及其系主任的信息也隨之被刪除了。3. 數(shù)據(jù)冗余(DataRedundancy)比如,每一個(gè)系主任的姓名在每一個(gè)元組中都重復(fù)出現(xiàn),其重復(fù)次數(shù)與與該系每一個(gè)學(xué)生的每一門功課的成績(jī)出現(xiàn)的次數(shù)一樣多。存在大量的數(shù)據(jù)冗余,從而浪費(fèi)大量的存儲(chǔ)空間。4. 更新異常(UpdateAnomalies)由于存在大量數(shù)據(jù)冗余,系統(tǒng)要付出很大代價(jià)來(lái)維護(hù)數(shù)據(jù)庫(kù)的完整性。否則就帶來(lái)數(shù)據(jù)不一致的危險(xiǎn)。比如,當(dāng)某系的系主任更換后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每個(gè)元組。所謂數(shù)據(jù)依賴(DataDependency),是指一個(gè)關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系,這種約束關(guān)系是通過關(guān)系中屬性間值的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間的相互關(guān)系。這種數(shù)據(jù)依賴是現(xiàn)實(shí)世界中屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語(yǔ)義的體現(xiàn)。數(shù)據(jù)依賴有很多種,其中最重要的是函數(shù)依賴(FunctionalDependency,簡(jiǎn)稱FD)和多值依賴(MultivaluedDependency,簡(jiǎn)稱MVD)。5.1.2 函數(shù)依賴的基本概念定義5.1設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中任意兩個(gè)元組t1和t2,如果t1[X]=t2[X],則t1[Y]=t2[Y],那么稱X函數(shù)地確定Y,或Y函數(shù)地依賴于X,記作:X→Y。下面介紹一些術(shù)語(yǔ)和記號(hào)。X→Y,但則稱X→Y是非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。X→Y,但YX則稱X→Y是平凡的函數(shù)依賴。若X→Y,則X叫做決定因素(Determinant)。若X→Y,Y→X,則X與Y一一對(duì)應(yīng),記作X←→Y。若Y函數(shù)不依賴于X,則記作定義5.2設(shè)R是一個(gè)具有屬性集合U的關(guān)系模式,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X’,X’→Y都不成立,則稱Y完全函數(shù)依賴于X。記作:若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X是部分函數(shù)依賴,記作:定義5.3設(shè)R是一個(gè)具有屬性集合U的關(guān)系模式,X、Y、ZU,如果(),且,,則稱Z對(duì)X傳遞依賴,記作:加上條件,是因?yàn)槿绻鸜→X,則X←→Y,實(shí)際上是X→Z,是直接函數(shù)依賴而不是傳遞函數(shù)依賴。5.1.3 候選碼定義5.4
設(shè)R是一個(gè)具有屬性集合U的關(guān)系模式,,如果K滿足:則稱K為R的候選碼(Candidatekey)。主碼一個(gè)關(guān)系的候選碼不一定只有一個(gè)。若候選碼多于一個(gè).則選定其中的一個(gè)作為主碼。因此一個(gè)關(guān)系的主碼是惟一的。主屬性包含在任何一個(gè)候選碼中的屬性,叫做主屬性。非主屬性不包含在任何一個(gè)候選碼中的屬性,叫做非主屬性。定義5.5
關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼(Foreignkey),也稱外碼。在選課關(guān)系中,(學(xué)生號(hào),課程號(hào))是該關(guān)系的碼,學(xué)生號(hào)、課程號(hào)又分別是組成主碼的屬性(但單獨(dú)不是碼),它們分別是學(xué)生關(guān)系和課程關(guān)系的主碼,所以是選課關(guān)系的兩個(gè)外碼。5.2 關(guān)系模式的規(guī)范化5.2.1 關(guān)系與范式5.2.2 第一范式(1NF)5.2.3 第二范式(2NF)5.2.4 第三范式(3NF)5.2.5 BCNF5.2.6 規(guī)范化小結(jié)5.2.1 關(guān)系與范式規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、刪除與修改時(shí)發(fā)生的異?,F(xiàn)象。這就要求關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)出來(lái)的關(guān)系模式要滿足一定的條件。關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同的標(biāo)準(zhǔn)或準(zhǔn)則稱為范式。滿足最低要求的叫第一范式,簡(jiǎn)稱1NF。在第一范式中滿足進(jìn)一步要求的為第二范式(2NF),其余以此類推。R為第幾范式就可以寫成R∈xNF(x表示某范式名)。各個(gè)范式之間存在一種包含的關(guān)系,即:1NF2NF3NFBCNF4NF5NF5.2.2 第一范式(1NF)定義5.6
設(shè)R是一個(gè)關(guān)系模式。如果R的每個(gè)分量都是不可再分的數(shù)據(jù)項(xiàng),則稱該關(guān)系模式R屬于第一范式,記作R1NF。幾乎所有商用DBMS都規(guī)定:關(guān)系的屬性是原子的,即要求關(guān)系均為第一范式。因此關(guān)系最起碼必須規(guī)范化為第一范式。5.2.3 第二范式(2NF)定義5.7若R1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則稱該關(guān)系模式R屬于第二范式,記作R2NF。換言之,2NF關(guān)系中不存在非主屬性對(duì)候選碼的部分函數(shù)依賴。若出現(xiàn)了非主屬性對(duì)候選碼的部分函數(shù)依賴.該模式就不滿足2NF的條件。5.2.4 第三范式(3NF)1、3NF的定義定義5.8如關(guān)系模式R2NF,且它的任何非主屬性都不傳遞依賴于任何候選碼,則稱R屬于第三范式,記作R3NF。因此從定義可以得出,3NF是從1NF消除非主屬性對(duì)碼的部分函數(shù)依賴和從2NF消除傳遞函數(shù)依賴而得到的關(guān)系模式。也就是說,一個(gè)關(guān)系模式R3NF,則每一個(gè)非主屬性極不部分依賴于碼也不傳遞依賴于碼。5.2.5 BCNF定義5.9若關(guān)系模式R是1NF,如果對(duì)于R的每一個(gè)非平凡函數(shù)依賴X→Y,X必含有一個(gè)候選碼,則稱R屬于BCNF范式。由BCNF的定義可以得出以下結(jié)論:若R∈BCNF,則所有非主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴所有的主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)依賴沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性若R屬于BCNF,則R必定屬于3NF,反之,若R屬于3NF,則R未必屬于BCNF。5.2.6 規(guī)范化小結(jié)規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的“分離”,即“一事一地”的模式設(shè)計(jì)原則。讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。若多于一個(gè)概念就把它“分離”出去。因此所謂規(guī)范化實(shí)質(zhì)上是概念的單一化。關(guān)系模式規(guī)范化的基本步驟如圖5-1所示。5.2.6 規(guī)范化小結(jié)5.3 模式分解上一節(jié)討論的規(guī)范化的過程實(shí)際上就是模式分解的過程,即把一個(gè)關(guān)系模式分解為幾個(gè)子關(guān)系模式,使得這些子模式具有指定的規(guī)范化形式。把低一級(jí)的關(guān)系模式分解為若干個(gè)高一級(jí)的關(guān)系模式的方法不是唯一的,只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義。要保證分解后的關(guān)系模式與原關(guān)系模式等價(jià)。有三種標(biāo)準(zhǔn):分解具有無(wú)損連接性。分解要保持函數(shù)依賴。分解既要保持函數(shù)依賴,又要保持無(wú)損連接性。5.3 模式分解無(wú)損連接是指分解后的關(guān)系通過自然連接可以恢復(fù)成原來(lái)的關(guān)系,即分解后的關(guān)系通過自然連接得到的關(guān)系與原來(lái)的關(guān)系相比,既不多出信息,又不丟失信息。這是進(jìn)行模式分解必須滿足的條件。如果一個(gè)分解具有無(wú)損連接性,則它能夠保證不丟失信息;如果一個(gè)分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況。分解具有無(wú)損連接性和分解保持函數(shù)依賴是兩個(gè)互相獨(dú)立的標(biāo)準(zhǔn)。具有無(wú)損連接性的分解不一定能夠保持函數(shù)依賴;同樣,保持函數(shù)依賴的分解也不一定具有無(wú)損連接性。5.3 模式分解定義5.10設(shè)關(guān)系模式R(U,F(xiàn))被分解為若干個(gè)關(guān)系模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2)…..Rn(Un,F(xiàn)n),(其中U=U1∪U2……∪Un,且不存在Ui
包含于Uj中,Ri為F在Ui上的投影),若R與R1,R2..…Rn自然連接的結(jié)果相等,則稱關(guān)系模式R的分解具有無(wú)損連接性。5.3 模式分解定義5.11設(shè)關(guān)系模式R(U,F(xiàn))被分解為若干個(gè)關(guān)系模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2)…..Rn(Un,F(xiàn)n),(其中U=U1∪U2……∪Un,且不存在Ui包含于Uj中,Ri為F在Ui上的投影),若F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊(yùn)含,則稱關(guān)系模式R的分解具有保持函數(shù)依賴性。5.3 模式分解若要求分解具有無(wú)損連接性,則模式的分解一定能夠達(dá)到4NF;若要求分解保持函數(shù)依賴,則模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF范式;若要求既具有無(wú)損連接性,又保持函數(shù)依賴,則模式分散一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。習(xí)題1. 理解并給出下列術(shù)語(yǔ)的含義:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴、候選碼、外碼、主屬性、2NF、3NF、BCNF。2. 關(guān)系模式可能存在的異常有哪些?引起這些異常的原因是什么?3. 判斷下列模式分別屬于第幾范式?并說明理由。R1(A,B,C,D),F(xiàn)1={A→B,AC→D}R2(A,B,C,D),F(xiàn)2={AB→C,AC→D,C→B}R3(A,B,C,D,F(xiàn)3={AB→CD,C→A,D→B}R4(A,B,C,D),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年C語(yǔ)言程序設(shè)計(jì)教案編寫思考
- 革新教學(xué)法:2024年《畫漫畫》教案設(shè)計(jì)
- 探索K2教育:《千人糕》2024課件實(shí)踐分享
- 2023年西方經(jīng)濟(jì)學(xué)考點(diǎn)版本科打印雙面
- 《棗兒》學(xué)術(shù)論文探究
- 湖南省長(zhǎng)沙市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版綜合練習(xí)(下學(xué)期)試卷及答案
- 第45屆世界技能大賽山西選拔賽技術(shù)文件-機(jī)電一體化項(xiàng)目技術(shù)文件
- 2024年肺結(jié)核病防治知識(shí)課件
- 科目三考試流程-駕考實(shí)操
- 2024年外婆的澎湖灣:地理課件
- 現(xiàn)場(chǎng)救護(hù)的“生命鏈”
- 浙江省【小升初】2023年小升初數(shù)學(xué)試卷及答案【各地真題】
- 2024年NOC初賽-Scratch(小學(xué)高年級(jí)組)試題及答案
- 油煙清洗報(bào)告【范本模板】
- MOOC 中醫(yī)體質(zhì)學(xué)-新鄉(xiāng)醫(yī)學(xué)院 中國(guó)大學(xué)慕課答案
- 【課件】丹納赫DBS-問題解決培訓(xùn)
- 浙江省寧波市小升初數(shù)學(xué)真題重組卷
- 家庭成員我照顧(第一課時(shí)) 勞動(dòng)技術(shù)七年級(jí)下冊(cè)
- 火電廠信息化建設(shè)規(guī)劃方案
- 技改項(xiàng)目報(bào)告
- “中信泰富”事件的反思
評(píng)論
0/150
提交評(píng)論