Ch06_

Similar documents
Microsoft PowerPoint - Ch8

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

Microsoft PowerPoint - Ch6

Microsoft Word - 2.doc

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

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

目錄

16572.mps

區 內 從 事 應 回 收 廢 棄 物 之 回 收 分 類 貯 存 轉 運 及 營 利 之 場 所 八 既 有 工 業 管 線 : 指 本 自 治 條 例 施 行 前 已 設 置, 非 屬 公 用 事 業 或 公 共 使 用, 而 供 工 業 使 用 之 管 線 第 四 條 為 查 核 本 自 治

PowerPoint Presentation


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

( )... 5 ( ) ( )

(Microsoft Word - \245\325\250\337\257Z\266\351\260T2.doc)

四 本 學 期 程 架 構 : (1) 學 活 流 程 與 策 略 視 聽 故 事 時 事 節 令 生 活 問 題 預 習 單 朗 讀 問 答 討 論 討 論 理 解 欣 賞 想 像 練 習 章 結 構 敘 寫 技 巧 修 辭 要 領 仿 作 造 字 原 理 字 義 釐 清 字 音 字 形 辨 析

26 D00 27 D02 28 D03 29 D05 30 D06 31 D10 32 D12 33 D13 34 D14 35 D16 36 D17 37 D18, 38 D19 39 D20 40 D21 41 D22 42 D23 43 D24 44 D25 45 D26 46 D27 47

记 忆 155 期 北 京 大 学 文 革 专 辑 (9) 目 录 专 稿 章 铎 从 高 云 鹏 的 遭 遇, 看 迟 群 之 流 的 专 制 附 : 高 云 鹏 给 胡 宗 式 章 铎 的 信 (2015 年 11 月 19 日 ) 评 论 马 云 龙 王 复 兴 抢 救 记 忆 : 一 个 北


第一章

标题

Microsoft Word - media-tips-zh.doc

A 单 位 负 责 人 B 会 计 机 构 负 责 人 C 会 计 主 管 人 员 D 会 计 人 员 多 选 题 : 1. 单 位 伪 造 变 造 会 计 凭 证 会 计 账 簿, 编 制 虚 假 财 务 会 计 报 告 的, 县 级 以 上 人 民 政 府 财 政 部 可 以 依 法 行 使 的


PowerPoint Presentation

國 際 金 融 業 務 台 北 市 忠 孝 東 路 四 段 325 號 6 樓 (02) FAX:(02) 分 行 北 寧 分 行 台 北 市 南 京 東 路 四 段 16 號 (02) FAX:(02) 復 旦 分 行

Microsoft PowerPoint - Ch2

菩提道次第廣論

繁 華 國 小 101 學 年 母 親 節 感 恩 惜 福 - 跳 蚤 市 場 暨 科 學 闖 關 遊 戲 親 子 活 動 實 施 計 畫 一 依 據 : 本 校 101 學 年 度 校 務 計 畫 及 行 事 曆 二 目 的 : 1. 培 養 學 生 感 恩 惜 物 知 福 惜 福 的 節 儉 觀

台 中 市 北 屯 區 東 山 里 橫 坑 9 林 志 明 巷 89-5 菜 豆 菜 大 漿 果 菜 豆 菜 大 漿 果 小 漿 果 核 果 柑 桔 無 陳 錦 生 新 竹 市 香 山 區


育儿小故事(四)

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

untitled

4

杭师大党字〔2011〕15号中共杭州师范大学委员会关于进一步加强和改进发展党员工作的意见

<4D F736F F D A67EAF64BEC7BCFABEC7AAF7C2B2B3B95FA5FEB3A1AAA95F2D31312E31362E646F63>

得 依 法 召 集 股 東 臨 時 會 第 十 一 條 : 股 東 常 會 之 召 集 應 於 開 會 三 十 日 前, 股 東 臨 時 會 之 召 集 應 於 開 會 十 五 日 前, 將 開 會 日 期 地 點 及 召 集 事 由 通 知 各 股 東 並 公 告 之 第 十 二 條 : 本 公

