




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論,從今天開始,我們要有自己的數(shù)據(jù)庫,請同學(xué)們試著討論,如下的關(guān)系數(shù)據(jù)庫中可能存在哪些問題? 示例數(shù)據(jù)庫: 圖書庫(bookid,cardid,bdate,sdate,class,maxcount) 其中: bookid:圖書編號; cardid:讀者編號; bdate:借書日期; sdate:還書日期; class:讀者類型; maxcount:允許最多可借的書本數(shù)量。,問題思考:,數(shù)據(jù)冗余,更新異常:將重復(fù)的更新每一個(gè)元組的maxcount,null,S1023,null,null,3,20,插入異常:將無法插入S1023的讀者信息,刪除異常:將會連同T0001讀者
2、的信息一起刪除,要求:將借書卡號為T0001的讀者借書記錄刪除,存在如下問題: 數(shù)據(jù)冗余 更新異常 插入異常 刪除異常,4.1 問題的提出,關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì) 針對具體問題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式 數(shù)據(jù)庫邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論,問題的提出,一、概念回顧 二、關(guān)系模式的形式化定義 三、什么是數(shù)據(jù)依賴 四、數(shù)據(jù)依賴對關(guān)系模式影響,一、概念回顧,關(guān)系:描述實(shí)體、屬性、實(shí)體間的聯(lián)系。 從形式上看,它是一張二維表。 關(guān)系模式:用來定義關(guān)系 例:關(guān)系名(屬性名1,屬性名2,屬性名3,) 關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫,利用 關(guān)系來描述現(xiàn)實(shí)世界。 從形式上看,它由一組關(guān)系組成。,二、
3、關(guān)系模式的形式化定義,關(guān)系模式由三部分組成,即它是一個(gè)三元組: R(U, F) R: 關(guān)系名 U: 組成該關(guān)系的屬性名集合 F: 屬性間數(shù)據(jù)的依賴關(guān)系集合,三、什么是數(shù)據(jù)依賴,1. 數(shù)據(jù)依賴 是通過一個(gè)關(guān)系中屬性值間相互關(guān)系反映出來 是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象 即屬性間的決定與被決定的關(guān)系。,數(shù)據(jù)依賴-實(shí)例,例:圖書(書號,書名,出版社) 從現(xiàn)實(shí)世界的事實(shí)可以得知: (1)、每一本書只有一個(gè)書號。 (2)、每一本書也只屬于唯一一個(gè)出版社,但一個(gè)出版社可出版多本書。 從上述事實(shí)我們可以知道,當(dāng)書號確定了其書名及其所屬的出版社也就確定了。因此我們說書號函數(shù)確定了書名和出版社。 記為: 書號 書
4、名 書號 出版社,四、數(shù)據(jù)依賴對關(guān)系模式的影響,例:描述學(xué)校的數(shù)據(jù)庫: 學(xué)生的學(xué)號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade) 單一的關(guān)系模式 : Student (U,F(xiàn)) U Sno, Sdept, Mname, Cname, Grade ,數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù)),學(xué)校數(shù)據(jù)庫的語義: 一個(gè)系有若干學(xué)生, 一個(gè)學(xué)生只屬于一個(gè)系; 一個(gè)系只有一名主任; 一個(gè)學(xué)生可以選修多門課程, 每門課程有若干學(xué)生選修; 每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績。,數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù)),屬性組U上的一組函數(shù)依賴F: F Sno Sdept,
5、Sdept Mname, (Sno, Cname) Grade ,函數(shù)依賴圖,關(guān)系模式Student(U, F)中存在的問題, 數(shù)據(jù)冗余太大 浪費(fèi)大量的存儲空間 例:每一個(gè)系主任的姓名重復(fù)出現(xiàn) 更新異常(Update Anomalies) 數(shù)據(jù)冗余 ,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組,關(guān)系模式Student(U, F)中存在的問題, 插入異常(Insertion Anomalies) 該插的數(shù)據(jù)插不進(jìn)去 例,如果一個(gè)系剛成立,尚無學(xué)生,我們就無法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫。 刪除異常(Deletion Anomalies)
6、 不該刪除的數(shù)據(jù)不得不刪 例,如果某個(gè)系的學(xué)生全部畢業(yè)了, 我們在刪除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。,數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù)),結(jié)論: Student關(guān)系模式不是一個(gè)好的模式。 “好”的模式: 不會發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。 原因:由存在于模式中的某些數(shù)據(jù)依賴引起的 解決方法:通過分解關(guān)系模式來消除其中不合適 的數(shù)據(jù)依賴。,4.2 規(guī)范化,規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。,4.2.1 函數(shù)依賴,一、函數(shù)依賴 二、平凡函數(shù)依賴與非平凡函數(shù)依賴 三
7、、完全函數(shù)依賴與部分函數(shù)依賴 四、傳遞函數(shù)依賴,一、函數(shù)依賴,定義4.1 設(shè)R(U)是一個(gè)屬性集U上的關(guān)系模式,X和Y是U的子 集。若對于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能 存在兩個(gè)元組在X上的屬性值相等, 而在Y上的屬性 值不等, 則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”, 記作XY。 X稱為這個(gè)函數(shù)依賴的決定屬性集。,學(xué)生表,課程表,選修表,函數(shù)的依賴關(guān)系的確定,函數(shù)依賴與屬性間的聯(lián)系類型有關(guān) 當(dāng)、之間有“對”聯(lián)系時(shí),則存在函數(shù)依賴和 當(dāng)、之間有“多對”聯(lián)系時(shí),則存在函數(shù)依賴 當(dāng)、之間有“多對多”聯(lián)系時(shí),則和之間不存在函數(shù)依賴,學(xué)生表,課程表,選修表,函數(shù)依賴(續(xù)),例: S
8、tudent(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有: 若XY,并且YX, 則記為XY。 若Y不函數(shù)依賴于X, 則記為XY。,二、平凡函數(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ù)依賴都是必然成
9、立的,它不反映新的語義,因此若不特別聲明, 我們總是討論非平凡函數(shù)依賴。,三、完全函數(shù)依賴與部分函數(shù)依賴,定義4.2 在關(guān)系模式R(U)中,如果XY,并且對于X的任何一個(gè)真子集X,都有 X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若XY,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作X P Y。,完全函數(shù)依賴與部分函數(shù)依賴(續(xù)),例: 在關(guān)系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade,四、傳遞函數(shù)依賴,定義4.3 在關(guān)系模式R(U)中,如果XY,YZ,且Y X,YX,則稱XZ, Z傳遞函數(shù)依賴于X
10、。 注: 如果YX, 即XY,則Z直接依賴于X。 例: 在關(guān)系Std(Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname傳遞函數(shù)依賴于Sno,習(xí)題:,例:指出如下關(guān)系中的所有函數(shù)依賴 關(guān)系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。 從現(xiàn)實(shí)世界的事實(shí)可得知:,、一個(gè)學(xué)生屬于一個(gè)系,一個(gè)系有多名學(xué)生,、一個(gè)學(xué)生住一個(gè)地方,一個(gè)地方有多名學(xué)生居住,、一個(gè)系的學(xué)生只居住在一個(gè)地方, 一個(gè)地方可以居住若干個(gè)系的學(xué)生,、一個(gè)學(xué)生選的一門課有一個(gè)成績,、一個(gè)學(xué)生選修的某一門課
11、只能是某個(gè)系的。,Sno Sdept,Sno Sloc,Sdept Sloc,4.2.2 碼,定義4.4 設(shè)K為關(guān)系模式R中的屬性或?qū)傩越M合。若K U,則K稱為R的一個(gè)侯選碼。若關(guān)系模式R有多個(gè)候選碼,則選定其中的一個(gè)做為主碼。 主屬性與非主屬性,外部碼,定義4.5 關(guān)系模式 R 中屬性或?qū)傩越MX 并非 R的碼,但 X 是另一個(gè)關(guān)系模式的碼,則稱 X 是R 的外部碼(Foreign key)也稱外碼 主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。,4.2.3 范式,范式是符合某一種級別的關(guān)系模式的集合。 關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。 范式的種類: 第一范
12、式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF),4.2.3 范式,各種范式之間存在聯(lián)系: 某一關(guān)系模式R為第n范式,可簡記為RnNF。,4.2.4 1NF,1NF的定義 如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R1NF。 第一范式是對關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。 但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。,1NF,例: 關(guān)系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。 函數(shù)依賴包
13、括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc Sdept Sloc,1NF,SLC的碼為(Sno, Cno) SLC滿足第一范式。 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno),SLC,函數(shù)依賴圖:,SLC不是一個(gè)好的關(guān)系模式,(1) 插入異常 假設(shè)Sno95102,SdeptIS,SlocN的學(xué)生還未選課,因課程號是主屬性,因此該學(xué)生的信息無法插入SLC。 (2) 刪除異常 假定某個(gè)學(xué)生本來只選修了3號課程這一門課。現(xiàn)在因身體不適,他連3號課程也不選修了。因課程號是主屬性,此操作將導(dǎo)致該學(xué)生信息的整
14、個(gè)元組都要?jiǎng)h除。,SLC不是一個(gè)好的關(guān)系模式,(3) 數(shù)據(jù)冗余度大 如果一個(gè)學(xué)生選修了10門課程,那么他的Sdept和Sloc值就要重復(fù)存儲了10次。 (4) 修改復(fù)雜 例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同時(shí),還可能需要修改住處(Sloc)。如果這個(gè)學(xué)生選修了K門課,則必須無遺漏地修改K個(gè)元組中全部Sdept、Sloc信息。,1NF,原因 Sdept、 Sloc部分函數(shù)依賴于碼。 解決方法 SLC分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc),2NF,SLC的碼為(Sno, Cno) SLC滿足第一范式。
15、 非主屬性Sdept和Sloc部分函數(shù)依賴于碼(Sno, Cno),SLC,函數(shù)依賴圖:,2NF,函數(shù)依賴圖:,SC,SL,Sno,Sdept,Sloc,2NF,2NF的定義 定義4.6 若關(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,分解,第二范式(續(xù)),采用投影分解法將一個(gè)1NF的關(guān)系分解為多個(gè)2NF的關(guān)系,可以
16、在一定程度上減輕原1NF關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。 將一個(gè)1NF關(guān)系分解為多個(gè)2NF的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。,3NF,函數(shù)依賴圖:,SL,3NF,例:2NF關(guān)系模式SL(Sno, Sdept, Sloc)中 函數(shù)依賴: SnoSdept SdeptSloc SnoSloc Sloc傳遞函數(shù)依賴于Sno,即SL中存在非主屬性對碼的傳遞函數(shù)依賴。,3NF,解決方法 采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴: SD(Sno, Sdept) DL(Sdept, Sloc) SD的碼為Sno, DL的碼為Sdept
17、。,3NF,SD的碼為Sno, DL的碼為Sdept。,SD,DL,函數(shù)依賴圖,3NF,3NF的定義 定義4.7 關(guān)系模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z Y), 使得XY,Y X,YZ,成立,則稱R 3NF。 例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NF,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ù)冗余。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房買賣合同違約責(zé)任追究協(xié)議
- 財(cái)務(wù)報(bào)表風(fēng)險(xiǎn)敞口應(yīng)對效果評估合同
- 材料疲勞斷裂數(shù)據(jù)校正合同
- 生態(tài)農(nóng)業(yè)園區(qū)場地合作經(jīng)營與產(chǎn)品銷售協(xié)議
- 邊疆地區(qū)古代商業(yè)貿(mào)易考古合同
- 高端裝備制造廠房租賃與智能化改造協(xié)議
- 大學(xué)刑法考試題及答案
- 群體健康策略課件
- 調(diào)研安全生產(chǎn)工作方案
- 安全總監(jiān)個(gè)人述職報(bào)告3
- 穿越華裾-中華服飾之美智慧樹知到期末考試答案章節(jié)答案2024年青島職業(yè)技術(shù)學(xué)院
- 2024年廣東省中考物理試卷(含答案逐題解析)
- 武術(shù)專業(yè)個(gè)人簡歷模板范文
- LD水電站智慧工程建設(shè)方案研究
- DB37-T 4384-2021 混凝土橋梁有效預(yù)應(yīng)力無損檢測技術(shù)規(guī)程
- 竣工財(cái)務(wù)決算報(bào)表模板
- 2021利達(dá)JB-QG-LD988EL JB-QT-LD988EL 火災(zāi)報(bào)警控制器 消防聯(lián)動(dòng)控制器調(diào)試手冊
- 2024年中鐵(天津)軌道交通投資建設(shè)限公司運(yùn)營管理人員招聘5人高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 創(chuàng)傷中心匯報(bào)
- 裝配式結(jié)構(gòu)吊裝施工計(jì)算書
- 2024安徽蕪湖市中江城建集團(tuán)限公司下屬子公司社會招聘60人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
評論
0/150
提交評論