(Microsoft PowerPoint - EMDBCh10\245\277\263W\244\306.ppt)

Similar documents
Ch06_

Microsoft PowerPoint - ch07.ppt [相容模式]

ASP.NET 2.0網頁設計範例教本


0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - ch04.ppt [相容模式]

Chapter 8

123

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

Microsoft Word - ACL chapter02-5ed.docx

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

第二章  概念設計與關聯式資料模式

Microsoft PowerPoint - EMDBCh08SQL1.ppt

Microsoft PowerPoint - 002_第二章 關聯式資料庫(cchen).ppt

( )... 5 ( ) ( )

Chapter 8

理性真的普遍嗎 注意力的爭奪戰 科學發展 2012 年 12 月,480 期 13

CU0594.pdf

佛化家庭手冊 佛化家庭 一 淨化人間, 必定要淨化社會 二 淨化人間的著力點, 是從淨化家庭開始

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

皈依三寶的意義 一 為何要皈依三寶?

戒菸實務個案自助手冊105年Ver.2

ASP.NET 2.0網頁設計範例教本

二 戶外教學的性質


Slide 1

AutoCAD 用戶如何使用 ArchiCAD

CC213

F5720

PowerPoint Presentation

09 F9 128 peer to peer, P2P file transfer protocol bittorrent 10 P2P P2P GNU/ Linux P2P CC 單機版的智慧財產權 vs. 人權戰爭 1980 DVD content

1970 新技術的應用 X = 20 + B 13B δ13c X 1 X

行政法概要 本章學習重點 本章大綱 第一節行政作用之概念 第二節行政作用之分類 一 行政程序法 第三節行政作用法之範圍 第四節行政作用之私法 行為 二 行政罰法三 行政執行法一 源起二 類型 第五節行政作用中的非 權力行為 一 類型 二 事實行為 第六節行政作用之內部 行為 一 行政規則

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

66 67 圓夢素人頭家 67 9 專長互補 資源共享, 為彼此加油打氣!

习题1

生與死的尊嚴 生與死的尊嚴

第一章  緒論

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

Microsoft PowerPoint - VB14.ppt

穨report.PDF

17-72c-1


Microsoft Word - 版頭.doc

F5720

2015年莆田一青会射箭资格赛.xls

Microsoft PowerPoint - MIS_Lec03.ppt [相容模式]



Zytiga... Zytiga... Zytiga Zytiga Zytiga

Microsoft Word - 結案報告.doc

投影片 1

「高鐵局97年年報」綱要(草案)

common sense agent of articulation 447

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

公司治理重點摘要 3.1 股東大會審計委員會董事會薪酬委員會 董事會董事會組織 董事會職責 101 經營團隊 內部稽核

Microsoft PowerPoint - db_ch12.ppt


二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲

ebook4-14

(burn-out) ( ) 01

<B8D5C5AAA5BB2E706466>

The golden pins of the PCI card can be oxidized after months or years

1

2

Microsoft Word - _m30.doc

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

投影片 1


有你真好文山融合之愛 ( ) 孩子的另一扇門 ( 特生 / 郁絜爸爸 ) 3 82

本月專題 科學新聞判讀力 Article.aspx?a= 目前並沒有充足證據證明基改作物會讓人生病或危害環境 109 Greenpeace


ebook 165-5

教務會議議程

香港聯合交易所有限公司 ( 聯交所 )GEM 的特色 GEM 的定位, 乃為中小型公司提供一個上市的市場, 此等公司相比起其他在主板上市的公司帶有較高投資風險 有意投資的人士應了解投資於該等公司的潛在風險, 並應經過審慎周詳的考慮後方作出投資決定 由於 GEM 上市公司普遍為中小型公司, 在 GEM

投影片 1

Microsoft Word Microsoft Word

cost downoem Original Equipment Manufacture value up ODM Original Design Manufacture value addedobm Original Brand Manufacture a OEM ODM OBM O

第七章 1984 與 重裝任務 文本中的極權世界與烏托邦 1984 George Orwell, 一 喬治 歐威爾的 1984 George Orwell, Indian i

愛滋實務與治理的政治 - 綜合論壇 以及面對這一連串以 責任 為架構衍生出來的愛滋政策如何造就了台灣現在的愛滋處境

當無人飛行器越做越小時, 拍翅型的飛行方式應該是人類要參考及學習的 MAV P V 2 b P V b 0.96 P V 2 b L b 4 L b 4 W b 3 W b 3 2 向自然學習 MAV 3 升力與推力共生的拍翅運動 拍翅頻率的尺度變化

