任務(wù)2 SQL Server數(shù)據(jù)庫概念_第1頁
任務(wù)2 SQL Server數(shù)據(jù)庫概念_第2頁
任務(wù)2 SQL Server數(shù)據(jù)庫概念_第3頁
任務(wù)2 SQL Server數(shù)據(jù)庫概念_第4頁
任務(wù)2 SQL Server數(shù)據(jù)庫概念_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、任務(wù)2 SQL Server數(shù)據(jù)庫概念學(xué)習(xí)目的和要求本任務(wù)講解SQL Server數(shù)據(jù)庫的概念,內(nèi)容的理論性較強。 需要了解: SQL Server 的7個系統(tǒng)表。 需要牢固掌握:數(shù)據(jù)庫的類別及數(shù)據(jù)庫結(jié)構(gòu); SQL Server 2000的數(shù)據(jù)庫對象; SQL Server 系統(tǒng)數(shù)據(jù)庫的概念及作用。 難點: SQL Server 2000的數(shù)據(jù)庫對象。 1任務(wù)2 關(guān)系數(shù)據(jù)庫理論1. 關(guān)系模式設(shè)計中的問題2. 函數(shù)依賴3. 范式4. 關(guān)系模式的規(guī)范化5. 小結(jié)2任務(wù)2 關(guān)系數(shù)據(jù)庫理論 關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要包括三個方面的內(nèi)容:函數(shù)依賴、范式和模式設(shè)計。 其中函數(shù)依賴起著核心的作用,是模式分解

2、和模式設(shè)計的基礎(chǔ),范式是模式分解的標準。31.關(guān)系模式設(shè)計中的問題關(guān)系數(shù)據(jù)庫邏輯設(shè)計針對具體問題,如何構(gòu)造一個適合于它的數(shù)據(jù)模式;數(shù)據(jù)庫邏輯設(shè)計的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論。4 1.關(guān)系模式設(shè)計中的問題(1)概念回顧(2)關(guān)系模式的形式化定義(3)什么是數(shù)據(jù)依賴(4)關(guān)系模式的簡化定義(5)數(shù)據(jù)依賴對關(guān)系模式影響5(1)概念回顧關(guān)系:描述實體、屬性、實體間的聯(lián)系。從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個子集。關(guān)系模式:用來定義關(guān)系。關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫,利用關(guān)系來描述現(xiàn)實世界。從形式上看,它由一組關(guān)系組成。關(guān)系數(shù)據(jù)庫的模式:定義這組關(guān)系的關(guān)系模式的全體。6(2)關(guān)系

3、模式的形式化定義關(guān)系模式由五部分組成,即它是一個五元組: R(U, D, DOM, F)R: 關(guān)系名U: 組成該關(guān)系的屬性名集合D: 屬性組U中屬性所來自的域DOM:屬性向域的映象集合F: 屬性間數(shù)據(jù)的依賴關(guān)系集合7(3)什么是數(shù)據(jù)依賴完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學(xué)生成績必須在0-100之間定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵。8(3)什么是數(shù)據(jù)依賴數(shù)據(jù)依賴是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系;是現(xiàn)實世界屬性間相互聯(lián)系的抽象;是數(shù)據(jù)內(nèi)在的性質(zhì);是語義的體現(xiàn)。9(3)什么是數(shù)據(jù)依賴數(shù)據(jù)依賴的類型函數(shù)依賴(

4、Functional Dependency,簡記為FD)多值依賴(Multivalued Dependency,簡記為MVD)其他(如連接依賴)。10(4)關(guān)系模式的簡化表示關(guān)系模式R(U, D, DOM, F) 簡化為一個三元組: R(U, F)當(dāng)且僅當(dāng)U上的一個關(guān)系r 滿足F時,r稱為關(guān)系模式 R(U, F)的一個關(guān)系11(5)數(shù)據(jù)依賴對關(guān)系模式的影響例:描述學(xué)校的數(shù)據(jù)庫:學(xué)生的學(xué)號(Sno)、所在系(Sdept)系主任姓名(Mname)、課程名(Cname)成績(Grade)單一的關(guān)系模式 : Student U Sno, Sdept, Mname, Cname, Grade 12(5)

