任務(wù)2SQLServer數(shù)據(jù)庫概念.ppt_第1頁
任務(wù)2SQLServer數(shù)據(jù)庫概念.ppt_第2頁
任務(wù)2SQLServer數(shù)據(jù)庫概念.ppt_第3頁
任務(wù)2SQLServer數(shù)據(jù)庫概念.ppt_第4頁
任務(wù)2SQLServer數(shù)據(jù)庫概念.ppt_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

任務(wù)2 SQL Server數(shù)據(jù)庫概念,學(xué)習(xí)目的和要求 本任務(wù)講解SQL Server數(shù)據(jù)庫的概念,內(nèi)容的理論性較強(qiáng)。 需要了解: SQL Server 的7個(gè)系統(tǒng)表。 需要牢固掌握:數(shù)據(jù)庫的類別及數(shù)據(jù)庫結(jié)構(gòu); SQL Server 2000的數(shù)據(jù)庫對象; SQL Server 系統(tǒng)數(shù)據(jù)庫的概念及作用。 難點(diǎn): SQL Server 2000的數(shù)據(jù)庫對象。,任務(wù)2 關(guān)系數(shù)據(jù)庫理論,1. 關(guān)系模式設(shè)計(jì)中的問題 2. 函數(shù)依賴 3. 范式 4. 關(guān)系模式的規(guī)范化 5. 小結(jié),任務(wù)2 關(guān)系數(shù)據(jù)庫理論,關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要包括三個(gè)方面的內(nèi)容:函數(shù)依賴、范式和模式設(shè)計(jì)。 其中函數(shù)依賴起著核心的作用,是模式分解和模式設(shè)計(jì)的基礎(chǔ),范式是模式分解的標(biāo)準(zhǔn)。,1.關(guān)系模式設(shè)計(jì)中的問題,關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì) 針對具體問題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式; 數(shù)據(jù)庫邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論。,1.關(guān)系模式設(shè)計(jì)中的問題,(1)概念回顧 (2)關(guān)系模式的形式化定義 (3)什么是數(shù)據(jù)依賴 (4)關(guān)系模式的簡化定義 (5)數(shù)據(jù)依賴對關(guān)系模式影響,(1)概念回顧,關(guān)系:描述實(shí)體、屬性、實(shí)體間的聯(lián)系。 從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個(gè)子集。 關(guān)系模式:用來定義關(guān)系。 關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫,利用關(guān)系來描述現(xiàn)實(shí)世界。 從形式上看,它由一組關(guān)系組成。 關(guān)系數(shù)據(jù)庫的模式:定義這組關(guān)系的關(guān)系模式的全體。,(2)關(guān)系模式的形式化定義,關(guān)系模式由五部分組成,即它是一個(gè)五元組: R(U, D, DOM, F) R: 關(guān)系名 U: 組成該關(guān)系的屬性名集合 D: 屬性組U中屬性所來自的域 DOM:屬性向域的映象集合 F: 屬性間數(shù)據(jù)的依賴關(guān)系集合,(3)什么是數(shù)據(jù)依賴,完整性約束的表現(xiàn)形式 限定屬性取值范圍:例如學(xué)生成績必須在0-100之間 定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計(jì)的關(guān)鍵。,(3)什么是數(shù)據(jù)依賴,數(shù)據(jù)依賴 是通過一個(gè)關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系; 是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象; 是數(shù)據(jù)內(nèi)在的性質(zhì); 是語義的體現(xiàn)。,(3)什么是數(shù)據(jù)依賴,數(shù)據(jù)依賴的類型 函數(shù)依賴(Functional Dependency,簡記為FD) 多值依賴(Multivalued Dependency,簡記為MVD) 其他(如連接依賴)。,(4)關(guān)系模式的簡化表示,關(guān)系模式R(U, D, DOM, F) 簡化為一個(gè)三元組: R(U, F) 當(dāng)且僅當(dāng)U上的一個(gè)關(guān)系r 滿足F時(shí),r稱為關(guān)系模式 R(U, F)的一個(gè)關(guān)系,(5)數(shù)據(jù)依賴對關(guān)系模式的影響,例:描述學(xué)校的數(shù)據(jù)庫: 學(xué)生的學(xué)號(hào)(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade) 單一的關(guān)系模式 : Student U Sno, Sdept, Mname, Cname, Grade ,(5)數(shù)據(jù)依賴對關(guān)系模式的影響,學(xué)校數(shù)據(jù)庫的語義: 一個(gè)系有若干學(xué)生, 一個(gè)學(xué)生只屬于一個(gè)系; 一個(gè)系只有一名主任; 一個(gè)學(xué)生可以選修多門課程, 每門課程有若干學(xué)生選修; 每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績。,(5)數(shù)據(jù)依賴對關(guān)系模式的影響,屬性組U上的一組函數(shù)依賴F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade ,關(guān)系模式Student(U, F)中存在的問題,1) 數(shù)據(jù)冗余太大 浪費(fèi)大量的存儲(chǔ)空間 例:每一個(gè)系主任的姓名重復(fù)出現(xiàn) 2)更新異常(Update Anomalies) 數(shù)據(jù)冗余 ,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組。,關(guān)系模式Student(U, F)中存在的問題,3)插入異常(Insertion Anomalies) 該插的數(shù)據(jù)插不進(jìn)去 例,如果一個(gè)系剛成立,尚無學(xué)生,我們就無法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫。 4)刪除異常(Deletion Anomalies) 不該刪除的數(shù)據(jù)不得不刪 例,如果某個(gè)系的學(xué)生全部畢業(yè)了, 我們在刪除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。,(5)數(shù)據(jù)依賴對關(guān)系模式的影響,結(jié)論: Student關(guān)系模式不是一個(gè)好的模式。 “好”的模式: 不會(huì)發(fā)生插入異常、刪除異常、更新異常, 數(shù)據(jù)冗余應(yīng)盡可能少。 原因:由存在于模式中的某些數(shù)據(jù)依賴引起的。 解決方法:通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。,2.函數(shù)依賴,關(guān)系模式中各屬性之間相互依賴、相互制約的聯(lián)系稱為數(shù)據(jù)依賴。 數(shù)據(jù)依賴一般分為:函數(shù)依賴、多值依賴和連接依賴。,(1)函數(shù)依賴的定義及性質(zhì),1)函數(shù)依賴 2)平凡函數(shù)依賴與非平凡函數(shù)依賴 3)函數(shù)依賴的幾點(diǎn)說明,1)函數(shù)依賴,定義3.1 設(shè)關(guān)系模式R(U,F(xiàn)), U是屬性集,F(xiàn)是U上的函數(shù)依賴集,X和Y是U的子集。 若對于R(U)的任意一個(gè)可能的關(guān)系r,對于X的一個(gè)具體值, Y都有唯一的具體值與之對應(yīng), 則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”,記作XY。 X稱為這個(gè)函數(shù)依賴的決定屬性集,Y為依賴屬性集。,說明:,1. 函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿足的約束條件,而是指R的所有關(guān)系實(shí)例均要滿足的約束條件。 2. 函數(shù)依賴是語義范疇的概念。只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。 例如“姓名年齡”這個(gè)函數(shù)依賴只有在不允許有同名人的條件下成立 3. 數(shù)據(jù)庫設(shè)計(jì)者可以對現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在, 則拒絕裝入該元組。,1)函數(shù)依賴,例: Student(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有: Sno Ssex, Sno Sage , Sno Sdept, Sno Sname, Sname Ssex, Sname Sage Sname Sdept 但Ssex Sage 若XY,并且YX, 則記為XY。 若Y不函數(shù)依賴于X, 則記為XY。,2)平凡函數(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) Cno,平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù)),對于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明, 我們總是討論非平凡函數(shù)依賴。,3)函數(shù)依賴的幾點(diǎn)說明,函數(shù)依賴是語義范疇的概念: 我們只能根據(jù)語義來確定一個(gè)函數(shù)依賴,而不能按照其形式定義來證明一個(gè)函數(shù)依賴是否成立。,3)函數(shù)依賴的幾點(diǎn)說明,函數(shù)依賴與屬性之間的聯(lián)系類型有關(guān): (1)在一個(gè)關(guān)系中,若屬性X和Y有1:1的關(guān)系,則存在函數(shù)依賴XY,和YX, 即XY。例如當(dāng)學(xué)生無重名時(shí), Sno Sname (2)若屬性X和Y有1:m的關(guān)系,則只存在函數(shù)依賴XY。 (3)若屬性X和Y有m:n的關(guān)系,則X、Y之間不存在任何函數(shù)依賴關(guān)系。,3)函數(shù)依賴的幾點(diǎn)說明,函數(shù)依賴的存在與時(shí)間無關(guān): 因?yàn)楹瘮?shù)依賴是指關(guān)系中所有元組應(yīng)該滿足的約束條件,而不是指關(guān)系中某個(gè)或某些元組所滿足的約束條件,所以,當(dāng)關(guān)系中的元組增加、刪除或更新后都不能破壞這種函數(shù)依賴。因此,必須根據(jù)語義來確定屬性之間的函數(shù)依賴,而不能單憑某一時(shí)刻關(guān)系中的實(shí)際數(shù)值來判斷。 函數(shù)依賴可以保證關(guān)系分解的無損連接性。,(2) 函數(shù)依賴的分類,1)完全函數(shù)依賴與部分函數(shù)依賴 2)傳遞函數(shù)依賴,1)完全函數(shù)依賴與部分函數(shù)依賴,定義3.2 在關(guān)系模式R(U)中,如果XY,并且對于X的任何一個(gè)真子集X,都有 X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若對于X的任何一個(gè)真子集X,都有X Y,則稱Y部分函數(shù)依賴于X,記作X P Y。,1)完全函數(shù)依賴與部分函數(shù)依賴,例: 在關(guān)系SC ( Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade 由定義可知:只有當(dāng)決定因素是組合屬性時(shí),討論部分函數(shù)依賴才有意義。,2)傳遞函數(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 Mname,2.3 范式(Normal Form),設(shè)計(jì)任何一種數(shù)據(jù)庫應(yīng)用系統(tǒng),不管是層次的、網(wǎng)狀的、還是關(guān)系的,都會(huì)遇到如何構(gòu)造合適的數(shù)據(jù)模式即邏輯結(jié)構(gòu)的問題。即應(yīng)該構(gòu)造幾個(gè)關(guān)系,每個(gè)關(guān)系有哪些屬性組成,由于關(guān)系模型有嚴(yán)格的數(shù)學(xué)理論基礎(chǔ),并且可向別的數(shù)據(jù)模型轉(zhuǎn)換,因此人們以關(guān)系模型為背景,形成了數(shù)據(jù)庫邏輯設(shè)計(jì)的一個(gè)有力工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論。,2.3 范式(Normal Form),規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適部分,解決數(shù)據(jù)插入、刪除時(shí)發(fā)生的異常情況。這就要求關(guān)系數(shù)據(jù)庫設(shè)計(jì)出來的關(guān)系模式要滿足一定的條件。我們把不同的規(guī)范化標(biāo)準(zhǔn)表示為范式。由于規(guī)范化程度的不同,就產(chǎn)生了不同的范式。滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式,在第一范式上滿足一定要求的稱為第二范式,以此類推。,2.3 范式(Normal Form),范式是符合某一種級別的關(guān)系模式的集合。 關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。 范式的種類: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF),5NF 4NF BCNF 3NF 2NF 1NF,各種范式之間的關(guān)系,2.3 范式(Normal Form),各種范式之間存在聯(lián)系: 某一關(guān)系模式R為第n范式,可簡記為R n NF。,1. 1NF的定義,定義3.6 1NF的定義 如果一個(gè)關(guān)系模式R的所有屬性均為簡單屬性,即每個(gè)屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R1NF。 第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。 但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。,1. 1NF的定義,例: 關(guān)系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。 函數(shù)依賴包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc,1. 1NF的定義,SLC的碼為(Sno, Cno) SLC滿足第一范式。 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno),SLC不是一個(gè)好的關(guān)系模式,(1) 插入異常 假設(shè)Sno95102,SdeptIS,SlocN的學(xué)生還未選課,因課程號(hào)是主屬性,因此該學(xué)生的信息無法插入SLC。 (2) 刪除異常 假定某個(gè)學(xué)生本來只選修了3號(hào)課程這一門課?,F(xiàn)在因身體不適,他連3號(hào)課程也不選修了。因課程號(hào)是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要?jiǎng)h除。,SLC不是一個(gè)好的關(guān)系模式,(3) 數(shù)據(jù)冗余度大 如果一個(gè)學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲(chǔ)了10次。 (4) 修改復(fù)雜 例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門課,則必須無遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。,1. 1NF的定義,原因 Sdept、 Sloc部分函數(shù)依賴于碼。 解決方法 SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc),1. 1NF的定義,SLC的碼為(Sno, Cno) SLC滿足第一范式。 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno),1. 1NF的定義,函數(shù)依賴圖:,2. 2NF的定義,2NF的定義 定義3.5 若關(guān)系模式R1NF,并且每一個(gè)非主屬性都完全函數(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) 2NF,2. 2NF的定義,采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。 將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。,2. 2NF的定義,例:2NF關(guān)系模式SL(Sno, Sdept, Sloc)中 函數(shù)依賴: SnoSdept SdeptSloc SnoSloc Sloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。,2. 2NF的定義,函數(shù)依賴圖:,2. 2NF的定義,解決方法 采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴: SD(Sno, Sdept) DL(Sdept, Sloc) SD的碼為Sno, DL的碼為Sdept。,2. 2NF的定義,SD的碼為Sno, DL的碼為Sdept。,3. 3NF的定義,定義3.6如果關(guān)系模式R2NF,且每一個(gè)非主屬性都不傳遞依賴于R的碼,則稱R屬于第三范式(Third Normal Form),簡稱3NF,記作R3NF。 3NF是一個(gè)可用的關(guān)系模式應(yīng)滿足的最低范式。也就是說,一個(gè)關(guān)系模式如果不服從3NF,實(shí)際上它是不能使用的。,3. 3NF的定義,例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NF,3. 3NF的定義,若R3NF,則R的每一個(gè)非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。 如果R3NF,則R也是2NF。 采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)3NF的關(guān)系,可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。 將一個(gè)2NF關(guān)系分解為多個(gè)3NF的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。,5.2.6 BC范式(BCNF),定義5.9 設(shè)關(guān)系模式R1NF,如果對于R的每個(gè)函數(shù)依賴XY,若Y不屬于X,則X必含有候選碼,那么RBCNF。 若RBCNF 每一個(gè)決定屬性集(因素)都包含(候選)碼; R中的所有屬性(主,非主屬性)都完全函數(shù)依賴于碼; R3NF(證明) 若R3NF 則 R不一定BCNF。,BCNF,例:在關(guān)系模式STJ(S,T,J)中,S表示學(xué)生,T表示教師,J表示課程。 每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定了一個(gè)固定的教師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選課的名稱 : (S,J)T,(S,T)J,TJ,5.2.6 BCNF,BCNF,STJ3NF (S,J)和(S,T)都可以作為候選碼 S、T、J都是主屬性 STJBCNF TJ,T是決定屬性集,T不是候選碼,BCNF,解決方法:將STJ分解為二個(gè)關(guān)系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 沒有任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴,3NF與BCNF的關(guān)系,如果關(guān)系模式RBCNF,必定有R3NF 如果R3NF,且R只有一個(gè)候選碼, 則R必屬于BCNF。,BCNF的關(guān)系模式所具有的性質(zhì), 所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼; 所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼; 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。,2.4 關(guān)系模式的規(guī)范化,一個(gè)低一級范式的關(guān)系模式,通過模式分解轉(zhuǎn)化為若干個(gè)高一級范式的關(guān)系模式的集合,這種分解的過程叫做關(guān)系模式的規(guī)范化(Normalization) 。 由于低一級的關(guān)系模式分解為若干個(gè)高一級關(guān)系模式的結(jié)果不是惟一的,所以有必要討論分解后的關(guān)系模式與原關(guān)系模式“等價(jià)”的問題。 只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義。,1. 關(guān)系模式規(guī)范化的原則,一個(gè)關(guān)系模式只要其分量是不可分的數(shù)據(jù)項(xiàng),就可稱它為規(guī)范化的關(guān)系,但著只是最基本的規(guī)范化。 規(guī)范化的目的使結(jié)構(gòu)合理,消除存儲(chǔ)異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。 規(guī)范化要遵循“一事一地”的基本原則,即一個(gè)關(guān)系只描述一個(gè)實(shí)體或者實(shí)體間的聯(lián)系。若多于一個(gè)實(shí)體,就把它分離出來。因此,所謂規(guī)范化,實(shí)質(zhì)上是概念的單一化,即一個(gè)關(guān)系表示一個(gè)實(shí)體或一種聯(lián)系。,1nf 2nf 3nf Bcnf 4nf 5nf,2. 關(guān)系模式規(guī)范化的步驟,規(guī)范化是對原關(guān)系進(jìn)行投影,消除決定屬性不是候選碼的任何函數(shù)依賴。,3. 關(guān)系模式規(guī)范化的要求,關(guān)系模式的規(guī)范化過程是通過對關(guān)系模式的投影分解來實(shí)現(xiàn)的,但是投影分解方法不是唯一的,不同的投影分解會(huì)得到不同的結(jié)果。在這些分解方法中,只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià)的方法才是有意義的。所以有必要討論分解后的關(guān)系模式與原關(guān)系模式“等價(jià)”的問題。,3. 關(guān)系模式規(guī)范化的要求,一般情況下,我們說沒有異常弊病的數(shù)據(jù)庫設(shè)計(jì)是好的數(shù)據(jù)庫設(shè)計(jì),一個(gè)不好的關(guān)系模式也總是可以通過分解轉(zhuǎn)換成好的關(guān)系模式的集合。 但是在分解時(shí)要全面衡量,綜合考慮,視實(shí)際情況而定。 對于那些只要求查詢而不要求插入、刪除等操作的系統(tǒng),幾種異?,F(xiàn)象的存在并不影響數(shù)據(jù)庫的操作。這時(shí)便不宜過度分解,否則當(dāng)要對整體查詢時(shí),需要更多的多表連接操作,這有可能得不償失。 在實(shí)際應(yīng)用中,最有價(jià)值的是3NF和BCNF,在進(jìn)行關(guān)系模式的設(shè)計(jì)時(shí),通常分解到3NF就足夠了。,3. 關(guān)系模式規(guī)范化的要求,三種模式分解的“等價(jià)”定義 分解具有無損連接性:信息不失真(不增減信息) 分解要保持函數(shù)依賴:不破壞屬性間存在的依賴關(guān)系。 分解既要保持函數(shù)依賴,又要具有無損連接性,3. 關(guān)系模式規(guī)范化的要求,(1) 無損連接性 所謂無損連接性是指,對關(guān)系模式分解時(shí),原關(guān)系模式下的任一合法關(guān)系實(shí)例,在分解之后,應(yīng)能通過自然連接運(yùn)算恢復(fù)起來。無損連接性有時(shí)也稱為無損分解。 無損連接反映了模式分解的數(shù)據(jù)等價(jià)原則。,3. 關(guān)系模式規(guī)范化的要求,例: SL(Sno, Sdept, Sloc) F= Sno Sdept , Sdept Sloc , Sno Sloc SL2NF 存在插入異常、刪除異常、冗余度大和修改復(fù)雜等問題 分解方法可以有多種,3. 關(guān)系模式規(guī)范化的要求,SL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 IS B 95005 PH B ,3. 關(guān)系模式規(guī)范化的要求,1)SL分解為下面三個(gè)關(guān)系模式: SN(Sno) SD(Sdept) SO(Sloc),分解后的關(guān)系為:,SN SD SO Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 PH 95005 ,3. 關(guān)系模式規(guī)范化的要求,分解后的數(shù)據(jù)庫丟失了許多信息 例如無法查詢95001學(xué)生所在系或所在宿舍。 如果分解后的關(guān)系可以通過自然連接恢復(fù)為原來的關(guān)系,那么這種分解就沒有丟失信息。,3. 關(guān)系模式規(guī)范化的要求,2) SL分解為下面二個(gè)關(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 ,模式的分解(續(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,模式的分解(續(xù)),NL DL比原來的SL關(guān)系多了3個(gè)元組 無法知道95002、95004、95005 究竟是哪個(gè)系的學(xué)生 元組增加了,信息丟失了。,3. 關(guān)系模式規(guī)范化的要求,3) 將SL分解為下面二個(gè)關(guān)系模式: ND(Sno, Sdept) NL(Sno, Sloc) 分解后的關(guān)系為:,模式的分解(續(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 ,模式的分解(續(xù)),ND NL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 CS A 95005 PH B 與SL關(guān)系一樣,因此沒有丟失信息。,3. 關(guān)系模式規(guī)范化的要求,定義3-7 無損連接性(Lossless Join):設(shè)關(guān)系模式R(U,F)被分解為若干個(gè)關(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ù)冗余等問題。,3. 關(guān)系模式規(guī)范化的要求,第三種分解方法具有無損連接性 問題: 這種分解方法沒有保持原關(guān)系中的函數(shù)依賴 SL中的函數(shù)依賴SdeptSloc 沒有投影到關(guān)系模式ND、NL上,3. 關(guān)系模式規(guī)范化的要求,定義3-8 函數(shù)依賴保持性(Preserve Dependency):設(shè)關(guān)系模式R(U,F)被分解為若干個(gè)關(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所蘊(yùn)含的函數(shù)依賴一定也有分解到的某個(gè)關(guān)系模式中的函數(shù)依賴Fi所蘊(yùn)含,則稱關(guān)系模式R的分解具有函數(shù)依賴保持性。,3. 關(guān)系模式規(guī)范化的要求,當(dāng)對關(guān)系模式R進(jìn)行分解時(shí),R的函數(shù)依賴集也按相應(yīng)的模式進(jìn)行分解。如果分解后總的函數(shù)依賴集與原函數(shù)依賴集保持一致,則稱保持依賴。 保持依賴反映了模式分解的依賴等價(jià)原則。依賴等價(jià)保證了分解后的模式與原有的模式在數(shù)據(jù)語義上的一致性。,3. 關(guān)系模式規(guī)范化的要求,實(shí)際上在對模式分解時(shí),除考慮數(shù)據(jù)等價(jià)和依賴等價(jià)以外,還要考慮效率。因此保留適量冗余,以達(dá)到以空間換時(shí)間的目的,這也是模式分解的一個(gè)重要原則。,第四種分解方法,將SL分解為下面二個(gè)關(guān)系模式: ND(Sno, Sdept) DL(Sdept, Sloc) 這種分解方法就保持了函數(shù)依賴。,3. 關(guān)系模式規(guī)范化的要求,無損連接性和函數(shù)依賴保持性是兩個(gè)相互獨(dú)立的標(biāo)準(zhǔn)。具有無損連接性的分解不一定具有函數(shù)依賴保持性。同樣,具有函數(shù)依賴保持性的分解不一定具有無損連接性。,模式的分解(續(xù)),如果一個(gè)分解具有無損連接性,則它能夠保證不丟失信息。 如果一個(gè)分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況。 分解具有無損連接性和分解保持函數(shù)依賴是兩個(gè)互相獨(dú)立的標(biāo)準(zhǔn)。具有無損連接性的分解不一定能夠保持函數(shù)依賴。同樣,保持函數(shù)依賴的分解也不一定具有無損連接性。,模式的分解(續(xù)),第一種分解方法既不具有無損連接性,也未保持函 數(shù)依賴,它不是原關(guān)系模式的一個(gè)等價(jià)分解; 第二種分解方法保持了函數(shù)依賴,但不具有無損連 接性; 第三種分解方法具有無損連接性,但未持函數(shù)依賴; 第四種分解方法既具有無損連接性,又保持了函數(shù) 依賴。,4. 關(guān)系模式分解的方法,關(guān)系模式分解的基礎(chǔ)是鍵碼和函數(shù)依賴。當(dāng)我們對關(guān)系模式中屬性之間的內(nèi)在聯(lián)系做了深入、準(zhǔn)確的分析,確定了鍵碼和函數(shù)依賴后采用下述方法進(jìn)行分解。,4. 關(guān)系模式分解的方法,方法一 部分依賴歸子集;完全依賴隨鍵碼 要使不屬于第二范式的關(guān)系模式“升級”,就要消除非主屬性對鍵碼的部分函數(shù)依賴。解決的方法就是對原有模式進(jìn)行分解。分解的關(guān)鍵在于:找出對鍵碼部分依賴的非主屬性所依賴的鍵碼的真子集,然后把這個(gè)真子集與所有相應(yīng)的非主屬性組合成一個(gè)新模式;對鍵碼完全依賴的所有非主屬性則與鍵碼組合成另一個(gè)新模式。,4. 關(guān)系模式分解的方法,例如,對于教學(xué)關(guān)系模式: U=學(xué)號(hào),姓名,年齡,性別,系名,系主任,課程名,成績; F=學(xué)號(hào)姓名,學(xué)號(hào)年齡,學(xué)號(hào)性別,學(xué)號(hào)系名,系名系主任, (學(xué)號(hào),課程名)成績,4. 關(guān)系模式分解的方法,按照完全函數(shù)依賴和部分函數(shù)依賴的概念,可以看出成績完全依賴(學(xué)號(hào),課程名);姓名,年齡,性別,系名,系主任函數(shù)依賴于學(xué)號(hào),而對于(學(xué)號(hào),課程名)只是部分依賴。 學(xué)生-系(學(xué)號(hào),姓名,年齡,性別,系名,系主任) 選課(學(xué)號(hào),課程名,成績)。,4. 關(guān)系模式分解的方法,方法二 基本依賴為基礎(chǔ),中間屬性作橋梁。 要使不屬于第三范式的關(guān)系模式“升級”,就要消除非主屬性對鍵碼的傳遞函數(shù)依賴。解決的方法非常簡單:以構(gòu)成傳遞鏈的兩個(gè)基本依賴為基礎(chǔ)形成兩個(gè)新的模式,這樣既切斷了傳遞鏈,又保持了兩個(gè)基本依賴,同時(shí)又有中間屬性作為橋梁,跨接兩個(gè)新的模式,從而實(shí)現(xiàn)無損的自然連接。,4. 關(guān)系模式分解的方法,例如方法一中分解后得到的關(guān)系模式學(xué)生-系中: U=學(xué)號(hào),姓名,年齡,性別,系名,系主任; F=學(xué)號(hào)姓名,學(xué)號(hào)年齡,學(xué)號(hào)性別,學(xué)號(hào)系名,系名系主任. 考查學(xué)生_系關(guān)系,會(huì)發(fā)現(xiàn)由于學(xué)生_系的關(guān)系模式中存在:學(xué)號(hào)系名,系名系主任。則:學(xué)號(hào)系主任。由于鍵碼“學(xué)號(hào)”與非主屬性“系主任”之間存在傳遞函數(shù)依賴,所以學(xué)生_系3NF。如果對學(xué)生_系關(guān)系按方法二的要求進(jìn)行分解,分解后的關(guān)系模式為: 學(xué)生(學(xué)號(hào),姓名,年齡,性別,系名); 教學(xué)系(系名,系主任). 顯然分解后的各子模式均屬于3NF。,4. 關(guān)系模式分解的方法,在這里強(qiáng)調(diào)一點(diǎn):上面介紹的解決部分函數(shù)依賴和傳遞函數(shù)依賴的模式的分解方法均為既具有無損連接性,又具有函數(shù)依賴保持性的規(guī)范化方法。,小 結(jié),在本任務(wù)中,我

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論