同 時, 那 些 百 萬 富 翁 們 正 乘 坐 着 私 家 噴 射 機 駛 往 歐 洲, 甘 願 花 大 把 的 鈔 票 接 受 替 代 療 法 並 且 重 獲 了 健 康 替 代 療 法 總 是 很 靈 嗎? 不, 當 然 不 是 在 這 世 界 上 没 有 盡 善 盡 美 的 事 物 但 是

<4D F736F F D B2C431A6B8A4A4A4DFA8C6B0C8B77CC4B3ACF6BFFD E646F63>

untitled

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

<4C50352D B971B8A3B35DB3C6A655B2D5A9FAB2D32E786C73>

<4D F736F F D20BACEECF1E2D3A3BAD6D0D2BDC0EDC2DBB5C4BACBD0C4CAC7CEB1BFC6D1A72E646F63>

<B0DACDD1D1C7BDA1BFB5B5C4C0A7C8C52E733932>

把生命托付给谁?

《中老年男性养生保健》

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

封面-12

123

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

投影片 1

Microsoft Word - 事務培訓招生簡章(含報名表).doc

一、

投影片 1

【第一类】



H 批发和零售业

Transcription:

CH06 正規化概述

課程大綱 2 何謂好的關聯綱目 意義明確 資料不重複儲存 屬性值很少有空值 關聯 JOIN 後不會產生虛假序列值 函數相依 基本正規化 第一正規式 (1NF) 第二正規式 (2NF) 第三正規式 (3NF) 進階正規式 Boyce-Codd 正規式 (BCNF) 第四正規式 (4NF) 第五正規式 (5NF)

好的關聯綱目特性 好的關聯綱目特性 意義明確 資料不重複儲存 屬性值很少有空值 關聯的 JOIN 不會產生虛假序列值

何謂好的關聯綱目? 4 意義明確 儲存資料庫應用系統裡的同一類實體或關係 以下列的交易會員 (TransactionMember) 關聯表包括資料庫應用系統中的交易和會員資料, 所以並意義不明確 可將交易與會員資料分割為兩個關聯表以改善

何謂好的關聯綱目? 5 資料不重複儲存 空間浪費 更新異常 以下產品訂購關聯表 (OrderProduct) 裡 任賢齊專輯三 的資料重複儲存 資料重複儲存, 若有需要修正將更新多筆資料

何謂好的關聯綱目? 6 更新異常有三種 新增異常 C092777 的資料已經存在 INSERT INTO TransactionMember(tNo, mid, name) VALUES ( 93000, c0927777, Chen ) ; 刪除異常 影響到現有資料 DELETE WHERE TransactionMember tno = 90111 ; 修改異常 Huang 的資料已經存在 UPDATE TransactionMember SET name = Huang WHERE tno = 92333;

課堂練習 1 7 考慮第六張投影片的關聯範例 OrderProduct, 請問刪除哪一筆記錄後會造成刪除異常? Ans: 只有刪除第 3 筆和第 8 筆任賢齊的專輯記錄不會有刪除異常, 刪除其餘的記錄, 因都只有單獨一筆資料, 因此都會造成該商品資訊消失, 而形成刪除異常

何謂好的關聯綱目? 8 屬性值很少有空值 一個設計不良的綱目可能會造成有些屬性有許多空值 大量空值的缺點 : 浪費空間 彙總函數應用在有空值的屬性時, 其意義不明確, 無法計算 空值的含義不唯一

何謂好的關聯綱目? 9 關聯經過 JOIN 後不會產生虛假序列值 以上三種問題都是因為一個關聯綱目包含過多 的屬性 若將一個關聯綱目分解成好幾個, 分解的方式要多加留意 8-9

交易編號 tno 商品編號 pno 交易數量 amount 售價 saleprice 商品名稱 pname 定價 unitprice 種類 catalog 91100 b30999 1 450 資料庫理論與實務 500 Book 91100 b30999 1 450 管理資訊系統概 論 92555 b10234 5 3000 資料庫理論與實 務 600 Book 500 Book 92555 b10234 5 3000 管理資訊系統概論 600 Book 92666 d11222 1 300 任賢齊專輯三 300 CD 上例產生了兩筆虛假序列值 ( 以紅色字體顯示 ) 無損 JOIN 的分解 (Lossless join decomposition): 切割之後的兩個關聯, 其共同屬性必須是其中一個關聯的關聯鍵 以上的分解 (Product2 和 Record2 關聯 ) 不滿足無損 JOIN 的分解, 因為共同屬性 catalog 在兩個關聯裡都不是關聯鍵