5、數(shù)據(jù)依賴對關(guān)系模式的影響學(xué)校數(shù)據(jù)庫的語義: 一個系有若干學(xué)生, 一個學(xué)生只屬于一個系; 一個系只有一名主任; 一個學(xué)生可以選修多門課程, 每門課程有若干學(xué)生選修; 每個學(xué)生所學(xué)的每門課程都有一個成績。 13(5)數(shù)據(jù)依賴對關(guān)系模式的影響屬性組U上的一組函數(shù)依賴F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade SnoCnameSdeptMnameGrade14關(guān)系模式Student(U, F)中存在的問題1) 數(shù)據(jù)冗余太大浪費大量的存儲空間 例:每一個系主任的姓名重復(fù)出現(xiàn)2)更新異常(Update Anomalies)數(shù)據(jù)冗余 ,更新數(shù)據(jù)時,維護數(shù)據(jù)

6、完整性代價大。例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個元組。15關(guān)系模式Student(U, F)中存在的問題3)插入異常(Insertion Anomalies)該插的數(shù)據(jù)插不進去 例,如果一個系剛成立,尚無學(xué)生,我們就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。4)刪除異常(Deletion Anomalies)不該刪除的數(shù)據(jù)不得不刪例,如果某個系的學(xué)生全部畢業(yè)了, 我們在刪除該系學(xué)生信息的同時,把這個系及其系主任的信息也丟掉了。16(5)數(shù)據(jù)依賴對關(guān)系模式的影響結(jié)論:Student關(guān)系模式不是一個好的模式。“好”的模式:不會發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少

7、。原因:由存在于模式中的某些數(shù)據(jù)依賴引起的。解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。172.函數(shù)依賴 關(guān)系模式中各屬性之間相互依賴、相互制約的聯(lián)系稱為數(shù)據(jù)依賴。 數(shù)據(jù)依賴一般分為:函數(shù)依賴、多值依賴和連接依賴。18(1)函數(shù)依賴的定義及性質(zhì)1)函數(shù)依賴2)平凡函數(shù)依賴與非平凡函數(shù)依賴3)函數(shù)依賴的幾點說明191)函數(shù)依賴定義3.1 設(shè)關(guān)系模式R(U,F(xiàn)), U是屬性集,F(xiàn)是U上的函數(shù)依賴集,X和Y是U的子集。 若對于R(U)的任意一個可能的關(guān)系r,對于X的一個具體值, Y都有唯一的具體值與之對應(yīng), 則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”,記作XY。 X稱為這個函數(shù)依賴的決

8、定屬性集,Y為依賴屬性集。 20說明: 1. 函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)系實例滿足的約束條件,而是指R的所有關(guān)系實例均要滿足的約束條件。2. 函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。 例如“姓名年齡”這個函數(shù)依賴只有在不允許有同名人的條件下成立3. 數(shù)據(jù)庫設(shè)計者可以對現(xiàn)實世界作強制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在, 則拒絕裝入該元組。211)函數(shù)依賴例: Student(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有:Sno Ssex, Sno

9、Sage , Sno Sdept, Sno Sname, Sname Ssex, Sname SageSname Sdept但Ssex Sage 若XY,并且YX, 則記為XY。 若Y不函數(shù)依賴于X, 則記為XY。222)平凡函數(shù)依賴與非平凡函數(shù)依賴在關(guān)系模式R(U)中,對于U的子集X和Y,如果XY,但Y X,則稱XY是非平凡的函數(shù)依賴;若XY,但Y X, 則稱XY是平凡的函數(shù)依賴。例:在關(guān)系SC(Sno, Cno, Grade)中, 非平凡函數(shù)依賴: (Sno, Cno) Grade 平凡函數(shù)依賴: (Sno, Cno) Sno (Sno, Cno) Cno23平凡函數(shù)依賴與非平凡函數(shù)依賴(

10、續(xù))對于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明, 我們總是討論非平凡函數(shù)依賴。243)函數(shù)依賴的幾點說明函數(shù)依賴是語義范疇的概念: 我們只能根據(jù)語義來確定一個函數(shù)依賴,而不能按照其形式定義來證明一個函數(shù)依賴是否成立。253)函數(shù)依賴的幾點說明函數(shù)依賴與屬性之間的聯(lián)系類型有關(guān):(1)在一個關(guān)系中,若屬性X和Y有1:1的關(guān)系,則存在函數(shù)依賴XY,和YX, 即XY。例如當(dāng)學(xué)生無重名時, Sno Sname(2)若屬性X和Y有1:m的關(guān)系,則只存在函數(shù)依賴XY。(3)若屬性X和Y有m:n的關(guān)系,則X、Y之間不存在任何函數(shù)依賴關(guān)系。263)函數(shù)依賴的幾點說明函數(shù)依賴