Acronis P.1 Acronis Anydata Engine P.2 P.4 Acronis Backup Advanced P.5 Acronis Backup Advanced for AP P.6 Vmware P.7 Acronis Backup P.8 IDC 80 % $20,0

untitled

厦门创兴科技股份有限公司

Transcription:

第 10 章 關聯式資料庫的功能相依性與正規化 學習重點 關聯綱要的非正式設計原則 關聯屬性的語意 值組中的資料重複和更新異常情況 值組中的空值 假值組 功能相依性 正規化的一般程序 關聯的正規化 2

學習重點 正規化的實際使用 鍵值與屬性的定義 第一正規化形式 第二正規化形式 第三正規化形式 第三正規化的一般化定義 BCNF (Boyce-Codd Normal Form) 藉由分解動作達到 BCNF 3 關聯綱要的非正式設計原則 (1) 什麼是關聯式資料庫設計? 如何將屬性分組以形成 良好的 關聯綱要 關聯綱要的兩個層次 邏輯的 使用者視界 層 儲存的 基底關聯 層 本章所說明的設計理論主要是應用在基底關聯上 所謂 好的 基底關聯有什麼條件? 4

關聯綱要的非正式設計原則 (2) 我們首先討論良好關聯式設計的非正式設計原則 接著討論功能相依性和正規化的正式概念 - 1NF (First Normal Form, 第一正規化形式 ) - 2NF (Second Normal Form, 第二正規化形式 ) - 3NF (Third Normal Form, 第三正規化形式 ) - BCNF (Boyce-Codd Normal Form,BCNF 正規化形式 ) 5 關聯屬性的語意 原則 1: 盡量不要將多個實體類型和關係類型的屬性結合在同一個關聯中 不同實體的屬性 (EMPLOYEE DEPARTMENT PROJECT) 不要混雜在同一個關聯裡 應該只有外來鍵才會被用來參考其他屬性 實體與關係屬性應該要盡量分離 目標 : 設計關聯綱要時應該盡量要讓每個關聯的意義容易解釋, 屬性的意義也應該很容易了解 6

圖 10.1 COMPANY 關聯式資料庫綱要的簡化版本 7 值組中的資料重複和更新異常情況 不同實體的屬性混雜在一起可能會出問題 資訊重複儲存而浪費空間 更新異常的問題 新增異常 (Insertion anomalies) 刪除異常 (Deletion anomalies) 修改異常 (Modification anomalies) 8