函數相依 11 函數相依之定義 : 兩個 ( 群 ) 屬性間存在的一種類似函數 (function) 裡定義域 (domain) 和對應域 (co-domain) 的關係 例如 :{mid} {name, birthday} 每個會員編號 ((mid) 剛好有一組 { 名字 (name), 生日 (birthday)} 不會有一個 mid 有兩組或更多的 {name, birthday} 其中 {name} {mid} 不成立 ( 因為可能有同名同姓的會員 ) 對於函數相依 X Y 我們稱 X 決定 Y 或 Y 函數相依於 X

函數相依 12 根據函數相依, 一個關聯的任何關聯鍵皆可決定其所有屬性 屬性和屬性間的函數相依是一種語意的關係, 必須由人工仔細推敲後來訂定 有些函數相依仍然可以由規則可以推論可得

函數相依範例說明 13 OrderProduct 會員編號購物車產生時間商品編號訂購數量商品名稱定價種類 mid carttime pno amount pname unitprice catalog IR1:X Y X Y IR2:X Y XZ YZ IR3:X Y, Y Z X Z (b)

泛封閉集合 14 一個屬性集合的泛封閉集合 : 給定一些函數相依, 我們可以推導出這些屬性可以決定的所有屬性, 稱為泛封閉集合 TranctionNumber 關聯綱目為例 : {tno} + = {tno, transmid, method, transtime, pid, name, birthday} {transmid} + = {transmid, pid, name, birthday} OrderProduct 關聯綱目為例 : {pno} + = {pno, pname, unitprice, catalog} {mid, carttime, pno} + = {mid, carttime, pno, amount, pname, unitprice, catalog}

課堂練習 2 15 由 OrderProduct 的函數相依, 計算 {mid, pno} + Ans: {pno}+ = {pno, pname, unitprice, catalog} {mid, pno}+ = {mid, pno, pname, unitprice, catalog} 8-15

正規化 16 正規化 (Normal Form): 將關聯綱目改寫成為正規化的過程 基本正規化 第一正規化 (1NF) 第二正規化 (2NF) 第三正規化 (3NF) 高等正規化 BCNF 第四正規化 (4NF) 第五正規化 (5NF)

第一正規化 (1NF) 17 R 滿足第一正規式 (1NF) 當 R 的每個屬性都是簡單且單值 每個合法的關聯綱目都滿足第一正規式如何分解多值屬性 處理方式一 : 維持同樣的屬性, 但關聯主鍵要加上該多值屬性 處理方式二 : 產生另一個關聯, 此關聯包括原主鍵和該多值屬性

多值屬性處理方式一 18 Transaction_Products 交易編號 tno 會員編號 transmid 交易方式 method 交易時間 transtime 商品 products 91100 a0911234 cart 2005-02-02:18:30:00 {b30999 } 92666 c0927777 cart 2005-10-10:22:10:30 {d11222,d20777,v00111} 92333 c0927777 email 2005-10-15:09:00:00 {b51111} 91888 a0910001 fax 2005-09-10:10:10:00 {b40555, d03333} 90111 b0905555 cart 2005-05-05:12:30:30 {v01888} 92555 b0922468 cart 2005-11-11:09:10:00 {b10234, b40555} 8-18

19 多值屬性處理方式二

課堂練習 3 20 考慮 Transaction_Product, 請用第二種方式將其變成 1NF Ans: Transaction tno transmid method transtime 91100 a091123 4 92666 c092777 7 92333 c092777 7 91888 a091000 1 90111 b090555 5 92555 b092246 8 cart 2005-02-02:18:30:00 cart 2005-10-10:22:10:30 email 2005-10-15:09:00:00 fax 2005-09-10:10:10:00 cart 2005-05-05:12:30:30 cart 2005-11-11:09:10:00 TransactionProdu ct tno product 91100 b30999 92666 d11222 92666 d20777 92666 v00111 92333 b51111 91888 b40555 91888 d03333 90111 v10888 92555 b10234 92555 b40555 8-20

21 第二正規化 (2NF) 第二正規化 ( 簡稱 2NF) 是根據完全函數相依的概念 一個函數相依 X Y, 如果我們可以從 X 裡找出部分元素 X, 倘若 X Y 仍然成立, 則稱 X Y 為一個部分函數相依, 否則稱 X Y 為完全函數相依 下圖 OrderProduct 關聯為例 : {mid, carttime, pno} {pname} 是一個部分函數相依 因為 {pno} {pname} {mid, carttime, pno} {amount} 是一個完全函數相依 8-21

22 第二正規化 (2NF) 一個關聯綱目 R 滿足第二正規化 (2NF) 如果 對於 R 的每一個關聯鍵 K, 所有非 K 的屬性都完全函數相依於 K 下圖的 OrderProduct 關聯綱目不滿足 2NF, 因為 pname 部分函數相依於主鍵 因為存在 {pno} {pname} OrderProduct 會員編號 mid 購物車產生時間 carttime 商品編號 pno 訂購數量 amount 商品名稱 pname 定價 unitprice 種類 catalog 8-22

23 第二正規化 (2NF) 為滿足 2NF,OrderProduct 可以進行分解如下 : 8-23

24 第二正規化範例 (2NF) 假設 TransactionMember 關聯表有一個次要鍵 (transmid, seq) {name} 部分函數相依於 {transmid, seq }, 因此不滿足 2NF 可分解如下, 以滿足 2NF 8-24

課堂練習 4 25 考慮 Transaction_Product 關聯綱目, 請問其是否滿足 2NF? Ans: 因為 {tno,product} { transmid, method, transtime}, 而且存在 {tno} { transmid, method, transtime} 因此 { transmid, method, transtime} 為部份函數相依於 {tno, product}, 所以並不符合第二正規化

26 第三正規化 (3NF) 第三正規化 ( 簡稱 3NF) 是根據遞移函數相依的概念進行 對於一個函數相依 X Y, 如果存在著另外兩個函數相 依 :X Z 和 Z Y, 且 Z 不為超級鍵, 則稱 X Y 為遞移函數相依 下圖 TransactionMember 關聯 {tno} {name} 是一個遞移函數相依 因為 {tno} {transmid} 且 {transmid} {name} 8-26

第三正規化 (3NF) 27 在下列條件下一個關聯綱目 R 滿足 3NF: R 滿足 2NF 對於每一個關聯鍵 K,R 的每一個非鍵屬性都不可遞移函數相依於 K 例如 :TransactionMember 不滿足 3NF {tno} {name} 是一個遞移函數相依, 而 tno 為主鍵 8-27

28 第三正規化 (3NF) 可分解如下 : 8-28

課堂練習 5 29 考慮下圖 Member 關聯的函數相依, 有人說此關聯不滿足 3NF, 因為 {mid} {name} 是遞移函數相依, 可以由 {mid} {pid} 和 {pid} {name} 推論而得 你認為呢? Ans: 如上圖函數相依所示, 雖然 {mid} {pid} 且 {pid} {name}, 但是考慮遞移函數相依的定義 : 若存在 X Z 和 Z Y, 且 Z 不為超級鍵, 則稱 X Y 為遞移函數相依 因為 {pid} 是屬於 Member 的身分證字號, 已是唯一的資料, 也就是超級鍵 所以 {mid} {name} 並不是遞移函數相依 因此 Member 關聯滿足 3NF 8-29

30 Boyce-Codd 正規化 (BCNF) 一個關聯綱目 R 滿足 BCNF, 如果 對於 R 的每一個函數相依 A B,A 都是超級鍵 滿足 BCNF 的關聯綱目必然也滿足 2NF 和 3NF 若 R 不滿足 2NF, 則對於一個關聯鍵 X 來說, 存在著部分函數相依 X Y, 也就是 X Y,X X 所以 Y 可被非超級鍵 X 所決定 若 R 不滿足 3NF, 則存在著非鍵屬性 Y 是遞移函數相依於關聯鍵 X 也就是有 X Z 和 Z Y, 且 Z 不是超級鍵 所以 Y 可被非超級鍵 X 所決定

Boyce-Codd 正規化 (BCNF) 31 有些關聯綱目滿足 3NF 但卻不滿足 BCNF

Boyce-Codd 正規化 (BCNF) 32 Transaction2 Transaction1 報價單編號 invno A D C B 交易編號 tno c01 c01 c03 f04 商品編號 pno 報價單編號 invno 數量 amount 單價 unitprice bk001 A 3 500 bk200 D 2 400 cd100 C 5 350 vcd888 C 3 450 bk001 B 1 250 8-32

Boyce-Codd 正規化 (BCNF) 33 上頁 Transaction 關聯滿足 3NF( 但不滿足 BCNF) 上頁 Transaction1 和 Transaction2 滿足 BCNF 何者較好? 1. 考慮所有函數相依 (tno, pno) amount) 2. (tno, pno) saleprice 3. (tno, pno) invno 4. invno tno 5. (invno, pno) amount 6. (invno, pno) saleprice