11、的存在與時間無關(guān): 因為函數(shù)依賴是指關(guān)系中所有元組應(yīng)該滿足的約束條件,而不是指關(guān)系中某個或某些元組所滿足的約束條件,所以,當(dāng)關(guān)系中的元組增加、刪除或更新后都不能破壞這種函數(shù)依賴。因此,必須根據(jù)語義來確定屬性之間的函數(shù)依賴,而不能單憑某一時刻關(guān)系中的實際數(shù)值來判斷。函數(shù)依賴可以保證關(guān)系分解的無損連接性。27(2) 函數(shù)依賴的分類1)完全函數(shù)依賴與部分函數(shù)依賴2)傳遞函數(shù)依賴281)完全函數(shù)依賴與部分函數(shù)依賴定義3.2 在關(guān)系模式R(U)中,如果XY,并且對于X的任何一個真子集X,都有 X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若對于X的任何一個真子集X,都有X Y,則稱Y部分函數(shù)依賴于X,

12、記作X P Y。 291)完全函數(shù)依賴與部分函數(shù)依賴例: 在關(guān)系SC ( Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade由定義可知:只有當(dāng)決定因素是組合屬性時,討論部分函數(shù)依賴才有意義。 302)傳遞函數(shù)依賴定義3.3 在關(guān)系模式R(U)中,如果XY,YZ,且Y X,YX,則稱Z傳遞函數(shù)依賴于X。 記作: X T Y 注: 如果YX, 即XY,則Z直接依賴于X。例: 在關(guān)系Std (Sno, Sdept, Mname)中,有:Sno Sdept,Sdept Mname Mname傳遞函數(shù)依賴于Sno, Sno T M

13、name 312.3 范式(Normal Form) 設(shè)計任何一種數(shù)據(jù)庫應(yīng)用系統(tǒng),不管是層次的、網(wǎng)狀的、還是關(guān)系的,都會遇到如何構(gòu)造合適的數(shù)據(jù)模式即邏輯結(jié)構(gòu)的問題。即應(yīng)該構(gòu)造幾個關(guān)系,每個關(guān)系有哪些屬性組成,由于關(guān)系模型有嚴格的數(shù)學(xué)理論基礎(chǔ),并且可向別的數(shù)據(jù)模型轉(zhuǎn)換,因此人們以關(guān)系模型為背景,形成了數(shù)據(jù)庫邏輯設(shè)計的一個有力工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論。322.3 范式(Normal Form) 規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適部分,解決數(shù)據(jù)插入、刪除時發(fā)生的異常情況。這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系模式要滿足一定的條件。我們把不同的規(guī)范化標準表示為范式。由于規(guī)范

14、化程度的不同,就產(chǎn)生了不同的范式。滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式,在第一范式上滿足一定要求的稱為第二范式,以此類推。332.3 范式(Normal Form) 范式是符合某一種級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)345NF 4NF BCNF 3NF 2NF 1NF4NF5NFBCNF3NF2NF1NF規(guī)范與非規(guī)范關(guān)系各種范式之間的關(guān)系352.3 范式(Normal Form) 各種范式之間存在聯(lián)系:某一關(guān)系模式

15、R為第n范式,可簡記為R n NF。361. 1NF的定義定義3.6 1NF的定義如果一個關(guān)系模式R的所有屬性均為簡單屬性,即每個屬性都是不可分的基本數(shù)據(jù)項,則R1NF。第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。371. 1NF的定義例: 關(guān)系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地方。函數(shù)依賴包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sn

