




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第六講關(guān)系數(shù)據(jù)理論12019年8月26數(shù)據(jù)庫(kù)系統(tǒng)概論12019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出6.2規(guī)范化6.3數(shù)據(jù)依賴(lài)的公理系統(tǒng)*6.4模式的分解6.5小結(jié)22019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出22019年8月266.1問(wèn)題的提出關(guān)系模式存在的問(wèn)題32019年8月266.1問(wèn)題的提出關(guān)系模式存在的問(wèn)題32019年8月26關(guān)系模式存在的問(wèn)題例1(P170):描述學(xué)校的數(shù)據(jù)庫(kù):
學(xué)生的學(xué)號(hào)(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程號(hào)(Cno) 成績(jī)(Grade)問(wèn)題:如何設(shè)計(jì)關(guān)系模式?提示:1.概念模型2.邏輯模型(關(guān)系模式)42019年8月26關(guān)系模式存在的問(wèn)題例1(P170):描述學(xué)校的數(shù)據(jù)庫(kù):420數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義:
⒈一個(gè)系有若干學(xué)生,一個(gè)學(xué)生只屬于一個(gè)系;⒉一個(gè)系只有一名主任;⒊一個(gè)學(xué)生可以選修多門(mén)課程,每門(mén)課程有若干學(xué)生選修;⒋每個(gè)學(xué)生所學(xué)的每門(mén)課程都有一個(gè)成績(jī)。
52019年8月26數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義:52019年假設(shè)設(shè)計(jì)成單一模式單一的關(guān)系模式:Student<U、F>U={Sno,Sdept,Mname,Cno,Grade}62019年8月26假設(shè)設(shè)計(jì)成單一模式單一的關(guān)系模式:Student<Student表SnoSdeptMnameCnoGradeS1計(jì)算機(jī)系張明C195S2計(jì)算機(jī)系張明C190S3計(jì)算機(jī)系張明C188S4計(jì)算機(jī)系張明C170S5計(jì)算機(jī)系張明C178
…
…
…
72019年8月26Student表SnoSdeptM關(guān)系模式Student<U,F>中存在的問(wèn)題⒈數(shù)據(jù)冗余太大浪費(fèi)大量的存儲(chǔ)空間
例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)⒉修改復(fù)雜(UpdateAnomalies)數(shù)據(jù)冗余,修改數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組82019年8月26關(guān)系模式Student<U,F>中存在的問(wèn)題⒈數(shù)據(jù)冗余太關(guān)系模式Student<U,F>中存在的問(wèn)題⒊插入異常(InsertionAnomalies)該插的數(shù)據(jù)插不進(jìn)去例,如果一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。⒋刪除異常(DeletionAnomalies)不該刪除的數(shù)據(jù)不得不刪 例,如果某個(gè)系的學(xué)生全部畢業(yè)了,我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。92019年8月26關(guān)系模式Student<U,F>中存在的問(wèn)題⒊插入異常(數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))結(jié)論:Student關(guān)系模式不是一個(gè)好的模式?!昂谩钡哪J剑翰粫?huì)發(fā)生更新異常(插入異常、刪除異常、修改復(fù)雜),數(shù)據(jù)冗余應(yīng)盡可能少。102019年8月26數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))結(jié)論:102019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出6.2規(guī)范化6.3數(shù)據(jù)依賴(lài)的公理系統(tǒng)*6.4模式的分解6.5小結(jié)112019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出112019年8月266.2規(guī)范化
規(guī)范化理論正是用來(lái)改造關(guān)系模式,通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴(lài),以解決插入異常、刪除異常、修改復(fù)雜和數(shù)據(jù)冗余問(wèn)題。122019年8月266.2規(guī)范化122019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)(P170)
數(shù)據(jù)依賴(lài)是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系。這種約束關(guān)系是通過(guò)屬性間值的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間的相關(guān)聯(lián)系。是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語(yǔ)義的體現(xiàn)。132019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)(P170)132019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)的類(lèi)型函數(shù)依賴(lài)(FunctionalDependency,簡(jiǎn)記為FD)多值依賴(lài)(MultivaluedDependency,簡(jiǎn)記為MVD)142019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)的類(lèi)型142019年8月266.2.1函數(shù)依賴(lài)一、函數(shù)依賴(lài)二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)四、傳遞函數(shù)依賴(lài)152019年8月266.2.1函數(shù)依賴(lài)一、函數(shù)依賴(lài)152019年8月26一、函數(shù)依賴(lài)(P172)定義6.1設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱(chēng)“X函數(shù)確定Y”
或“Y函數(shù)依賴(lài)于X”,記作X→Y。162019年8月26一、函數(shù)依賴(lài)(P172)定義6.1設(shè)R(U)是一個(gè)屬性函數(shù)依賴(lài)(續(xù))定義:設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,對(duì)于X的每一個(gè)值,Y都有一個(gè)確定的值與之對(duì)應(yīng),則稱(chēng)“X函數(shù)確定Y”
或“Y函數(shù)依賴(lài)于X”,記作X→Y。172019年8月26函數(shù)依賴(lài)(續(xù))定義:設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,一、函數(shù)依賴(lài)(續(xù))
為什么叫函數(shù)依賴(lài)?
Y=f(X)X0---Y0X1---Y1XN---YN182019年8月26一、函數(shù)依賴(lài)(續(xù))為什么叫函數(shù)依賴(lài)?182019年8月26說(shuō)明:
1.函數(shù)依賴(lài)不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿(mǎn)足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿(mǎn)足的約束條件。2.函數(shù)依賴(lài)是語(yǔ)義范疇的概念。只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確定函數(shù)依賴(lài)。例如“姓名→性別”這個(gè)函數(shù)依賴(lài)只有在不允許有同名人的條件下成立192019年8月26說(shuō)明:1.函數(shù)依賴(lài)不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿(mǎn)函數(shù)依賴(lài)(續(xù))例:Student(Sno,Sname,Ssex,Sage,Sdept)
假設(shè)不允許重名,則有:Sno→Ssex,Sno→Sage,Sno→Sdept,Sno
←→
Sname,Sname→Ssex,Sname→SageSname→Sdept但Ssex→Sage若X→Y,并且Y→X,則記為X←→Y。若Y不函數(shù)依賴(lài)于X,則記為X─→Y。202019年8月26函數(shù)依賴(lài)(續(xù))例:Student(Sno,Sname,二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)在關(guān)系模式R(U)中,對(duì)于U的子集X和Y,如果X→Y,但YX,則稱(chēng)X→Y是非平凡的函數(shù)依賴(lài)若X→Y,但YX,則稱(chēng)X→Y是平凡的函數(shù)依賴(lài)?yán)涸陉P(guān)系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴(lài):(Sno,Cno)→
Grade
平凡函數(shù)依賴(lài):(Sno,Cno)→
Sno(Sno,Cno)→CnoCno→Cno212019年8月26二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)在關(guān)系模式R(U)中,對(duì)于U平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)(續(xù))對(duì)于任一關(guān)系模式,平凡函數(shù)依賴(lài)都是必然成立的,它不反映新的語(yǔ)義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴(lài)。222019年8月26平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)(續(xù))對(duì)于任一關(guān)系模式,平凡函數(shù)三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)定義6.2在關(guān)系模式R(U)中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X’,都有X’Y,則稱(chēng)Y完全函數(shù)依賴(lài)于X,記作Xf
Y。若X→Y,但Y不完全函數(shù)依賴(lài)于X,則稱(chēng)Y部分函數(shù)依賴(lài)于X,記作XPY。
232019年8月26三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)定義6.2在關(guān)系模式R(U完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)(續(xù))例:在關(guān)系SC(Sno,Cno,Grade)中,由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)fGrade例:在關(guān)系SC(Sno,Sname,Cno,Cname,Grade)中,
(Sno,Cno)pSname(Sno,Cno)pCname
242019年8月26完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)(續(xù))例:在關(guān)系SC(Sno,四、傳遞函數(shù)依賴(lài)定義6.3在關(guān)系模式R(U)中,如果X→Y,Y→Z,且YX,ZY,Y→X,則稱(chēng)Z傳遞函數(shù)依賴(lài)于X。
注:如果Y→X,即X←→Y,則Z直接依賴(lài)于X。例:在關(guān)系Std(Sno,Sdept,Mname)中,有:
Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴(lài)于Sno252019年8月26四、傳遞函數(shù)依賴(lài)定義6.3在關(guān)系模式R(U)中,如果X→6.2.2碼(與第二章P44的定義比較)定義6.4設(shè)K為關(guān)系模式R<U,F>中的屬性或?qū)傩越M合。若KfU,則K稱(chēng)為R的一個(gè)侯選碼(CandidateKey)。若關(guān)系模式R有多個(gè)候選碼,則選定其中的一個(gè)做為主碼(Primarykey)。主屬性與非主屬性ALLKEY262019年8月266.2.2碼(與第二章P44的定義比較)定義6.4設(shè)K外部碼定義6.5關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱(chēng)X是R的外部碼(Foreignkey)也稱(chēng)外碼主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。272019年8月26外部碼定義6.5關(guān)系模式R中屬性或?qū)傩越MX并非R6.2.3范式關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系模式必須滿(mǎn)足一定的要求。滿(mǎn)足不同程度要求的為不同范式。范式的種類(lèi):
第一范式(1NF)
第二范式(2NF)
第三范式(3NF) BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)282019年8月266.2.3范式關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系模式必須滿(mǎn)足一定的要求。滿(mǎn)6.2.3范式各種范式之間存在聯(lián)系:某一關(guān)系模式R為第n范式,可簡(jiǎn)記為R∈nNF。292019年8月266.2.3范式各種范式之間存在聯(lián)系:292019年8月266.2.42NF1NF的定義 如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF。第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。但是滿(mǎn)足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。302019年8月266.2.42NF1NF的定義302019年8月262NF例:關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴(lài)包括:
(Sno,Cno)fGradeSno→SdeptSdept→Sloc(Sno,Cno)PSdept(Sno,Cno)PSlocSno→Sloc
312019年8月262NF例:關(guān)系模式SLC(Sno,Sdept,S2NFSLC的碼為(Sno,Cno)SLC滿(mǎn)足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴(lài)于碼(Sno,Cno)SnoCnoGradeSdeptSlocSLC322019年8月262NFSnoCnoGradeSdeptSlocSLC322SLC不是一個(gè)好的關(guān)系模式(1)插入異常 假設(shè)Sno=95102,Sdept=IS,Sloc=N的學(xué)生還未選課,因課程號(hào)是主屬性,因此該學(xué)生的信息無(wú)法插入SLC。(2)刪除異常假定某個(gè)學(xué)生本來(lái)只選修了3號(hào)課程這一門(mén)課?,F(xiàn)在因身體不適,他連3號(hào)課程也不選修了。因課程號(hào)是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要?jiǎng)h除。
332019年8月26SLC不是一個(gè)好的關(guān)系模式(1)插入異常332019年8月SLC不是一個(gè)好的關(guān)系模式(3)數(shù)據(jù)冗余度大如果一個(gè)學(xué)生選修了10門(mén)課程,那么他的Sdept和Sloc值就要重復(fù)存儲(chǔ)了10次。(4)修改復(fù)雜例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門(mén)課,則必須無(wú)遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。
342019年8月26SLC不是一個(gè)好的關(guān)系模式(3)數(shù)據(jù)冗余度大342019年2NF原因
Sdept、Sloc部分函數(shù)依賴(lài)于碼。解決方法
SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴(lài)
SC(Sno,Cno,Grade)
SL(Sno,Sdept,Sloc)352019年8月262NF原因352019年8月262NF函數(shù)依賴(lài)圖:SnoCnoGradeSCSLSnoSdeptSloc362019年8月262NF函數(shù)依賴(lài)圖:SnoCnoGradeSCSLSnoSde2NF2NF的定義 定義6.6若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴(lài)于R的碼,則R∈2NF。2NF的定義(等價(jià)定義) 若關(guān)系模式R∈1NF,并且消除了非主屬性對(duì)碼的部分函數(shù)依賴(lài),則R∈2NF。372019年8月262NF2NF的定義372019年8月26例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NFSL(Sno,Sdept,Sloc)∈2NF382019年8月26例:SLC(Sno,Sdept,Sloc,Cno,G如果關(guān)系模式R的碼只有一個(gè)屬性,那么R一定滿(mǎn)足二范式。392019年8月26如果關(guān)系模式R的碼只有一個(gè)屬性,那么R一定滿(mǎn)足二范式。392判斷關(guān)系模式R(U,F)是否符合二范式U={A,B,C,D}F={AB→C,B→D,C→D}
經(jīng)計(jì)算,屬性AB是唯一的碼請(qǐng)問(wèn)是否符合二范式?402019年8月26判斷關(guān)系模式R(U,F)是否符合二范式402019年8月26
第二范式(續(xù))采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。412019年8月26第二范式(續(xù))采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)26.2.53NF請(qǐng)分析關(guān)系模式SL(Sno,Sdept,Sloc),依然存在更新異常和數(shù)據(jù)冗余422019年8月266.2.53NF請(qǐng)分析關(guān)系模式SL(Sno,Sdep6.2.53NF例:2NF關(guān)系模式SL(Sno,Sdept,Sloc)中函數(shù)依賴(lài):
Sno→SdeptSdept→Sloc
Sno→Sloc Sloc傳遞函數(shù)依賴(lài)于Sno,即SL中存在非主屬性對(duì)碼的傳遞函數(shù)依賴(lài)。432019年8月266.2.53NF例:2NF關(guān)系模式SL(Sno,Sd3NF函數(shù)依賴(lài)圖:SLSnoSdeptSloc442019年8月263NF函數(shù)依賴(lài)圖:SLSnoSdeptSloc442013NF解決方法采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,以消除非主屬性的傳遞函數(shù)依賴(lài):SD(Sno,Sdept)
DL(Sdept,Sloc)SD的碼為Sno,DL的碼為Sdept。452019年8月263NF解決方法452019年8月263NFSD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL462019年8月263NFSD的碼為Sno,DL的碼為Sdept。SnoS3NF3NF的定義 定義6.7關(guān)系模式R<U,F(xiàn)>
中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→X,Y→Z,成立,則稱(chēng)R<U,F(xiàn)>∈3NF。3NF的定義(等價(jià)定義)若關(guān)系模式R∈2NF,并且消除了非主屬性對(duì)碼的傳遞函數(shù)依賴(lài),則R∈3NF。472019年8月263NF3NF的定義472019年8月26例,SL(Sno,Sdept,Sloc)∈2NFSL(Sno,Sdept,Sloc)∈3NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF482019年8月26例,SL(Sno,Sdept,Sloc)∈2NF4判斷關(guān)系模式R(U,F)是否符合三范式U={A,B,C,D}F={AB→C,AB→D,C→D}
經(jīng)計(jì)算,屬性AB是唯一的碼請(qǐng)問(wèn)是否符合三范式?492019年8月26判斷關(guān)系模式R(U,F)是否符合三范式492019年8月263NF若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴(lài)于候選碼也不傳遞函數(shù)依賴(lài)于候選碼。如果R∈3NF,則R也是2NF。采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。將一個(gè)2NF關(guān)系分解為多個(gè)3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。502019年8月263NF若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴(lài)于3NF例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。每一教師只教一門(mén)課。每門(mén)課由若干教師教,某一學(xué)生選定某門(mén)課,就確定了一個(gè)固定的教師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選課的名稱(chēng):
(S,J)→T,(S,T)→J,T→J候選碼:(S,J),(S,T)512019年8月263NF例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,TSTJ(S,T,J)符合三范式依然存在更新異常和數(shù)據(jù)冗余原因:T→J,T中沒(méi)有碼522019年8月26STJ(S,T,J)符合三范式522019年8月266.2.6BC范式(BCNF)定義6.8設(shè)關(guān)系模式R<U,F(xiàn)>∈1NF,如果對(duì)于R的每個(gè)函數(shù)依賴(lài)X→Y,若Y不屬于X,則X必含有候選碼,那么R∈BCNF。532019年8月266.2.6BC范式(BCNF)定義6.8設(shè)關(guān)系模BCNF(P177)[例5] C(CNO,CNAME,PCNO)[例6] S(SNO,SNAME,SDEPT,SAGE)[例7] SJP(S,J,P)學(xué)生\課程\名次候選碼:(S,J)和(J,P)
函數(shù)依賴(lài):(S,J)→P
,(J,P)→S542019年8月26BCNF(P177)[例5] C(CNO,CNAME,PC以上三個(gè)關(guān)系模式符合三范式,同時(shí)也符合BC范式552019年8月26以上三個(gè)關(guān)系模式符合三范式,同時(shí)也符合BC范式552019年BCNF的性質(zhì),若R∈BCNF:R∈2NFR∈3NF消除了主屬性對(duì)不包含它的碼的部分函數(shù)依賴(lài)。消除了主屬性對(duì)碼的傳遞依賴(lài)562019年8月26BCNF的性質(zhì),若R∈BCNF:R∈2NF562019年83NF與BCNF的關(guān)系如果關(guān)系模式R∈BCNF,必定有R∈3NF若R∈3NF則R不一定∈BCNF如果R∈3NF,且R只有一個(gè)候選碼,則R必屬于BCNF。572019年8月263NF與BCNF的關(guān)系如果關(guān)系模式R∈BCNF,572019
如果只有一個(gè)候選碼,對(duì)于主屬性來(lái)說(shuō),不包含它的候選碼不存在,所以,自然就不存在主屬性對(duì)不包含它的候選碼的部分依賴(lài)、傳遞依賴(lài)。582019年8月26如果只有一個(gè)候選碼,對(duì)于主屬性來(lái)說(shuō),不包含它的候選碼不存在3NF和BCNF是在函數(shù)依賴(lài)的條件下對(duì)模式分解所能達(dá)到的分離程度的測(cè)試,一個(gè)模式中的關(guān)系模式如果都屬于BCNF,那么在函數(shù)依賴(lài)范疇內(nèi),它實(shí)現(xiàn)了徹底的分離,已消除了更新異常,3NF的“不徹底”性表現(xiàn)在可能存在主屬性對(duì)碼的部分依賴(lài)和傳遞依賴(lài)。592019年8月263NF和BCNF是在函數(shù)依賴(lài)的條件下對(duì)模式分6.2.6規(guī)范化關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具。一個(gè)關(guān)系只要其分量都是不可分的數(shù)據(jù)項(xiàng),它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化。規(guī)范化程度可以有多個(gè)不同的級(jí)別602019年8月266.2.6規(guī)范化關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工規(guī)范化(續(xù))規(guī)范化程度過(guò)低的關(guān)系不一定能夠很好地描述現(xiàn)實(shí)世界,可能會(huì)存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問(wèn)題一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式集合,這種過(guò)程就叫關(guān)系模式的規(guī)范化612019年8月26規(guī)范化(續(xù))規(guī)范化程度過(guò)低的關(guān)系不一定能夠很好地描述現(xiàn)實(shí)世界規(guī)范化(續(xù))關(guān)系模式規(guī)范化的基本步驟
1NF ↓消除非主屬性對(duì)碼的部分函數(shù)依賴(lài)消除決定屬性2NF集非碼的非平↓消除非主屬性對(duì)碼的傳遞函數(shù)依賴(lài)凡函數(shù)依賴(lài)3NF↓消除主屬性對(duì)不包含自己碼的部分和傳遞函數(shù)依賴(lài)
BCNF ↓消除非平凡且非函數(shù)依賴(lài)的多值依賴(lài)
4NF622019年8月26規(guī)范化(續(xù))關(guān)系模式規(guī)范化的基本步驟622019年8月26規(guī)范化的基本思想消除不合適的數(shù)據(jù)依賴(lài)的各關(guān)系模式達(dá)到某種程度的“分離”采用“一事一地”的模式設(shè)計(jì)原則讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。若多于一個(gè)概念就把它“分離”出去所謂規(guī)范化實(shí)質(zhì)上是概念的單一化632019年8月26規(guī)范化的基本思想消除不合適的數(shù)據(jù)依賴(lài)632019年8月26規(guī)范化(續(xù))不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好在設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況和用戶(hù)應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式上面的規(guī)范化步驟可以在其中任何一步終止642019年8月26規(guī)范化(續(xù))不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好642019數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第六講關(guān)系數(shù)據(jù)理論652019年8月26數(shù)據(jù)庫(kù)系統(tǒng)概論12019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出6.2規(guī)范化6.3數(shù)據(jù)依賴(lài)的公理系統(tǒng)*6.4模式的分解6.5小結(jié)662019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出22019年8月266.1問(wèn)題的提出關(guān)系模式存在的問(wèn)題672019年8月266.1問(wèn)題的提出關(guān)系模式存在的問(wèn)題32019年8月26關(guān)系模式存在的問(wèn)題例1(P170):描述學(xué)校的數(shù)據(jù)庫(kù):
學(xué)生的學(xué)號(hào)(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程號(hào)(Cno) 成績(jī)(Grade)問(wèn)題:如何設(shè)計(jì)關(guān)系模式?提示:1.概念模型2.邏輯模型(關(guān)系模式)682019年8月26關(guān)系模式存在的問(wèn)題例1(P170):描述學(xué)校的數(shù)據(jù)庫(kù):420數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義:
⒈一個(gè)系有若干學(xué)生,一個(gè)學(xué)生只屬于一個(gè)系;⒉一個(gè)系只有一名主任;⒊一個(gè)學(xué)生可以選修多門(mén)課程,每門(mén)課程有若干學(xué)生選修;⒋每個(gè)學(xué)生所學(xué)的每門(mén)課程都有一個(gè)成績(jī)。
692019年8月26數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義:52019年假設(shè)設(shè)計(jì)成單一模式單一的關(guān)系模式:Student<U、F>U={Sno,Sdept,Mname,Cno,Grade}702019年8月26假設(shè)設(shè)計(jì)成單一模式單一的關(guān)系模式:Student<Student表SnoSdeptMnameCnoGradeS1計(jì)算機(jī)系張明C195S2計(jì)算機(jī)系張明C190S3計(jì)算機(jī)系張明C188S4計(jì)算機(jī)系張明C170S5計(jì)算機(jī)系張明C178
…
…
…
712019年8月26Student表SnoSdeptM關(guān)系模式Student<U,F>中存在的問(wèn)題⒈數(shù)據(jù)冗余太大浪費(fèi)大量的存儲(chǔ)空間
例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)⒉修改復(fù)雜(UpdateAnomalies)數(shù)據(jù)冗余,修改數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組722019年8月26關(guān)系模式Student<U,F>中存在的問(wèn)題⒈數(shù)據(jù)冗余太關(guān)系模式Student<U,F>中存在的問(wèn)題⒊插入異常(InsertionAnomalies)該插的數(shù)據(jù)插不進(jìn)去例,如果一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。⒋刪除異常(DeletionAnomalies)不該刪除的數(shù)據(jù)不得不刪 例,如果某個(gè)系的學(xué)生全部畢業(yè)了,我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。732019年8月26關(guān)系模式Student<U,F>中存在的問(wèn)題⒊插入異常(數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))結(jié)論:Student關(guān)系模式不是一個(gè)好的模式。“好”的模式:不會(huì)發(fā)生更新異常(插入異常、刪除異常、修改復(fù)雜),數(shù)據(jù)冗余應(yīng)盡可能少。742019年8月26數(shù)據(jù)依賴(lài)對(duì)關(guān)系模式的影響(續(xù))結(jié)論:102019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出6.2規(guī)范化6.3數(shù)據(jù)依賴(lài)的公理系統(tǒng)*6.4模式的分解6.5小結(jié)752019年8月26第六講關(guān)系數(shù)據(jù)理論6.1問(wèn)題的提出112019年8月266.2規(guī)范化
規(guī)范化理論正是用來(lái)改造關(guān)系模式,通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴(lài),以解決插入異常、刪除異常、修改復(fù)雜和數(shù)據(jù)冗余問(wèn)題。762019年8月266.2規(guī)范化122019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)(P170)
數(shù)據(jù)依賴(lài)是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系。這種約束關(guān)系是通過(guò)屬性間值的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間的相關(guān)聯(lián)系。是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語(yǔ)義的體現(xiàn)。772019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)(P170)132019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)的類(lèi)型函數(shù)依賴(lài)(FunctionalDependency,簡(jiǎn)記為FD)多值依賴(lài)(MultivaluedDependency,簡(jiǎn)記為MVD)782019年8月266.2規(guī)范化數(shù)據(jù)依賴(lài)的類(lèi)型142019年8月266.2.1函數(shù)依賴(lài)一、函數(shù)依賴(lài)二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)四、傳遞函數(shù)依賴(lài)792019年8月266.2.1函數(shù)依賴(lài)一、函數(shù)依賴(lài)152019年8月26一、函數(shù)依賴(lài)(P172)定義6.1設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱(chēng)“X函數(shù)確定Y”
或“Y函數(shù)依賴(lài)于X”,記作X→Y。802019年8月26一、函數(shù)依賴(lài)(P172)定義6.1設(shè)R(U)是一個(gè)屬性函數(shù)依賴(lài)(續(xù))定義:設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,對(duì)于X的每一個(gè)值,Y都有一個(gè)確定的值與之對(duì)應(yīng),則稱(chēng)“X函數(shù)確定Y”
或“Y函數(shù)依賴(lài)于X”,記作X→Y。812019年8月26函數(shù)依賴(lài)(續(xù))定義:設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,一、函數(shù)依賴(lài)(續(xù))
為什么叫函數(shù)依賴(lài)?
Y=f(X)X0---Y0X1---Y1XN---YN822019年8月26一、函數(shù)依賴(lài)(續(xù))為什么叫函數(shù)依賴(lài)?182019年8月26說(shuō)明:
1.函數(shù)依賴(lài)不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿(mǎn)足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿(mǎn)足的約束條件。2.函數(shù)依賴(lài)是語(yǔ)義范疇的概念。只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確定函數(shù)依賴(lài)。例如“姓名→性別”這個(gè)函數(shù)依賴(lài)只有在不允許有同名人的條件下成立832019年8月26說(shuō)明:1.函數(shù)依賴(lài)不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿(mǎn)函數(shù)依賴(lài)(續(xù))例:Student(Sno,Sname,Ssex,Sage,Sdept)
假設(shè)不允許重名,則有:Sno→Ssex,Sno→Sage,Sno→Sdept,Sno
←→
Sname,Sname→Ssex,Sname→SageSname→Sdept但Ssex→Sage若X→Y,并且Y→X,則記為X←→Y。若Y不函數(shù)依賴(lài)于X,則記為X─→Y。842019年8月26函數(shù)依賴(lài)(續(xù))例:Student(Sno,Sname,二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)在關(guān)系模式R(U)中,對(duì)于U的子集X和Y,如果X→Y,但YX,則稱(chēng)X→Y是非平凡的函數(shù)依賴(lài)若X→Y,但YX,則稱(chēng)X→Y是平凡的函數(shù)依賴(lài)?yán)涸陉P(guān)系SC(Sno,Cno,Grade)中,非平凡函數(shù)依賴(lài):(Sno,Cno)→
Grade
平凡函數(shù)依賴(lài):(Sno,Cno)→
Sno(Sno,Cno)→CnoCno→Cno852019年8月26二、平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)在關(guān)系模式R(U)中,對(duì)于U平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)(續(xù))對(duì)于任一關(guān)系模式,平凡函數(shù)依賴(lài)都是必然成立的,它不反映新的語(yǔ)義,因此若不特別聲明,我們總是討論非平凡函數(shù)依賴(lài)。862019年8月26平凡函數(shù)依賴(lài)與非平凡函數(shù)依賴(lài)(續(xù))對(duì)于任一關(guān)系模式,平凡函數(shù)三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)定義6.2在關(guān)系模式R(U)中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X’,都有X’Y,則稱(chēng)Y完全函數(shù)依賴(lài)于X,記作Xf
Y。若X→Y,但Y不完全函數(shù)依賴(lài)于X,則稱(chēng)Y部分函數(shù)依賴(lài)于X,記作XPY。
872019年8月26三、完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)定義6.2在關(guān)系模式R(U完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)(續(xù))例:在關(guān)系SC(Sno,Cno,Grade)中,由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)fGrade例:在關(guān)系SC(Sno,Sname,Cno,Cname,Grade)中,
(Sno,Cno)pSname(Sno,Cno)pCname
882019年8月26完全函數(shù)依賴(lài)與部分函數(shù)依賴(lài)(續(xù))例:在關(guān)系SC(Sno,四、傳遞函數(shù)依賴(lài)定義6.3在關(guān)系模式R(U)中,如果X→Y,Y→Z,且YX,ZY,Y→X,則稱(chēng)Z傳遞函數(shù)依賴(lài)于X。
注:如果Y→X,即X←→Y,則Z直接依賴(lài)于X。例:在關(guān)系Std(Sno,Sdept,Mname)中,有:
Sno→Sdept,Sdept→MnameMname傳遞函數(shù)依賴(lài)于Sno892019年8月26四、傳遞函數(shù)依賴(lài)定義6.3在關(guān)系模式R(U)中,如果X→6.2.2碼(與第二章P44的定義比較)定義6.4設(shè)K為關(guān)系模式R<U,F>中的屬性或?qū)傩越M合。若KfU,則K稱(chēng)為R的一個(gè)侯選碼(CandidateKey)。若關(guān)系模式R有多個(gè)候選碼,則選定其中的一個(gè)做為主碼(Primarykey)。主屬性與非主屬性ALLKEY902019年8月266.2.2碼(與第二章P44的定義比較)定義6.4設(shè)K外部碼定義6.5關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱(chēng)X是R的外部碼(Foreignkey)也稱(chēng)外碼主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。912019年8月26外部碼定義6.5關(guān)系模式R中屬性或?qū)傩越MX并非R6.2.3范式關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系模式必須滿(mǎn)足一定的要求。滿(mǎn)足不同程度要求的為不同范式。范式的種類(lèi):
第一范式(1NF)
第二范式(2NF)
第三范式(3NF) BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)922019年8月266.2.3范式關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系模式必須滿(mǎn)足一定的要求。滿(mǎn)6.2.3范式各種范式之間存在聯(lián)系:某一關(guān)系模式R為第n范式,可簡(jiǎn)記為R∈nNF。932019年8月266.2.3范式各種范式之間存在聯(lián)系:292019年8月266.2.42NF1NF的定義 如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF。第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。但是滿(mǎn)足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。942019年8月266.2.42NF1NF的定義302019年8月262NF例:關(guān)系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。函數(shù)依賴(lài)包括:
(Sno,Cno)fGradeSno→SdeptSdept→Sloc(Sno,Cno)PSdept(Sno,Cno)PSlocSno→Sloc
952019年8月262NF例:關(guān)系模式SLC(Sno,Sdept,S2NFSLC的碼為(Sno,Cno)SLC滿(mǎn)足第一范式。非主屬性Sdept和Sloc部分函數(shù)依賴(lài)于碼(Sno,Cno)SnoCnoGradeSdeptSlocSLC962019年8月262NFSnoCnoGradeSdeptSlocSLC322SLC不是一個(gè)好的關(guān)系模式(1)插入異常 假設(shè)Sno=95102,Sdept=IS,Sloc=N的學(xué)生還未選課,因課程號(hào)是主屬性,因此該學(xué)生的信息無(wú)法插入SLC。(2)刪除異常假定某個(gè)學(xué)生本來(lái)只選修了3號(hào)課程這一門(mén)課?,F(xiàn)在因身體不適,他連3號(hào)課程也不選修了。因課程號(hào)是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要?jiǎng)h除。
972019年8月26SLC不是一個(gè)好的關(guān)系模式(1)插入異常332019年8月SLC不是一個(gè)好的關(guān)系模式(3)數(shù)據(jù)冗余度大如果一個(gè)學(xué)生選修了10門(mén)課程,那么他的Sdept和Sloc值就要重復(fù)存儲(chǔ)了10次。(4)修改復(fù)雜例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門(mén)課,則必須無(wú)遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。
982019年8月26SLC不是一個(gè)好的關(guān)系模式(3)數(shù)據(jù)冗余度大342019年2NF原因
Sdept、Sloc部分函數(shù)依賴(lài)于碼。解決方法
SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴(lài)
SC(Sno,Cno,Grade)
SL(Sno,Sdept,Sloc)992019年8月262NF原因352019年8月262NF函數(shù)依賴(lài)圖:SnoCnoGradeSCSLSnoSdeptSloc1002019年8月262NF函數(shù)依賴(lài)圖:SnoCnoGradeSCSLSnoSde2NF2NF的定義 定義6.6若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴(lài)于R的碼,則R∈2NF。2NF的定義(等價(jià)定義) 若關(guān)系模式R∈1NF,并且消除了非主屬性對(duì)碼的部分函數(shù)依賴(lài),則R∈2NF。1012019年8月262NF2NF的定義372019年8月26例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NFSL(Sno,Sdept,Sloc)∈2NF1022019年8月26例:SLC(Sno,Sdept,Sloc,Cno,G如果關(guān)系模式R的碼只有一個(gè)屬性,那么R一定滿(mǎn)足二范式。1032019年8月26如果關(guān)系模式R的碼只有一個(gè)屬性,那么R一定滿(mǎn)足二范式。392判斷關(guān)系模式R(U,F)是否符合二范式U={A,B,C,D}F={AB→C,B→D,C→D}
經(jīng)計(jì)算,屬性AB是唯一的碼請(qǐng)問(wèn)是否符合二范式?1042019年8月26判斷關(guān)系模式R(U,F)是否符合二范式402019年8月26
第二范式(續(xù))采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。1052019年8月26第二范式(續(xù))采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)26.2.53NF請(qǐng)分析關(guān)系模式SL(Sno,Sdept,Sloc),依然存在更新異常和數(shù)據(jù)冗余1062019年8月266.2.53NF請(qǐng)分析關(guān)系模式SL(Sno,Sdep6.2.53NF例:2NF關(guān)系模式SL(Sno,Sdept,Sloc)中函數(shù)依賴(lài):
Sno→SdeptSdept→Sloc
Sno→Sloc Sloc傳遞函數(shù)依賴(lài)于Sno,即SL中存在非主屬性對(duì)碼的傳遞函數(shù)依賴(lài)。1072019年8月266.2.53NF例:2NF關(guān)系模式SL(Sno,Sd3NF函數(shù)依賴(lài)圖:SLSnoSdeptSloc1082019年8月263NF函數(shù)依賴(lài)圖:SLSnoSdeptSloc442013NF解決方法采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,以消除非主屬性的傳遞函數(shù)依賴(lài):SD(Sno,Sdept)
DL(Sdept,Sloc)SD的碼為Sno,DL的碼為Sdept。1092019年8月263NF解決方法452019年8月263NFSD的碼為Sno,DL的碼為Sdept。SnoSdeptSDSdeptSlocDL1102019年8月263NFSD的碼為Sno,DL的碼為Sdept。SnoS3NF3NF的定義 定義6.7關(guān)系模式R<U,F(xiàn)>
中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→X,Y→Z,成立,則稱(chēng)R<U,F(xiàn)>∈3NF。3NF的定義(等價(jià)定義)若關(guān)系模式R∈2NF,并且消除了非主屬性對(duì)碼的傳遞函數(shù)依賴(lài),則R∈3NF。1112019年8月263NF3NF的定義472019年8月26例,SL(Sno,Sdept,Sloc)∈2NFSL(Sno,Sdept,Sloc)∈3NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF1122019年8月26例,SL(Sno,Sdept,Sloc)∈2NF4判斷關(guān)系模式R(U,F)是否符合三范式U={A,B,C,D}F={AB→C,AB→D,C→D}
經(jīng)計(jì)算,屬性AB是唯一的碼請(qǐng)問(wèn)是否符合三范式?1132019年8月26判斷關(guān)系模式R(U,F)是否符合三范式492019年8月263NF若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴(lài)于候選碼也不傳遞函數(shù)依賴(lài)于候選碼。如果R∈3NF,則R也是2NF。采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。將一個(gè)2NF關(guān)系分解為多個(gè)3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。1142019年8月263NF若R∈3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴(lài)于3NF例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025關(guān)于出版社與作者版權(quán)轉(zhuǎn)讓合同
- 2025勞動(dòng)合同法辭職規(guī)定
- 《2025年的青島房屋租賃合同》
- 2025供應(yīng)商與分銷(xiāo)商合作合同模板
- 2025 水產(chǎn)品買(mǎi)賣(mài)合同
- 幼兒園中班課程藝術(shù)造飛機(jī)
- 2025租房合同書(shū)格式樣本
- 2025商業(yè)辦公房買(mǎi)賣(mài)合同模板
- 幼兒園家庭教育的意義與實(shí)踐
- 2025中學(xué)助學(xué)金借款合同協(xié)議
- 七類(lèi)作業(yè)JSA分析記錄表格模板
- 心理統(tǒng)計(jì)學(xué)考研歷年真題及答案
- 2022年中國(guó)石油大學(xué)《化工原理二》完整答案詳解
- 技術(shù)經(jīng)紀(jì)人練習(xí)題集附有答案
- 內(nèi)科學(xué)講義(唐子益版)
- GB/T 4357-2022冷拉碳素彈簧鋼絲
- GB/T 19845-2005機(jī)械振動(dòng)船舶設(shè)備和機(jī)械部件的振動(dòng)試驗(yàn)要求
- GB/T 14614-1993小麥粉吸水量和面團(tuán)揉和性能測(cè)定法粉質(zhì)儀法
- 醬酒行業(yè)發(fā)展趨勢(shì)分析
- 《紅樓夢(mèng)》賈府平面圖
- 養(yǎng)老機(jī)構(gòu)全套服務(wù)管理流程圖()
評(píng)論
0/150
提交評(píng)論