Boyce-Codd 正規化 (BCNF) 34 只有 Transaction 關聯時, 設定主鍵可決定 (tno, pno) amount (tno, pno) saleprice (tno, pno) invno 分解成 Transaction1 和 Transaction2 關聯時, 設定主鍵可決定 (invno, pno) amount (invno, pno) saleprice) invno tno 當分解成 Transaction1 和 Transaction2 關聯時, 若仍想維持函數相依 (tno, pno) amount, 則需做跨關聯的檢查 保留函數相依的分解 : 關聯綱目分解後各函數相依仍可藉由檢查單一關聯來確定 BCNF 常無法保留所有函數相依

課堂練習 6 35 有人可能認為 8-12(b) 的關聯綱目沒有比較省空間, 請修改圖 8-12 範例關聯裡的記錄, 使得空間的節省會較多 Ans: 3NF 交易編號 tno 產品編號 pno 數量 amoun t 單價 unitprice 報價單編號 invno c01 bk001 3 500 A c01 bk200 2 400 A 報價單編號 invno BCNF 產品編號 pno 數量 amount 單價 unitprice A bk001 3 500 A bk200 2 400 A cd100 5 350 A vcd888 3 450 A bk005 1 250 c01 cd100 5 350 A c01 vcd888 3 450 A c01 bk005 1 250 A 報價單編號 invno A 交易編號 tno c01 8-35