16、o, Cno) P Sloc Sdept Sloc38 1. 1NF的定義SLC的碼為(Sno, Cno)SLC滿足第一范式。 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocSLC39SLC不是一個好的關(guān)系模式(1) 插入異常假設(shè)Sno95102,SdeptIS,SlocN的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。(2) 刪除異常 假定某個學(xué)生本來只選修了3號課程這一門課?,F(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個元組都要刪除。 40SLC不是一個好的關(guān)系模式(3) 數(shù)

17、據(jù)冗余度大 如果一個學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。(4) 修改復(fù)雜 例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時,還可能需要修改住處(Sloc)。如果這個學(xué)生選修了K門課,則必須無遺漏地修改K個元組中全部Sdept、Sloc信息。 41 1. 1NF的定義原因 Sdept、 Sloc部分函數(shù)依賴于碼。解決方法 SLC分解為兩個關(guān)系模式,以消除這些部分函數(shù)依賴 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc)42 1. 1NF的定義SLC的碼為(Sno, Cno)SLC滿足第一范式。 非主屬性Sdept和Sloc部

18、分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocSLC431. 1NF的定義函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSloc44 2. 2NF的定義2NF的定義定義3.5 若關(guān)系模式R1NF,并且每一個非主屬性都完全函數(shù)依賴于R的碼,則R2NF。例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NF45 2. 2NF的定義采用投影分解法將一個1NF的關(guān)系分

19、解為多個2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。將一個1NF關(guān)系分解為多個2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。46 2. 2NF的定義例:2NF關(guān)系模式SL(Sno, Sdept, Sloc)中函數(shù)依賴: SnoSdept SdeptSloc SnoSlocSloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。47 2. 2NF的定義函數(shù)依賴圖:SLSnoSdeptSloc48 2. 2NF的定義解決方法 采用投影分解法,把SL分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴: SD(Sno, S

20、dept) DL(Sdept, Sloc)SD的碼為Sno, DL的碼為Sdept。49 2. 2NF的定義SD的碼為Sno, DL的碼為Sdept。SnoSdeptSDSdeptSlocDL50 3. 3NF的定義定義3.6如果關(guān)系模式R2NF,且每一個非主屬性都不傳遞依賴于R的碼,則稱R屬于第三范式(Third Normal Form),簡稱3NF,記作R3NF。3NF是一個可用的關(guān)系模式應(yīng)滿足的最低范式。也就是說,一個關(guān)系模式如果不服從3NF,實際上它是不能使用的。 51 3. 3NF的定義例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc)

21、3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NF52 3. 3NF的定義若R3NF,則R的每一個非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。如果R3NF,則R也是2NF。采用投影分解法將一個2NF的關(guān)系分解為多個3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。 將一個2NF關(guān)系分解為多個3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。53 5.2.6 BC范式(BCNF)定義5.9 設(shè)關(guān)系模式R1NF,如果對于R的每個函數(shù)依賴XY,若Y不屬于X,則X必含有候選碼,那么RB

22、CNF。若RBCNF 每一個決定屬性集(因素)都包含(候選)碼;R中的所有屬性(主,非主屬性)都完全函數(shù)依賴于碼;R3NF(證明)若R3NF 則 R不一定BCNF。54 BCNF例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定了一個固定的教師。某個學(xué)生選修某個教師的課就確定了所選課的名稱 : (S,J)T,(S,T)J,TJ55 5.2.6 BCNF SJTSTJSTJ56BCNFSTJ3NF(S,J)和(S,T)都可以作為候選碼S、T、J都是主屬性STJBCNFTJ,T是決定屬性集,T不是候選碼57B

