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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論