第四正規化 (4NF) 36 第四正規式 ( 簡稱 4NF) 是依據多值相依的概念而來 多值相依 X Y: 給定一個 X 的屬性值, 便有一組 Y 的屬性值 pno author ( 同一商品編號有許多個創作者 ) pno transaction( 同一商品編號有許多筆交易 ) 商品編號 創作者 交易 pno author transaction c01 ABC 50 c01 XYZ 42 c01 ABC 42 c01 XYZ 50 m05 DEF 51 m05 XYZ 33 m05 DEF 33 m05 XYZ 51 8-36

第四正規化 (4NF) 37 ProductAuthor 商品編號 pno c01 創作者 author ABC ProductTransaction 商品編號 pno 交易 transacti on c01 XYZ c01 50 m05 DEF c01 42 m05 XYZ m05 51 m05 33 在 ProductAuthor 關聯裡的多值相依 pno author 和 ProductTransaction 關聯裡的多值相依 pno transaction 稱為微不足道的多值相依 一個關聯綱目 R 滿足 4NF, 如果 每一個 R 的非微不足道的多值相依其左方都是超級鍵 滿足 4NF 也必定滿足 BCNF

第五正規化 (5NF) 38 一個關聯綱目 R 滿足 5 NF: R 無法再被分解成數個關聯 R1, R2,, Rk, 使得 R1*R2* *Rk=R R 可以被分解成數個關聯 R1, R2,, Rk,, 使得 R1*R2* *Rk=R,, 但是每一個 Ri, 1 i k,, 都是 R 的超級鍵 5NF 限制條件的發現和檢查不易, 也因此在實作上通常不予考慮

The End 1-39