23、CNF解決方法:將STJ分解為二個關(guān)系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴SJSTTJTJ583NF與BCNF的關(guān)系如果關(guān)系模式RBCNF,必定有R3NF如果R3NF,且R只有一個候選碼, 則R必屬于BCNF。59BCNF的關(guān)系模式所具有的性質(zhì) 所有非主屬性都完全函數(shù)依賴于每個候選碼; 所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼; 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。602.4 關(guān)系模式的規(guī)范化一個低一級范式的關(guān)系模式,通過模式分解轉(zhuǎn)化為若干個高一級范式的關(guān)系模式的集合,這種分解的過程叫做關(guān)系模式的規(guī)范化(No

24、rmalization) 。由于低一級的關(guān)系模式分解為若干個高一級關(guān)系模式的結(jié)果不是惟一的,所以有必要討論分解后的關(guān)系模式與原關(guān)系模式“等價”的問題。只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價,分解方法才有意義。611. 關(guān)系模式規(guī)范化的原則 一個關(guān)系模式只要其分量是不可分的數(shù)據(jù)項,就可稱它為規(guī)范化的關(guān)系,但著只是最基本的規(guī)范化。 規(guī)范化的目的使結(jié)構(gòu)合理,消除存儲異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。 規(guī)范化要遵循“一事一地”的基本原則,即一個關(guān)系只描述一個實體或者實體間的聯(lián)系。若多于一個實體,就把它分離出來。因此,所謂規(guī)范化,實質(zhì)上是概念的單一化,即一個關(guān)系表示一個實體或一種聯(lián)系。

25、62消除決定因素非碼的非平凡函數(shù)依賴消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴消除主屬性對碼的部分和傳遞函數(shù)依賴消除非平凡且非函數(shù)依賴的多值依賴消除不是由候選關(guān)鍵字蘊含的連接依賴1nf2nf3nfBcnf4nf5nf2. 關(guān)系模式規(guī)范化的步驟規(guī)范化是對原關(guān)系進行投影,消除決定屬性不是候選碼的任何函數(shù)依賴。633. 關(guān)系模式規(guī)范化的要求關(guān)系模式的規(guī)范化過程是通過對關(guān)系模式的投影分解來實現(xiàn)的,但是投影分解方法不是唯一的,不同的投影分解會得到不同的結(jié)果。在這些分解方法中,只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價的方法才是有意義的。所以有必要討論分解后的關(guān)系模式與原關(guān)系模式“等價

26、”的問題。 643. 關(guān)系模式規(guī)范化的要求一般情況下,我們說沒有異常弊病的數(shù)據(jù)庫設(shè)計是好的數(shù)據(jù)庫設(shè)計,一個不好的關(guān)系模式也總是可以通過分解轉(zhuǎn)換成好的關(guān)系模式的集合。但是在分解時要全面衡量,綜合考慮,視實際情況而定。對于那些只要求查詢而不要求插入、刪除等操作的系統(tǒng),幾種異?,F(xiàn)象的存在并不影響數(shù)據(jù)庫的操作。這時便不宜過度分解,否則當(dāng)要對整體查詢時,需要更多的多表連接操作,這有可能得不償失。在實際應(yīng)用中,最有價值的是3NF和BCNF,在進行關(guān)系模式的設(shè)計時,通常分解到3NF就足夠了。 653. 關(guān)系模式規(guī)范化的要求三種模式分解的“等價”定義 分解具有無損連接性:信息不失真(不增減信息) 分解要保持函

27、數(shù)依賴:不破壞屬性間存在的依賴關(guān)系。 分解既要保持函數(shù)依賴,又要具有無損連接性663. 關(guān)系模式規(guī)范化的要求(1) 無損連接性 所謂無損連接性是指,對關(guān)系模式分解時,原關(guān)系模式下的任一合法關(guān)系實例,在分解之后,應(yīng)能通過自然連接運算恢復(fù)起來。無損連接性有時也稱為無損分解。 無損連接反映了模式分解的數(shù)據(jù)等價原則。673. 關(guān)系模式規(guī)范化的要求例: SL(Sno, Sdept, Sloc) F= Sno Sdept , Sdept Sloc , Sno Sloc SL2NF 存在插入異常、刪除異常、冗余度大和修改復(fù)雜等問題分解方法可以有多種 683. 關(guān)系模式規(guī)范化的要求SL SnoSdeptSlo

28、c 95001 CS A 95002 IS B 95003 MA C 95004 IS B 95005 PH B 693. 關(guān)系模式規(guī)范化的要求1)SL分解為下面三個關(guān)系模式: SN(Sno) SD(Sdept) SO(Sloc)70分解后的關(guān)系為: SN SD SO Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 PH 95005 713. 關(guān)系模式規(guī)范化的要求分解后的數(shù)據(jù)庫丟失了許多信息 例如無法查詢95001學(xué)生所在系或所在宿舍。 如果分解后的關(guān)系可以通過自然連接恢復(fù)為原來的關(guān)系,那么這種分解就沒有丟失信息。723. 關(guān)系模式規(guī)

