安徽農業(yè)大學數據庫原理課件 第二章 關系規(guī)范化8.ppt_第1頁
安徽農業(yè)大學數據庫原理課件 第二章 關系規(guī)范化8.ppt_第2頁
安徽農業(yè)大學數據庫原理課件 第二章 關系規(guī)范化8.ppt_第3頁
安徽農業(yè)大學數據庫原理課件 第二章 關系規(guī)范化8.ppt_第4頁
安徽農業(yè)大學數據庫原理課件 第二章 關系規(guī)范化8.ppt_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2020/8/22,1,第二章 關系規(guī)范化(關系數據庫設計理論),2020/8/22,2,關系數據庫設計理論是設計一個好 的數據庫系統(tǒng)的指南,研究面對一個現 實問題如何選擇比較好的關系模式集 合。 關系規(guī)范化基礎是關系模式分解轉 換的過程,其目的使關系模式更合理、 更規(guī)范。,2020/8/22,3,一、討論范圍 1、 數據庫邏輯設計要解決的問題 給出一組數據,如何構造一個適合的數 據模型,在關系數據庫中應該組織成幾個關 系模式,每個關系模式包括哪些屬性。,第一節(jié) 規(guī)范化問題,2020/8/22,4,2、在以關系模型為基礎的數據庫中,用關 系來描述現實世界。關系具有概念單一性特 點,一個關系既可

