

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1,第3章 關系數據庫,本章主要介紹:關系數據庫設計步驟概念模型的設計(難點)邏輯模型的設計(難點)關系模式的規(guī)范化處理(難點),,,,,2,3.1 數據庫設計概述,數據庫設計是指對一個給定的應用環(huán)境,構造最優(yōu)的數據庫模式,建立數據庫及其應用系統(tǒng),使之能夠有效地存儲數據,滿足各種用戶的應用需求(包括信息要求和處理要求)。,3,3.1 數據庫設計概述,關系數據庫設計分為以下五個階段:1) 需求
2、分析2) 概念模式設計(E-R模型)3) 邏輯模式設計(RDBMS)4) 數據庫實施5) 數據庫運行和維護見下圖所示。,4,3.1 數據庫設計概述,5,3.2 概念模式設計,數據庫概念模式與計算機實現無關。它是對現實世界的第1層抽象。直接把現實世界事物及其聯(lián)系抽象為數據世界的數據模型
3、過于復雜,因此一般是先將現實世界的事物及其聯(lián)系抽象為信息世界實體及其聯(lián)系(概念模型),然后再將其轉換為計算機世界的數據模型(關系數據庫模式)。,6,3.2 概念模式設計,數據建模過程,7,實體-聯(lián)系模型(Entity-Relationship Model,簡稱為E-R模型)是1976年美籍華人P.S.Chen(陳平山)提出的。這個模型直接將現實世界中的事物及其之間的聯(lián)系抽象為實體類型和實體間聯(lián)系,然后用實體聯(lián)系圖表示數據模型。,3.2
4、.1 實體聯(lián)系模型,8,3.2.1 實體聯(lián)系模型 P39,E-R模型是用E-R圖表示的。E-R圖中有下面四個基本成分:①矩形框:表示實體型。②菱形框:表示聯(lián)系。③橢圓形框:表示實體或聯(lián)系類型的屬性。④直線:聯(lián)系類型與其所涉及的實體之間用直線連接,實體與實體之間用直線連接。,9,3.2.1 實體聯(lián)系模型,10,3.2.1 實體聯(lián)系模型,(1)實體(entity):客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體可觸及到的對
5、象,如一個大學生、一輛汽車等;也可以是抽象的事件,如一場足球賽,一次借書等。 (2)屬性(attribute):實體所具有的某一特征稱為實體的屬性。一個實體可由若干屬性來刻畫。例如,學生實體有學號、姓名、性別、年齡、班級等屬性。,11,3.2.1 實體聯(lián)系模型,(3)鍵(key):也稱關鍵字或碼。唯一標識實體的最小的屬性集稱為實體的鍵。例如,學生(學號,姓名,年齡,性別,班級) 鍵是“學號”;課程(課號
6、,課名,學分,學時),鍵是“課號”;選課(學號,課號,分數,學年), 鍵是(學號,課號)足球賽(場次,日期,地點)則是全鍵。,12,3.2.1 實體聯(lián)系模型,(4)聯(lián)系(relationship):現實世界的事物彼此是有聯(lián)系的,反映在信息世界就是實體之間的聯(lián)系。實體之間的聯(lián)系有兩類:一是不同實體集之間的聯(lián)系;另一種是同一實體集中不同個體之間的聯(lián)系。首先,考察兩個實體集之間的聯(lián)系,可以分為三類:,13,3.2.1
7、 實體聯(lián)系模型,①1:1聯(lián)系:已知實體集A和B,若其中每個實體集中任一實體至多與另一實體集中的一個實體有聯(lián)系,則稱A和B的聯(lián)系為“1對1聯(lián)系”,簡記為1:1聯(lián)系。,,14,3.2.1 實體聯(lián)系模型,②1:n聯(lián)系: 已知實體集A和B,若A中每個實體可與B中任意個實體有聯(lián)系,而B中每個實體至多與A中的一個實體有聯(lián)系,則稱A和B的聯(lián)系為“1對多聯(lián)系”,簡記為1:n聯(lián)系。,,15,3.2.1 實體聯(lián)系模型,③m:n聯(lián)系: 已知實體集A和B,若其
8、中每個實體集中任一實體可與另一實體集中的多個實體有聯(lián)系,則稱A和B的聯(lián)系為“多對多聯(lián)系”,簡記為m:n聯(lián)系。,16,3.2.1 實體聯(lián)系模型,類似地,我們可以定義多個實體集(三個或三個以上)之間的各種聯(lián)系,也可以定義同一實體集中不同個體之間的聯(lián)系。如下所示。,例如:有三個實體型:供應商、項目和零件。有如下聯(lián)系。,17,3.2.1 實體聯(lián)系模型,例如:同一實體集內各實體間聯(lián)系。如職工實體集內部具有領導與被領導的聯(lián)系。如下圖所示。,,,,,
9、,,,職工,,,領導,,,,18,3.2.2 子類的設計,子類:定義類型之間的一種子集關系。它抽象了類型之間的“is a”的語義聯(lián)系。例如:,19,3.2.3 E-R模型實例,例1:教學管理系統(tǒng)E-R圖如下所示。方法:1)確定實體類型。 系、學生、教師、研究生、課程2)確定實體間聯(lián)系類型。3)根據實體類型和聯(lián)系類型畫出E-R圖。4)確定實體類型和聯(lián)系類型的屬性。,20,3.2.3 E-R模型實例,21,3.3 邏輯模
10、式設計,E-R模型向關系模型轉換規(guī)則 規(guī)則1:每個實體型轉換為一個關系模式,實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。鍵用下劃線標出。,規(guī)則2:若實體之間聯(lián)系是1:n (包括1:1),在“n”端關系模式中加入“1”端實體的主鍵,作為其外鍵,“聯(lián)系”本身的屬性也進入“n”端關系模式。,22,3.3 邏輯模式設計,例如:,學生(學號,姓名,性別,年齡 ,入學時間, 系名)教師(工號,名字,性別,年齡,到系時間,系名) 系(
11、系名,負責人,聯(lián)系電話),23,3.3 E-R圖向關系模型的轉換,規(guī)則3:若實體的聯(lián)系是m:n,則將聯(lián)系轉換為一個關系模式?!奥?lián)系” 兩端實體的主鍵以及“聯(lián)系”本身的屬性轉換為該關系的屬性。該關系的主鍵為各實體鍵的組合。,選修(學號,課號,成績)學生(學號,姓名,性別,年齡 ,入學時間, 系名)課程(課號,課名,學分),24,3.3 E-R圖向關系模型的轉換,規(guī)則4:兩個以上實體之間的m:n聯(lián)系轉換為一個關系模式。其屬性為相連實體的
12、主鍵加上聯(lián)系自身的屬性構成, 其鍵由相連實體的鍵的組合. 例:,供應( 編號, 零件號, 工程號, 供應量 ),25,3.3 E-R圖向關系模型的轉換,規(guī)則5:“isa”聯(lián)系不用單獨轉換。具體處理見下例。,26,3.3 E-R圖向關系模型的轉換,學生(學號,姓名,性別,年齡 ,入學時間, 系名)本科生(學號 , 班級,班主任)研究生(學號,研究方向,導師),27,3.3 E-R圖向關系模型的轉換,例:教學管理系統(tǒng)E-R模型轉換為
13、關系模型。,28,3.3 E-R圖向關系模型的轉換,轉換為關系模型:學生(學號,姓名,性別,年齡 ,專業(yè),入學日期, 編號)本科生(學號 , 班級,班主任)研究生(學號,研究方向,導師工號)選修(學號,課號,成績)課程(課號,課名,學分)教師(工號, 名字,年齡 ,職稱,進校日期, 編號)任課(工號,課號,時間,工作量)系(編號,名稱,辦公地點),29,3.3.2 關系模式的規(guī)范化處理,關系模式的規(guī)范化處理主要研究關系模
14、式內各屬性之間的依賴關系(一種數據聯(lián)系),保持屬性間好的數據依賴關系,消除導致異常的依賴關系,使得關系模式由低一級的規(guī)范模式上升到高一級的規(guī)范模式的過程稱為規(guī)范化處理。,30,3.3.2 關系模式的規(guī)范化處理,1. 問題的提出下面我們通過例子來考察數據庫模式設計的必要性。即為什么要設計關系數據庫模式,為什么有些關系模式是不好的,存在哪些方面的問題。,31,3.3.2 關系模式的規(guī)范化處理,例:建立一個數據庫來描述學生的一些情況, 假
15、設需要了解這樣一些信息: 學生(Snum)、姓名(Sname)、 系(Sdept)、 系負責人(Mname)、 課程(Cname)、 成績(Grade)。,分析:為該數據庫建一個關系模式來描述所要信息。 S(Snum,Sname,Sdept,Mname,Cname,Grade),32,3.3.2 關系模式的規(guī)范化處理,這個關系模式存在的問題 :插入異常:如果一個系剛成立,尚無學生或者雖然有了學生,但尚未安排課程,則我們
16、無法把這個系及其負責人的信息存入數據庫,從而,數據庫用戶也就無法從數據庫中查找到該系及其負責人的信息。這種現象叫插入異常。這是因為,該關系模式的主鍵為(Snum,Cname),不能取空值,在學生未選課之前,相關信息無法插入。,33,3.3.2 關系模式的規(guī)范化處理,(2)刪除異常:如果某系的學生全部畢業(yè),我們在刪除該系學生的選課信息時,也把該系及其負責人信息也丟失了,這種現象稱為刪除異常。 (3)數據冗余大:每一個系負責人的信息要與
17、該系每個學生的每一門課程的成績出現次數一樣多,造成大量數據冗余。不僅浪費存儲,而且還會帶來下面問題。,34,3.3.2 關系模式的規(guī)范化處理,(4) 更新異常(潛在的數據不一致性)。由于數據存儲冗余,當更新某些元組,如某系負責人更換,就可能一部分涉及的元組被修改,而另一部分涉及的元組被忽略,造成存儲數據的不一致。否則,必須逐一修改該系每個學生的每門選課元組。造成更新復雜化。,35,3.3.2 關系模式的規(guī)范化處理,由于上述4個毛病,我們
18、知道它是一個不好的數據庫模式,一個好的模式應當不會發(fā)生插入異常、刪除異常、數據冗余大、數據不一致。為什么會發(fā)生這些異?,F象呢?這是因為這個關系模式中函數依賴存在不好的性質.將單一模式改造一下,分成三個模式: S(Snum,Sname, Sdept ) SG(Snum ,Cname,Grade) Dept(Sdept,Mname)這樣的三個模式都不會發(fā)生上述三個毛病。,,36,3.
19、3.2 關系模式的規(guī)范化處理,2. 問題的根源 之所以出現上述的關系模式的異常狀況,主要原因之一就是數據冗余;另一點就是本節(jié)要討論的各個屬性之間的數據依賴關系。 在數據依賴中,函數依賴是最基本的一種數據依賴。它主要表達數據表內各個屬性之間的依賴關系。,37,3.3.2 關系模式的規(guī)范化處理,函數依賴:設R(U)是屬性U上的關系模式,X,Y?U,若對R(U)的任一可能的關系r,若r中任何兩個元組在X上的屬性值相等
20、,則在Y上的屬性值也必相等,則稱“X函數確定了Y”或“Y函數依賴于X”。記作:X?Y。,38,3.3.2 關系模式的規(guī)范化處理,例如:S(Snum,Sdept,Mname,…) 對Sdept?Mname, 若對任意的元組t1,t2有 t1[sdept]=t2[sdept], 則 t1[Mname]=t2[Mname]注意:(1)函數依賴是語義范疇的概念,我們只能根據語義來確定一個函數依賴。不能杜撰。(2)另外,函數依賴
21、是對關系模式R的一切關系r均要成立。,39,3.3.2 關系模式的規(guī)范化處理,對于S ( Snum,Sname, Sdept, Mname,Cname, Grade)現實世界的已知事實告訴我們:①一個學生只有一個名字,有Snum?Sname②一個系有若干學生,但一個學生只能屬于一個 系,有 Snum?Sdept③一個系只有一個負責人,Sdept ?Mname④一個學生學習每一門課程有一個成績。有
22、 (Snum,Cname)?Grade,40,3.3.2 關系模式的規(guī)范化處理,對上例S表,有,,41,3.3.2 關系模式的規(guī)范化處理,傳遞函數依賴 在R(U)中,如果X?Y,Y?X,Y?Z, (Z?Y)則稱Z對X是傳遞函數依賴。說明:條件Y?X,是因為Y?X,X?Y,等于X?Z是直接函數依賴,而不是傳遞函數依賴了。,,,42,3.3.2 關系模式的規(guī)范化處理,3. 范式(Normal Form) 范式
23、是用來判斷模式好壞的標準。 滿足最低范式要求的稱為第1范式,在第1范式中滿足進一步要求的為第2范式,其余類推。共6種范式,各種范式之間的關系為: 5NF?4NF?BCNF?3NF?2NF?1NF,43,3.3.2 關系模式的規(guī)范化處理,(1) 1NF若關系R的每個分量都是不可再分的數據項,則稱R屬于第1范式的,簡記為R? 1NF。 (2)2NF若R?1NF,且每一個非主屬性都完全函數依賴于鍵,則R?2NF。(3)3NF
24、若R?1NF,且不存在非主屬性對于鍵的傳遞函數依賴,則稱R?3NF。,44,3.3.2 關系模式的規(guī)范化處理,(3)BCNF若R?1NF,X?Y且Y?X時,X必含有鍵,則稱R?BCNF。即每個決定因素中都包含鍵。4. 模式分解規(guī)范化是指:一個低一級范式的關系模式,通過模式分解轉換為若干高一級范式的關系模式的集合的過程。,45,3.3.2 關系模式的規(guī)范化處理,對于一個模式的分解是多種多樣的,但是要求分解后產生的模式與原模式等價
25、。 模式分解的基本原則: ① 分解的無損連接性(lossless join) 設關系模式R(U,F),這里U為R的屬性全集,F為R的函數依賴全集,R被分解為若干個關系模式R1,R2,…,Rn,如果R與R1,R2,…,Rn自然連接的結果相等,則稱關系模式R的分解具有無損連接性。,46,3.3.2 關系模式的規(guī)范化處理,自然連接的結果與原關系R不一致,元組多了三個,所以屬于有損連接。,,,,,,,自然連接的結果與原關系R一致,所以屬
26、于無損連接。,,47,3.3.2 關系模式的規(guī)范化處理,②分解保持函數依賴設關系模式R(U,F)被分解為若干個關系模式R1,R2,…,Rn,如果R中的函數依賴集F與關系分解模式R1,R2,…,Rn中所有的函數依賴是一致的,則稱關系模式R的分解具有保持函數依賴性。,48,5. 規(guī)范化實例分析,例:已知S(Snum,Sname,Sdept,Mname,Cname,Grade)分析其達到第幾范式,并對它進行規(guī)范化,使其達到BCNF。,分
27、析:S的函數依賴集為:F={ Snum?Sname, Snum?Sdept, Sdept ?Mname, (Snum,Cname)?Grade } ① S中所有屬性都是不可再分的數據項。因此S?1NF。,3.3.2 關系模式的規(guī)范化處理,49,②確定S是否2NF S的鍵是(Snum,Cname),存在非主屬性 Sdept對鍵的部分依賴, 即(Snum,Cname) ? Sdept, 因此S ? 2NF,解決辦法:模式分解,
28、消除部分依賴: S1 ( Snum , Sname, Sdept , Mname ) SC ( Snum , Cname , Grade),不是2NF的關系模式,存在的問題: 插入異常、刪除異常、數據冗余大、更新異常。,3.3.2 關系模式的規(guī)范化處理,P,50,③ 確定是否3NF對于S1 關系,由于 Snum ? Sdept , Sdept ? Mname存在非主屬性Mname對鍵Snum的傳遞依賴,因此S1 ? 3NF。
29、對于SC關系,不存在非主屬性對于鍵的傳遞依賴,因此SC ? 3NF。,不是3NF的關系模式,存在的問題: 插入異常、刪除異常、數據冗余大、更新異常。,3.3.2 關系模式的規(guī)范化處理,51,解決辦法:模式分解,消除傳遞依賴。 S1 ( Snum , Sname,Sdept) SD(Sdept , Mname ) SC ( Snum , Cname , Grade),④ 確定是否是BCNF每個函數依賴的決定因素中都含有
30、鍵,因此分解后的三個關系模式都達到了BCNF。分解后關系模式已經消除了各種異常。,3.3.2 關系模式的規(guī)范化處理,52,3.4 數據庫實施與維護,1.數據庫實施數據庫邏輯模式設計階段結束,標志著數據庫結構的設計已經完成。在數據庫實施階段就是選擇一個RDBMS軟件平臺,如SQL Server,將整個數據庫結構設計付諸實施。數據庫實施階段的主要任務是:⑴ 根據邏輯模式設計的結果,利用RDBMS的數據定義語言DDL完成數據庫存儲模式的
31、創(chuàng)建,其中包括很多數據庫對象:數據庫,數據表,屬性,視圖,索引,函數,存儲過程,觸發(fā)器等。,53,3.4 數據庫實施與維護,⑵ 實施完整性控制,包括創(chuàng)建表時的屬性值域的控制、實體完整性控制、參照完整性控制、表間的級聯(lián)控制;用觸發(fā)器和規(guī)則進行補充完整性控制和復雜完整性控制等。⑶ 實施安全性控制,設置用戶和用戶組的訪問權限,用觸發(fā)器設置常規(guī)以外的安全性控制,為數據庫服務器設置防火墻和防毒墻。,54,3.4 數據庫實施與維護,⑷ 實施需求分
32、析中的數據庫恢復機制,確保數據庫的正常運行。⑸ 組織數據入庫;在創(chuàng)建數據庫的基礎上,編制與調試應用程序,并進行數據庫的試運行。,55,3.4 數據庫實施與維護,2.數據庫運行和維護階段經過數據庫實施階段的試運行后,數據庫系統(tǒng)就可以交付給用戶,也就是說數據庫應用系統(tǒng)即可投入正式運行。在數據庫系統(tǒng)運行過程中必須根據系統(tǒng)運行狀況和用戶的合理意見,不斷地對其進行評價、調整與修改。這個階段的主要工作為:(1)數據庫的轉儲和恢復。比如常規(guī)的異
33、地備份與恢復。,56,3.4 數據庫實施與維護,(2)數據庫安全性、完整性控制。比如新的安全漏洞的彌補、新的約束控制的增補。 (3)數據庫性能的監(jiān)督、分析和改進。(4)數據庫的重組織和重構造。比如數據屬性的擴容等。 數據庫設計過程是一個嚴格規(guī)范的設計過程,有一套工程設計標準控制著整個設計過程,只有按照數據庫設計的步驟、設計規(guī)范和設計理論嚴格地執(zhí)行,才能設計出高質量、高性能的數據庫模式。,57,作業(yè),第3章 習題,58,END,聯(lián)系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論