29、范化的要求2) SL分解為下面二個關(guān)系模式: NL(Sno, Sloc) DL(Sdept, Sloc)分解后的關(guān)系為: NL DL Sno Sloc Sdept Sloc 95001 A CS A 95002 B IS B 95003 C MA C 95004 B PH B 95005 B 73模式的分解(續(xù))NL DL Sno Sloc Sdept 95001 A CS 95002 B IS 95002 B PH 95003 C MA 95004 B IS 95004 B PH 95005 B IS 95005 B PH 74模式的分解(續(xù))NL DL比原來的SL關(guān)系多了3個元組 無法知道

30、95002、95004、95005 究竟是哪個系的學(xué)生 元組增加了,信息丟失了。753. 關(guān)系模式規(guī)范化的要求3) 將SL分解為下面二個關(guān)系模式: ND(Sno, Sdept) NL(Sno, Sloc) 分解后的關(guān)系為: 76模式的分解(續(xù))ND NL Sno Sdept Sno Sloc 95001 CS 95001 A 95002 IS 95002 B 95003 MA 95003 C 95004 IS 95004 B 95005 PH 95005 B 77模式的分解(續(xù)) ND NL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 950

31、04 CS A 95005 PH B 與SL關(guān)系一樣,因此沒有丟失信息。783. 關(guān)系模式規(guī)范化的要求定義3-7 無損連接性(Lossless Join):設(shè)關(guān)系模式R(U,F)被分解為若干個關(guān)系模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),RK(UK,F(xiàn)K),其中U= U1U2UK,且不存在UiUj,Fi為F在Ui上的投影,如果R與R1,R2,RK自然連接的結(jié)果相等,則稱關(guān)系模式R的分解具有無損連接性。具有無損連接性的分解保證不丟失信息;無損連接性不一定能解決插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題。793. 關(guān)系模式規(guī)范化的要求 第三種分解方法具有無損連接性 問題: 這種分解方法沒有保持

32、原關(guān)系中的函數(shù)依賴 SL中的函數(shù)依賴SdeptSloc 沒有投影到關(guān)系模式ND、NL上 803. 關(guān)系模式規(guī)范化的要求定義3-8 函數(shù)依賴保持性(Preserve Dependency):設(shè)關(guān)系模式R(U,F)被分解為若干個關(guān)系模式R1(U1,F(xiàn)1),R2(U2,F(xiàn)2),RK(UK,F(xiàn)K),其中U= U1U2UK,且不存在UiUj,Fi為F在Ui上的投影,如果F所蘊含的函數(shù)依賴一定也有分解到的某個關(guān)系模式中的函數(shù)依賴Fi所蘊含,則稱關(guān)系模式R的分解具有函數(shù)依賴保持性。 813. 關(guān)系模式規(guī)范化的要求當(dāng)對關(guān)系模式R進行分解時,R的函數(shù)依賴集也按相應(yīng)的模式進行分解。如果分解后總的函數(shù)依賴集與原函數(shù)

33、依賴集保持一致,則稱保持依賴。保持依賴反映了模式分解的依賴等價原則。依賴等價保證了分解后的模式與原有的模式在數(shù)據(jù)語義上的一致性。 823. 關(guān)系模式規(guī)范化的要求 實際上在對模式分解時,除考慮數(shù)據(jù)等價和依賴等價以外,還要考慮效率。因此保留適量冗余,以達到以空間換時間的目的,這也是模式分解的一個重要原則。 83第四種分解方法 將SL分解為下面二個關(guān)系模式: ND(Sno, Sdept) DL(Sdept, Sloc) 這種分解方法就保持了函數(shù)依賴。843. 關(guān)系模式規(guī)范化的要求 無損連接性和函數(shù)依賴保持性是兩個相互獨立的標準。具有無損連接性的分解不一定具有函數(shù)依賴保持性。同樣,具有函數(shù)依賴保持性的

