- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关联表的正规化
資料庫(DB) ch07 * 7-5-1 合併相依(定義) 定義7.8:合併相依(Join Dependency)以關聯表R為例,若關聯表R等於自然合併運算R1 R2, … Rn,Ri是關聯表R屬性的子集合,我們可以說,關聯表R滿足合併相依(R1, R2, …, Rn)。 關聯表DCS可以使用投影運算分割成DC、CS和SD三個關聯表,執行DC CS SD自然合併運算就可以還原成原始DCS關聯表,所以關聯表DCS擁有合併相依。 資料庫(DB) ch07 * 7-5-1 合併相依(異常狀況1) 若關聯表擁有合併相依,新增和刪除時就會產生異常情況 例如:DCS關聯表擁有合併相依: 在DCS關聯表新增一筆值組{資管系, 101, 江小魚},如右圖所示: 資料庫(DB) ch07 * 將上述關聯表以投影運算分割成DC、CS和SD三個關聯表,再將它使用合併運算結合起來,可發現多了一筆值組,如下圖所示: 如果新增一筆值組{資訊系, 101, 江小魚},在分割和合併後,就不會多出一筆值組。 7-5-1 合併相依(異常狀況2) 資料庫(DB) ch07 * 7-5-2 第五階正規化型式 – 5NF(定義) 定義7.9:關聯表R符合第五階正規化型式(Fifth Normal Form;5NF),也稱為投影-合併正規化型式(Project-Join Normal Form;PJNF),這是指關聯表符合4NF,且所有合併相依(R1, R2, …, Rn)的關聯表屬性子集Ri,都是關聯表R的超鍵(Superkey),也就是刪除合併相依。 指關聯表沒有存在合併相依 上一節的DCS關聯表為例,DCS關聯表擁有合併相依,所以不符合5NF 資料庫(DB) ch07 * DCS關聯表擁有合併相依,可使用投影運算進行再次的分割,並不符合5NF,需要執行第五階正規化,使用投影運算分割成3個關聯表,如下圖所示: 7-5-2 第五階正規化型式 – 5NF(正規化) 資料庫(DB) ch07 * 7-3-1 第一階正規化型式 :1NF(正規化方法2) 方法二:分割成多筆值組 1NF (第一階正規化): 關聯表的每一個屬性只能儲存單元值 將多重值屬性改成重複值組,屬性的每一個多重值新增一筆值組 資料庫(DB) ch07 * 7-3-1 第一階正規化型式 : 1NF(正規化方法3) 方法三:分割成不同屬性 第一階正規化: 將多重值屬性配合虛值, 新增為關聯表的多個屬性 先決條件是多重值的個數是有限的 例如: 一位學生規定只能修兩門課程: Students關聯表: 使用2組屬性儲存選課資料的課程編號與名稱 雖符合1NF,但是若學生選課數不只兩門 產生資料無法新增的異常情況 資料庫(DB) ch07 * 7-3-2 第二階正規化型式 – 2NF(定義) 定義7.3: 關聯表R符合第二階正規化型式(Second Normal Form;2NF) 指關聯表符合1NF 且所有非主鍵(Primary Key)的屬性都完全相依(Fully Dependency)於主鍵 也就是刪除所有部份相依的屬性 第二階正規化型式: 關聯表中,不是主鍵的屬性需要完全相依於主鍵 刪除關聯表所有部分相依(Partial Dependency)的屬性 Students關聯表執行第一階正規化: 分割成Students和Classes關聯表 Classes關聯表繼續第二階正規化 複合主鍵 Classes (sid, c_no,title,eid,instructor,office,room) 資料庫(DB) ch07 * 7-3-2 第二階正規化型式 : 2NF(範例) Students (sid, name) Classes關聯表主鍵是(sid, c_no, eid),已知的功能相依: FD1:{ sid, c_no, eid }→room FD2:c_no→title FD3:eid→{ instructor, office } 資料庫(DB) ch07 * 7-3-2 第二階正規化型式 : 2NF(功能相依) 部分相依 部分相依 資料庫(DB) ch07 * 7-3-2 第二階正規化型式 : 2NF(正規化結果) Classes (sid, c_no, eid, room) Courses (c_no, title) Instructors (eid, instructor, office) 資料庫(DB) ch07 * 補充:第二階正規化範例 員工編號 課程名稱 員工姓名 員工部門別 員工薪水 課程完成日 完全功能相依於主鍵 只功能相依於部分主鍵(員工編號) 員工修課 (員工編號,課程名稱,課程完成日) 員工 (員工編號,員工姓名,員工部門別,員工薪水
原创力文档


文档评论(0)