更新異常的範例 (1) 以這個關聯為例 : EMP_PROJ ( Emp#, Proj#, Ename, Pname, No_hours) 更新異常 : 變更計畫編號 P1 的計畫名稱, 從 Billing 改成 Customer-Accounting 可能會導致必須修改在計畫 P1 上 工作的所有 100 位員工的資料 9 更新異常的範例 (2) 新增異常 : 若要新增一個計畫就一定要指派員工相反的 - 若要新增員工就一定要為他指派計畫 刪除異常 : 如果要刪除某個計畫, 將會導致在該計畫上工作的所有員工也會被刪除 反過來看, 如果某位員工是該計畫唯一的工作人員, 則刪除該位員工將會導致該計畫也會被刪除 10

圖 10.3 這兩個關聯綱要都有更新異常的問題 11 12

針對資料重複和更新異常的原則 原則 2: 設計基底關聯時必須避免發生新增 刪除或修改異常的情形 假如發現任何異常情 況, 要清楚的記錄下來, 並確定程式能正確更 新資料庫 13 值組中的空值 原則 3: 盡量別讓基底關聯中的屬性值經常為空值 內容值經常是 NULL 的屬性應該要放在另外分開的關聯中 ( 還有主鍵 ) 空值可以有許多種解釋 : 這個值組沒有這個屬性值 這個值組的這個屬性值不知道是否存在 已知這個屬性值存在, 但不知道它的值 14

假值組 不好的關聯式資料庫設計可能會導致某些 JOIN 運算將產生錯誤的結果 原則 4: 在設計關聯綱要時, 若要使關聯資料可以針對屬性使用相等條件進行合併動作, 該屬性就必須是主鍵或外來鍵, 這樣就可以確保不會產生假值組 因此要盡量讓關聯的相配屬性是 ( 外來鍵, 主鍵 ) 的組合, 否則這樣的合併動作可能會產生假值組 15 功能相依性 (1) 所謂的功能相依性 (functional dependency,fd) 是指屬性間的限制, 它是評估關聯綱要中將屬性分組為關聯是否正確的主要方式 FD 和鍵值是用來定義關聯的正規化形式 (normal form) FD 是指資料庫中屬性集合之間的意義與相互關係的限制 在兩組屬性集合 X 與 Y 之間, 假如 X 的值可以唯一決定 Y 的值, 則稱 Y 功能相依於 X, 表示成 X Y 16

功能相依性 (2) 假如任兩個值組的 X 值相同,Y 值也就一定相同, 就表示 X -> Y 成立 對於任何關聯實例 r(r) 的任何兩個值組 t1 和 t2 而言, 假如 t1[x] = t2[x] 成立, 則 t1[y] = t2[y] 也一定成立 在 X -> Y 中, 屬性集合 X 稱為 FD 的左手邊 (left-hand side), 而屬性集合 Y 則稱為 FD 的右手邊 X -> Y 在關聯綱要圖中是以水平線連接箭頭表示 FD 是從屬性在真實世界上的限制所推導出來的 17 FD 限制的範例 (1) 從社會安全號碼可唯一決定員工姓名 SSN -> ENAME 專案編號可唯一決定專案名稱與專案地點 PNUMBER -> {PNAME, PLOCATION} 員工的社會安全號碼和專案編號可唯一決定員工每週在專案中工作的時數 {SSN, PNUMBER} -> HOURS 18

FD 限制的範例 (2) FD 是關聯綱要 R 的一種特性 這個限制必須在每個關聯實例 r(r) 上都成立 假如 K 是 R 的一個鍵值, 則從 K 可以唯一決定 R 中的所有屬性 ( 因為絕對不會有兩個不同的值組是 t1[k]=t2[k]) 19 正規化的一般程序 通常正規化的程序可以分成幾個階段, 每一階段各對應一種正規化形式 : 1. 第一正規化形式 (1NF): 目的是移除多值屬性 ( 又稱為重複群組 ), 使表格的每個行列交會點都是單一值 ( 可能為 null) 2. 第二正規化形式 (2NF): 移除部份的功能相依性 3. 第三正規化形式 (3NF): 移除可遞移相依性 4. Boyce/Codd 正規化形式 (BCNF): 移除那些因為功能相依性所產生的其餘異常 5. 第四正規化形式 (4NF): 移除多值相依性 6. 第五正規化形式 (5NF): 移除合併相依性 20

關聯的正規化 正規化 (normalization): 將不夠好的關聯其屬性分組成較小關聯的過程 正規化形式 (normal form,nf): 藉由關聯的鍵值和 FD 條件, 判斷這個關聯綱要是否符合某個正規化形式 21 正規化的實際使用 進行正規化動作的目的是要讓設計的品質更高, 並且更符合需求 如果資料庫設計人員和使用者很難瞭解或偵測有這些限制, 那麼正規化的效果就會大打折扣 資料庫設計人員不必一定要將關聯正規化到最高的正規化形式 ( 通常是到 3NF BCNF 或 4NF) 去正規化 (denormalization): 將符合較高正規化的關聯合併成符合較低正規化的基底關聯的過程 22

鍵值與屬性的定義 (1) 關聯綱要 R = {A 1, A 2,..., A n } 的超鍵 (superkey) 是一組屬性的集合 S R, 而且在 R 的任何合法關聯狀態 r 中, 不會存在有任何兩筆值組 t 1 和 t 2, 使得 t 1 [S] = t 2 [S] 假如鍵值 (key) K 是一個超鍵, 但若移除其中任何一個屬性它就不再是超鍵 23 鍵值與屬性的定義 (2) 假如某個關聯綱要有一個以上的鍵值, 則每個都稱為候選鍵 (candidate key) 候選鍵中的其中一個可被指定為主鍵 (primary key), 其他稱為次要鍵 (secondary key) 在 R 中某個屬性如果是 R 的候選鍵之一, 則稱之為關聯 R 中的主要屬性 (prime attribute), 其他則稱為次要 (nonprime) 屬性, 也就是說它不是任何一個候選鍵 24

第一正規化形式 不允許多值屬性 複合屬性和巢狀關聯, 在每筆值組中屬性的值必須是不可分割的 (nonatomic) 它被認為是關聯定義的一部分 25 26

27 第二正規化形式 (1) 使用 FD 和主鍵的觀念定義 : 主要屬性 : 此屬性是主鍵 K 的成員之一 完全功能相依 (full functional dependency): 假設功能相依 X Y 是完全功能相依, 則由 X 移除任何屬性 A, 則相依性就無法成立 範例 : {SSN, PNUMBER} -> HOURS 是個完全 FD, 因為無論是 SSN -> HOURS 或 PNUMBER -> HOURS 都不成立 - {SSN, PNUMBER} -> ENAME 不是個完全 FD, 因為 SSN -> ENAME 也成立 這稱作部分功能相依 (partial functional dependency) 28

第二正規化形式 (2) 若關聯 R 中每個非主鍵的屬性 A 都完全功能相依於 R 的主鍵, 則關聯 R 符合 2NF 假如關聯不符合 2NF, 則可將關聯分解成多個關聯, 使得每個關聯中非主鍵的屬性都完全功能相依於主鍵, 如此便可符合 2NF 29 30

31 第三正規化形式 (1) 定義 : 遞移相依性 (transitive dependency): 從 X -> Y 和 Y -> Z 這兩個 FD 可以推導出 FD X -> Z 範例 : - SSN -> DMGRSSN 是個遞移 FD, 因為 SSN -> DNUMBER 和 DNUMBER -> DMGRSSN 都成立 - SSN -> ENAME 是非遞移的, 因為並沒有一組屬性 X 可以讓 SSN -> X 和 X -> ENAME 都成立 32

第三正規化形式 (2) 關聯綱要 R 如果已經是 2NF, 而且沒有任何 R 的非主要屬性是遞移相依於主鍵, 則 R 符合 3NF R 透過 3NF 正規化程序可以被分解成 3NF 關聯注意 : 假設 X -> Y 且 Y -> Z 都成立, 其中 X 是主鍵, 此時只有當 Y 不是候選鍵時才會有問題 如果 Y 是候選鍵, 遞移相依性就沒有問題以 EMP (SSN, Emp#, Salary ) 為例此例 SSN -> Emp# -> Salary, 而且 Emp# 是個候選鍵 33 第三正規化的一般化定義 (1) 以上的定義都是只針對主鍵 接下來的定義會將關聯的所有候選鍵也納入考慮 假如在 R 中的每一個非主要屬性 A 都不是部份相依於 R 的任何鍵值, 則稱關聯 R 符合 2NF 34

第三正規化的一般化定義 (2) 定義 : 關聯綱要 R 的超鍵 (superkey): 一組包含 R 的鍵值的屬性集合 S 假如在關聯 R 中有任何功能相依性 X A 成立, 而且 (a) X 是 R 的超鍵, 或者 (b) A 是 R 的主要屬性 這兩個條件其中之一成立, 則稱關聯 R 符合 3NF 注意 :BCNF 不允許條件 (b) 成立 35 Boyce-Codd 正規化形式 (BCNF) 假如在關聯 R 中有任何功能相依性 X A 成立, 而且 X 是 R 的超鍵, 則稱關聯綱要 R 符合 BCNF 每一種正規化形式都是比前一種更強的正規化形式 每個 2NF 關聯也一定符合 1NF 每個 3NF 關聯也一定符合 2NF 每個 BCNF 關聯也一定符合 3NF 有些關聯符合 3NF 但不符合 BCNF 目標是讓每個關聯都符合 BCNF ( 或 3NF) 36

37 38

藉由分解動作達到 BCNF (1) 假設在關聯 TEACH 中存在兩個 FD: fd1: { student, course} -> instructor fd2: instructor -> course {student, course} 是候選鍵, 而其相依性如圖 10.12(b) 所示 因此這個關聯符合 3NF 但不符合 BCNF 不符合 BCNF 的關聯應該要加以分解, 同時要盡量保存所有的功能相依性 39 藉由分解動作達到 BCNF (2) 關聯 TEACH 有以下 3 種可能的分解方式 : 1. {student, instructor} and {student, course} 2. {course, instructor } and {course, student} 3. {instructor, course } and {instructor, student} 以上這 3 種分解方式都會遺失功能相依性 FD1 只有第 3 種在關聯合併後不會產生假值組 40

學習評量 請說明新增 刪除和修改異常 為什麼它們被認為是不好的? 請舉例說明 為何在一個關聯中有許多空值被認為是不好的? 請說明假值組的問題, 以及如何避免它發生 何謂功能相依性? 何謂非正規化關聯? 由第一正規化到 Boyce-Codd 正規化的發展過程為何? 41 學習評量 假設有個全域 (universal) 關聯 R = {A, B, C, D, E, F, G, H, I, J}, 其功能相依性集合 F = {{A, B} {C}, {A} {D, E}, {B} {F}, {F} {G, H}, {D} {I, J}} 請問何者為 R 的鍵值? 請將 R 分解為 2NF, 然後再分解成 3NF 的關聯 重複上題, 但使用不同的功能相依性集合 G = {{A, B} {C}, {B, D} {E, F}, {A, D} {G, H}, {A} {I}, {H} {J}} 42