34、分解不一定具有無損連接性。 85模式的分解(續(xù))如果一個分解具有無損連接性,則它能夠保證不丟失信息。如果一個分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況。分解具有無損連接性和分解保持函數(shù)依賴是兩個互相獨立的標準。具有無損連接性的分解不一定能夠保持函數(shù)依賴。同樣,保持函數(shù)依賴的分解也不一定具有無損連接性。86模式的分解(續(xù))第一種分解方法既不具有無損連接性,也未保持函 數(shù)依賴,它不是原關(guān)系模式的一個等價分解;第二種分解方法保持了函數(shù)依賴,但不具有無損連 接性;第三種分解方法具有無損連接性,但未持函數(shù)依賴;第四種分解方法既具有無損連接性,又保持了函數(shù) 依賴。874. 關(guān)系模式分解的方法 關(guān)系

35、模式分解的基礎(chǔ)是鍵碼和函數(shù)依賴。當(dāng)我們對關(guān)系模式中屬性之間的內(nèi)在聯(lián)系做了深入、準確的分析,確定了鍵碼和函數(shù)依賴后采用下述方法進行分解。 884. 關(guān)系模式分解的方法 方法一 部分依賴歸子集;完全依賴隨鍵碼要使不屬于第二范式的關(guān)系模式“升級”,就要消除非主屬性對鍵碼的部分函數(shù)依賴。解決的方法就是對原有模式進行分解。分解的關(guān)鍵在于:找出對鍵碼部分依賴的非主屬性所依賴的鍵碼的真子集,然后把這個真子集與所有相應(yīng)的非主屬性組合成一個新模式;對鍵碼完全依賴的所有非主屬性則與鍵碼組合成另一個新模式。 894. 關(guān)系模式分解的方法例如,對于教學(xué)關(guān)系模式:U=學(xué)號,姓名,年齡,性別,系名,系主任,課程名,成績;

36、F=學(xué)號姓名,學(xué)號年齡,學(xué)號性別,學(xué)號系名,系名系主任, (學(xué)號,課程名)成績 904. 關(guān)系模式分解的方法按照完全函數(shù)依賴和部分函數(shù)依賴的概念,可以看出成績完全依賴(學(xué)號,課程名);姓名,年齡,性別,系名,系主任函數(shù)依賴于學(xué)號,而對于(學(xué)號,課程名)只是部分依賴。 學(xué)生-系(學(xué)號,姓名,年齡,性別,系名,系主任)選課(學(xué)號,課程名,成績)。 914. 關(guān)系模式分解的方法方法二 基本依賴為基礎(chǔ),中間屬性作橋梁。要使不屬于第三范式的關(guān)系模式“升級”,就要消除非主屬性對鍵碼的傳遞函數(shù)依賴。解決的方法非常簡單:以構(gòu)成傳遞鏈的兩個基本依賴為基礎(chǔ)形成兩個新的模式,這樣既切斷了傳遞鏈,又保持了兩個基本依賴

37、,同時又有中間屬性作為橋梁,跨接兩個新的模式,從而實現(xiàn)無損的自然連接。 924. 關(guān)系模式分解的方法例如方法一中分解后得到的關(guān)系模式學(xué)生-系中:U=學(xué)號,姓名,年齡,性別,系名,系主任;F=學(xué)號姓名,學(xué)號年齡,學(xué)號性別,學(xué)號系名,系名系主任.考查學(xué)生_系關(guān)系,會發(fā)現(xiàn)由于學(xué)生_系的關(guān)系模式中存在:學(xué)號系名,系名系主任。則:學(xué)號系主任。由于鍵碼“學(xué)號”與非主屬性“系主任”之間存在傳遞函數(shù)依賴,所以學(xué)生_系3NF。如果對學(xué)生_系關(guān)系按方法二的要求進行分解,分解后的關(guān)系模式為: 學(xué)生(學(xué)號,姓名,年齡,性別,系名); 教學(xué)系(系名,系主任).顯然分解后的各子模式均屬于3NF。 934. 關(guān)系模式分解的方法在這里強調(diào)一點:上面介紹的解決部分函數(shù)依賴和傳遞函數(shù)依賴的模式的分解方法均為既具有無損連接性,又具有函數(shù)依賴保持性的規(guī)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論