2、以描述一個實體,也可以 描述實體間的聯(lián)系。 一個關系模型包括一組關系模式,各個 關系不是完全孤立的。只有它們相互間存在 關聯(lián),才能構成一個模型。這些關系模式 的全體定義構成關系數據庫模式。,2020/8/22,5,3、關系數據庫設計理論主要包括三方面 的內容: 數據依賴 (設計依據) 范式(Normal Form)(設計標準) 模式設計方法(方法) 數據依賴在此起著核心的作用。,2020/8/22,6,二、存儲異常問題 通過下例分析某些不恰當的關系模式可能 導致的問題。 例如:有教師任課關系模式TDC: TDC(T#,TNAME,TITLE,ADDR, D#,DNAME,LOC, C#,CNA

3、ME,LEVEL,CREDIT) 其中屬性分別表示教師號、教師姓名、職 稱、教師地址、系號、系名稱、系地址、課程 號碼、課程名、教學水平、學分。,2020/8/22,7,在這個關系中,只有根據教師號和課程 號才能夠確定哪位教師講授哪門課程,因此 關系TDC的關鍵字是(T#,C#),表示方式為 ( T#,C# )。 該關系在使用過程中存在下面幾個問 題:,2020/8/22,8,1、數據冗余 每當教師開設一門課程時,該教師 的職稱、地址等信息就重復存儲一次。 一般每位教師都開設幾門課,數據冗余 不可避免。一個系有很多教師,使關系 中的數據冗余度很大。,2020/8/22,9,2、更新異常 由于數

4、據的重復存儲,會給更新帶來 麻煩。如果一位任三門課的教師改變了 地址,三個元組的地址都要更新,一旦 一個元組的地址未修改就會導致數據不 一致。如果某個系改變辦公地址,所要 修改的數據量會更大。,2020/8/22,10,3、插入異常 如果學校新調入一個教師,暫時未主 講任何課程。由于缺少關鍵字的一部分, 而關鍵字不允許出現空值,新教師就不能 插入到此關系中去。只有當他開設了課程 之后才能插入,這是不合理的。,2020/8/22,11,4、刪除異常 與插入異常相反,如果某些教師致力 于科研,不擔任教學任務了,就要從當 前數據庫中刪除有關記錄。那么關于這 些教師的其它信息將無法記載,這也是 極不合

5、理的現象。,2020/8/22,12,上述在插入、更新、刪除或修改元組時 將產生的不希望發(fā)生的異常情況是由于關系 模式設計得不好所造成的。如果用下面四個 關系模式代替原來的一個關系模式,上述四 方面的問題就基本解決了。 T (T# , TNAME, TITLE, ADDR, D # ) D (D#,DNAME,LOC) C (C#, CNAME,CREDIT) TC(T#,C#,LEVEL),2020/8/22,13,新關系模型包括四個關系模式, 教師T和系D之間通過T中的外關鍵字 D#相聯(lián)系,教師T與課程C之間多對 多的聯(lián)系通過TC中的外關鍵字(T#, C#)相聯(lián)系。,2020/8/22,1

6、4,函數依賴反映了數據之間的內在 聯(lián)系,是進行關系分解的指導和依據, 是本章討論的中心問題。,第二節(jié) 函數依賴,2020/8/22,15,現實世界中的事物是彼此聯(lián)系,互相 制約的。這種聯(lián)系分為二類: 一類是實體與實體之間的聯(lián)系; 另一類是實體內部各屬性之間的聯(lián)系。 任何一種數據模型都不僅描述實體及 其屬性,還要描述實體間的聯(lián)系。下面 討論屬性之間的聯(lián)系。,2020/8/22,16,一、屬性間的聯(lián)系 1、 一對一聯(lián)系(1:1) 借書證號和學號(讀者關系): 在讀者關系中,借書證號是唯一的,學 號也是唯一的,借書證號與學號兩個屬性 之間是1:1聯(lián)系。學號可以確定借書證 號,借書證號也可以確定學號。

7、,2020/8/22,17,2、一對多聯(lián)系(1:m) 書名和總編號(圖書關系): 在圖書關系中,一本書有若干副 本,它們有相同的書名、作者、分類號 等,但每本書有唯一的總編號。書名與 總編號之間是1:m,即同一個書名,有多 個總編號與之對應。,2020/8/22,18,3、多對多聯(lián)系(n:m) 借書證號和總編號(借閱關系): 在借閱關系中,一個讀者可以借多 本書,即同一個借書證號有若干個圖書 總編號與之對應。由總編號標識的一本 書在不同日期可以被不同的讀者借閱。,2020/8/22,19,三類聯(lián)系之間存在著包含關系,1:1是 1:m的特例,1:m又是m:n的特例。 關系中屬性值之間這種相互依賴

8、又相 互制約的聯(lián)系稱為數據依賴。 數據依賴主要有兩種: 函數依賴和多值依賴。本課程只介紹 函數依賴 。 Y=x2 y2=x,2020/8/22,20,二、函數依賴 1、函數依賴的概念 用U表示屬性集的全集(A1, A2,An),設R(U)是屬性集U上的關系模 式。X,Y是U的子集。若對于R(U)的所有具 體關系r都滿足如下約束:對于X的每一個具體 值,Y有唯一的具體值與之對應,則稱Y函數 依賴于X,或X函數決定Y,記作X Y,X 稱作決定因素。,2020/8/22,21,如果X Y,并且Y不是X的子集,則 稱X Y是非平凡的函數依賴。只討論非 平凡的函數依賴。全體總是能夠決定部分 的,若Y是X

9、的子集,則稱X Y是平凡 的函數依賴。,2020/8/22,22,例:有關系R(職工號,基本工資,獎金), 一個職工號唯一確定一個基本工資數額或 一個獎金額,即一個人不能拿兩種工資或 獎金,但幾個人的工資可能相同。 具體數字如下表所示。,2020/8/22,23,2020/8/22,24,設屬性A是職工號,屬性B是基本工 資,屬性C是獎金,可以看出,每個A的 值對應一個B的值,一個C的值。因此, 屬性B和C都函數依賴于屬性A。但反過 來則不存在這種聯(lián)系,如基本工資390.00 對應兩個職工號051和054。,2020/8/22,25,定義中所謂“對應唯一的具體值”是指唯 一確定值是什么,而不是

10、說該值不能與其它 值相等。 FD的確切語義表示了關系模式中屬性集 X的值與Y的值之間的多對一聯(lián)系。從數值上 看,“多方”函數決定“一方”。 例如,在圖書關系中, 總編號(分類號,書名,作者,出版社),2020/8/22,26,根據函數依賴的定義,可以找出下面規(guī)律: (1)在一個關系模式中,如果屬性X、Y有 1:1聯(lián)系,則存在函數依賴X Y、Y X。 可記作XY. (2)如果屬性X、Y是m:1的聯(lián)系,則存在函 數依賴 X Y ,反之不成立。 (3)如果屬性X、Y是n:m的聯(lián)系,則X與Y 之間不存在任何函數依賴。,2020/8/22,27,2、完全函數依賴 設X Y是關系模式R(U)的一個函數 依

11、賴,如果存在X的真子集X,使得X Y 成立,則稱Y部分依賴于X,記作 X Y。否則,稱Y完全依賴于X,記作 X Y。,p,f,2020/8/22,28,例子: 在關系模式SC1 (S#,C#,GRADE,CREDIT)中, (S#,C#) GRADE (S#,C#) CREDIT,f,p,2020/8/22,29,2020/8/22,30,3、傳遞依賴 在同一關系模式R(U)中,如果存在 非平凡函數依賴X Y,Y Z,而Y X,則 稱Z傳遞依賴于X。(X Z),2020/8/22,31,例子: 在關系模式SC1(S#,D#, dname , dlocation)中存在: S# D# D#(dn

12、ame, dlocation) D# S#, 結果:S# (dname, dlocation),2020/8/22,32,三、關鍵字 1、候選關鍵字 (1)定義:在關系模式R(U)中,K是U中的屬 性或屬性組。如果K U,則稱K為關系R(U)的 一個候選關鍵字。 R(U)中若有一個以上的候選關鍵字,則選 定其中一個作為主關鍵字。如果K是屬性組, 可稱為組合關鍵字,或合成關鍵字。,f,2020/8/22,33,包含在任意一個候選關鍵字中的屬性,稱 為主屬性。不包含在任何候選關鍵字中的屬 性稱為非主屬性。 (2)候選關鍵字的兩個性質 A、標識的唯一性:對于R(U)中的每一個元組, K的值確定后,該

13、元組就相應確定了。 B、無冗余性:當K是屬性組的情況下,K的任 何一部分都不能唯一標識該元組。這是定義 中的完全函數依賴的意義。,2020/8/22,34,例子: 在關系SC(S#,C#,GRADE.,CREDIT) 中,屬性組(S#,C#)是候選關鍵字,也是主 關鍵字。S#、C#是主屬性,GRADE,CREDIT 是非主屬性。 在關系 借閱(借書證號,總編號,借閱 日期,備注)的關鍵字也是組合關鍵字(借書 證號,總編號),借閱日期、備注為非主屬 性。,2020/8/22,35,最簡單的情況,也是最普遍的情況, 單個屬性作為關鍵字。如,圖書中的總編 號、讀者中的借書證號、課程里的C#、學 生中

14、的S#等。在現實世界中,人們已經非 常習慣于為區(qū)別實體起一個專用的標識。 如,身份證號、醫(yī)療證號、工作證號。 在極端的情況下,關系模式的整個屬 性組U作為關鍵字,稱為全關鍵字。此 時,關系中沒有非主屬性。,2020/8/22,36,2、外關鍵字 在關系模式R(U)中,若屬性或屬性組X 不是關系R的關鍵字,但又是其它關系模式的 關鍵字,則稱X為關系R(U)的外關鍵字。 主關鍵字和外關鍵字是表示關系之間聯(lián)系 的手段。 例子: T(T# , TNAME, TITLE, ADDR, D # ) D(D#,DNAME,LOC),2020/8/22,37,一個關系模式滿足某一指定的約束,稱此 關系模式為特

15、定范式的關系模式。 關系模式有 下列幾種范式(Normal Form,NF):第一范式 (1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、 第四范式(4NF)和第五范式(5NF)。 關系規(guī)范化:把一個低一級范式的關系模式通 過模式分解轉換為一組高一級范式的關系模式的過 程。,第三節(jié) 關系的范式,2020/8/22,38,一、第一范式 在關系模式R中的每一個具體關系r中, 如果每個屬性值都是不可再分的最小數據 單位,則稱R是第一范式的關系。記為 R1NF。 不是1NF的關系稱為非規(guī)范化關系。 數據庫理論研究的都是規(guī)范化關系。,2020/8/22,39,例1:將下表規(guī)范成1NF.,20

16、20/8/22,40,將上表規(guī)范成INF可以有三種方法。 第一種方法是重復存儲職工號和姓名。 第二種方法是,保留職工號的關鍵字地位,把 電話號碼拆分成單位電話和住宅電話兩個屬性。 第三種方法是,保留職工號的關鍵字地位。維 持原模式不變,但強制每個元組只能錄入一個 電話號碼。 以上三種選擇,第一種最不可取,后兩種選擇 可根據應用需要確定一種。,2020/8/22,41,例2.將下表規(guī)范成1NF,2020/8/22,42,如果各單位只有一個副主任,可將關 系模式設計成: 單位(單位名稱,地址,主任,副主任)。 若有一個以上的副主任,則應按需要并 列副主任1,副主任2,幾個單獨屬性。 或者只允許輸入一個副主任。,2020/8/22,43,二、第二范式 如果關系模式R(U)中的所有非主屬性 都完全函數依賴于任一候選關鍵字(即設 法消除部分依賴),則稱關系R是第二范 式的關系,記為R2NF。,2020/8/22,44,例子: 設有關系模式 SC(S#,C#,GRADE,CREDIT),關鍵字是 (S#,C#)。 存在函數依賴:(S#,C#) GRADE (S#,C#) CREDIT, 通過投影把它分解為以下兩個關系模式: SC1(S#,C#,GRADE) 2NF SC2(C#,CREDTT) 2NF,f,p,2020

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論