Chap 7 關聯式資料庫的正規化.

Slides:



Advertisements
Similar presentations
Shan University 商用微積分 ( 一 ) 詹傑仲.
Advertisements

工職數學 第四冊 第一章 導 數 1 - 1 函數的極限與連續 1 - 2 導數及其基本性質 1 - 3 微分公式 1 - 4 高階導函數.
大綱 1. 三角函數的導函數. 2. 反三角函數的導函數. 3. 對數函數的導函數. 4. 指數函數的導函數.
正規化範例 第 1 、 2 階正規化. 正規化範例 ( 水果供應商 ) 編號姓名電話地址 郵遞區 號 品名價格 001 林國鐘 高雄市 100 頻果 100 香蕉 60 鳳梨 葉連芳 台北市 400 葡萄 60 頻果 郭明正
變數與函數 大綱 : 對應關係 函數 函數值 顧震宇 台灣數位學習科技股份有限公司. 對應關係 蛋餅飯糰土司漢堡咖啡奶茶 25 元 30 元 25 元 35 元 25 元 20 元 顧震宇 老師 台灣數位學習科技股份有限公司 變數與函數 下表是早餐店價格表的一部分: 蛋餅 飯糰 土司 漢堡 咖啡 奶茶.
专题19 自然灾害与防治.
An Introduction to Database System
第六章 数据库设计.
大 播 海 直.
Chap 11 SQL基本查詢指令.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第 节 地球公转及其地理意义 基础导学 地球的公转.
Chap 4 關聯式資料庫模型.
資料表關聯與正規化.
第4章 關聯式資料庫模型 關聯式資料模式的特點、優缺點、關係連結法 4-1 關聯式資料庫模型的基礎 關聯式資料模型的組成元素
Access資料庫管理系統 授課教師:陳恩航 老師 學歷:國立台灣科技大學資管系博士 經歷:國立台北商業技術學院資管系.
第六章 結構化分析與設計 ─資料塑模.
認識倍數(一) 設計者:建功國小 盧建宏.
Views ,Stored Procedures, User-defined Function, Triggers
Ch04 關聯式資料庫 資料庫管理.
9/28號專題報告 Web網頁遊戲 曾建瑋.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第7章 關聯式資料庫的正規化 7-1 正規化的基礎 7-2 功能相依 7-3 第一階到第三階正規化型式 7-4 多重值相依與第四階正規化型式
Chap 10 SQL定義、操作與控制指令.
高等資料庫管理系統 Advanced Database Management System
第五章 關聯式資料庫的理論基礎.
資料表正規化.
資料正規化.
第 2 章 規劃關聯式資料庫.
電子商務基本概念 電子商務的定義 1-1 電子商務的特性 1-2 電子商務的演進 1-3.
SQL語法 定義與操作指令.
正規化 Normalization.
PHP與MySQL 入門學習指南 凱文瑞克 著 第 21 章 資料庫管理概論.
Chapter 3 正規化與各種合併.
資料庫簡介 郭士煒 助教.
表格正規化簡介 講授大綱: 第一正規化 資料表的切割 第二正規化 第三正規化 Boyce/Codd正規化 第四正規化 第五正規化
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
使用VHDL設計—4位元位移器 通訊一甲 B 楊穎穆.
第4章 關聯式資料庫模型 4-1 關聯式資料庫模型的基礎 4-2 關聯式資料庫模型的資料結構 4-3 關聯式資料庫模型的完整性限制條件
第5章 資料庫的正規化.
App Inventor2呼叫PHP存取MySQL
Database Systems Design Part III : Normalization
F、結構化分析與設計: 資料塑模(下) 資料塑模工具︰實體關係圖 實體關係圖之建構 實體關係圖轉關聯表 正規化 關聯表資料字典 七個轉換規則
Java 程式設計 講師:FrankLin.
Fortran 程式語言 之 編與譯(二) 張基昇.
TB-054A  周天穎 編著 儒林圖書公司 發行.
Ch05 實體關圖與正規化分析 資料庫管理.
建国以来,大陆对台政策 金亚丽 周莎 黄运娜.
Dept. of Information Management OCIT February, 2002
第6章 資料庫設計與實體關聯模型 6-1 資料庫設計的基礎 6-2 實體關聯模型 6-3 建立實體關聯圖 6-4 實體關聯圖的常見錯誤
第 2 章 規劃關聯式資料庫.
資料庫管理系統 緒 論.
小學四年級數學科 8.最大公因數.
Chapter 3 補充 合併理論.
微積分網路教學課程 應用統計學系 周 章.
107學年度第二學期高一校訂必修試行課程介紹 人文社會 專題探究 (12班) 數理研究 方法 (12班) 歷史組 (4班) 地理組 (1班)
單元操作與輸送現象(三) 南台科技大學 課程資訊 課程名稱 單元操作與輸送現象(三) 課程編碼 40D13702 系所代碼/名稱
資料庫正規化與E-R Model 簡介 義守大學資管系 張心怡、陶幼慧
DRC with Calibre 課程名稱:VLSI 報告人:黃家洋 日期: 改版(蔡秉均) 1.
第11章 SQL基本查詢指令 11-1 SELECT查詢指令 11-2 WHERE子句的比較運算子 11-3 WHERE子句的邏輯運算子
复古潮流PPT模板.
陣列與結構.
動畫演示 Node規範了一些基本的方法,像是增加節點、刪除節點、讓節點做一些事、取得第n個節點等等
坐標 →配合課本 P49~56 重點 在坐標平面上,以 ( m , n ) 表示 P 點的坐標,記為 P ( m , n ),m 為 P 點的 x 坐標,n 為 P 點的 y 坐標。 16.
資料表示方法 資料儲存單位.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
課程查詢─查詢網頁指引 1.請至【師大首頁】選擇學生.
Presentation transcript:

Chap 7 關聯式資料庫的正規化

7-1 正規化的基礎 「正規化」(Normalization)是一種標準處理程序來決定關聯表應該擁有哪些屬性,其目的是建立「良好結構關聯表」。 良好結構關聯表是一種沒有重複資料的關聯表,而且在新增、刪除或更新資料時,不會造成錯誤或資料不一致的異常情況。

7-1 正規化的基礎 目的 去除重複性:就是建立沒有重複資料的關聯表,因為重複資料不只浪費資料庫的儲存空間,而且會產生資料維護上的問題。 去除不一致的相依性:資料相依是指關聯表中的屬性之間擁有關係,如果關聯表擁有不一致的資料相依,這些屬性就會在新增、刪除或更新資料時,造成異常現象。

7-1-1 關聯表為什麼需要正規化 正規化的目的:避免資料重複。關聯表擁有非自然結合的屬性,就會造成資料重複的問題。

7-1-1 關聯表為什麼需要正規化 更新異常 在Student_Course_Classes關聯表更新指定的屬性資料,因為資料重複儲存在多筆值組(記錄),需要同時更新多筆值組的資料。

7-1-1 關聯表為什麼需要正規化 刪除異常 刪除值組,可能刪除合法資料。例如:刪除s001和s003的選課資料時會刪除CS101和CS121的課程資料。

7-1-1 關聯表為什麼需要正規化 新增異常 新增值組和刪除相反,可能只新增部分值組的資料。例如:新增一筆值組,課程編號是CS240,課程名稱為資料結構,學分是3

7-1-2 正規化的型式 正規化的處理過程一共分為五個階段的正規化型式,每一階正規化型式是在處理不同的屬性間資料相依(Dependency)的問題:

7-1-2 正規化的型式 第一階正規化型式(First Normal Form, 1NF):在關聯表刪除多重值屬性,讓關聯表只擁有單元值屬性。 第二階正規化型式(Second Normal Form, 2NF):滿足1NF且關聯表沒有「部分相依」。 第三階正規化型式(Third Normal Form, 3NF):滿足2NF,且關聯表沒有「遞移相依」。

7-1-2 正規化的型式 Boyce-Codd正規化型式(Boyce-Codd Normal Form, BCNF):屬於一種廣意的第三階正規化型式,如果關聯表擁有多個複合候選鍵,刪除候選鍵間的功能相依。 第四階正規化型式(Fourth Normal Form, 4NF):滿足BCNF且沒有多重值相依。 第五階正規化型式(Fifth Normal Form, 5NF):滿足4NF且沒有合併相依。

7-2 功能相依 功能相依(Functional Dependency,簡稱FD)是描述關聯表中屬性間的相依關係,這是關聯式資料庫正規化的基礎,簡單的說,關聯表正規化的第一步,就是在關聯表找出所有屬性間的功能相依。

7-2 功能相依-目的 當在關聯表找出所有屬性間的功能相依後,就可以幫助我們在關聯表找出: 重複資料:一些不該屬於此關聯表的屬性。 候選鍵和主鍵:如果關聯表的所有屬性都功能相依於一個或一組屬性,這個屬性就是候選鍵(Candidate Key)或主鍵(Primary Key)。

7-2-1 功能相依的定義 定義7.1:功能相依(Functional Dependency)以關聯表R為例,若關聯表R擁有屬性A與B,A與B可以是複合屬性,我們可以說屬性B功能相依(Functional Dependent)於A,或A功能決定(Functional Determines)B,寫成: R.A→R.B 或簡寫成: A→B 若關聯表R擁有A→B的功能相依,則在關聯表R的每一對t1和t2值組且t1(A) = t2(A),可以得到:t1(B) = t2(B)。

7-2-1 功能相依的定義 關聯表中如果2個值組的屬性A值是相同,則屬性B的值也一定相同。如果知道屬性A的值,就可以知道屬性B的值: A1→{ B1, B2, …Bn } { A1, A2, …, An }→B1 { A1, A2, …, An }→{ B1, B2, …Bn } 上述功能相依屬於一種單方向的關聯,A→B不表示B→A。

7-2-1 功能相依的定義 在Students關聯表的一些功能相依範例: sid→birthday sid→GPA sid→tel sid→{ name, birthday } sid→{ name, birthday, GPA } sid→{ name, birthday, GPA, tel } { sid, name }→{ name, birthday, GPA, tel }

7-2-2 功能相依的種類-種類 功能相依的種類主要可以分為三種: 完全相依(Full Dependency) 部分相依(Partial Dependency) 遞移相依(Transitive Dependency)

7-2-2 功能相依的種類 以Student_Course_Instructors關聯表為例

7-2-2 功能相依的種類 完全相依 完全相依是指如果屬性A(複合屬性)和B是關聯表屬性,B功能相依於A,且B沒有功能相依於任何A的子集,則稱B完全功能相依於A。 例如:Student_Course_Instructors關聯表的完全相依,如下所示: sid→name c_no→title eid→instructor eid→office { sid,c_no,eid }→{ name,title,instructor,office }

7-2-2 功能相依的種類 部分相依 部分相依是指如果A(複合屬性)和B是關聯表的屬性,B是功能相依於A,如果刪除A子集的部分屬性,仍然不會影響功能相依,則稱B部分功能相依於A。 例如:Student_Course_Instructors關聯表的部分相依,如下所示: { sid, c_no }→name { sid, c_no}→title { eid, instructor}→office

7-2-2 功能相依的種類 遞移相依 如果A、B和C是關聯表的屬性,A→B且B→C,則稱C是遞移相依於A,A→C。 例如:Student_Course_Instructors關聯表的遞移相依,如下所示: { sid, c_no, eid }→office 上述office屬性是遞移相依於{ sid, c_no, eid },因為: { sid, c_no, eid }→instructor instructor→office

7-2-2 功能相依的種類 遞移相依

7-3-1 第一階正規化型式 定義7.2:關聯表R符合第一階正規化型式(1NF)是指關聯表的每一個定義域都是單元值且只能是單元值,也就是刪除多重值屬性型態與複合屬性型態的屬性。

7-3-1 第一階正規化型式 98學年度第二學期選課單 學號: 9527001 姓名: 王小明 系別: 資工系 班級: 日四A 課程代號 課程名稱 授課教師 學分數 上課時間 上課地點 CS101 計算機概論 陳慶新 3 三567 M-101 CS203 程式語言 李鴻章 二234 E-512 CS222 資料結構 楊金欉 一567 T1-205 CS213 資料庫系統 林長文 五567 T2-303 CS107 實務專題 張世敏 1 一2 G-402 GC005 電影欣賞 王文擇 2 四12 G-501 總學分 15

7-3-1 第一階正規化型式 1NF範例 例如:在Students關聯表儲存學生的選課資料,主鍵是學號sid,如下圖所示:

7-3-1 第一階正規化型式 方法一:分割成不同的關聯表 關聯表違反1NF,一階正規化可以將這些多重值屬性連同主鍵分割成新關聯表。

7-3-1 第一階正規化型式 方法二:分割成值組 1NF關聯表的每一個屬性只能儲存單元值,所以一階正規化可以將多重值屬性改成重複值組,屬性的每一個多重值新增一筆值組。

7-3-1 第一階正規化型式 方法三:分割成不同屬性 一階正規化還可以將多重值屬性配合虛值新增為關聯表的多個屬性,不過其先決條件是多重值的個數是有限的。 例如:一位學生規定只能修兩門課程,Students關聯表可以使用2組屬性儲存選課資料的課程編號與名稱,雖然符合1NF,但是若學生選課數不只兩門,就會產生資料無法新增的異常情況。

7-3-2 第二階正規化型式 定義7.3:關聯表R符合第二階正規化型式(Second Normal Form;2NF)是指關聯表符合1NF,而且所有非主鍵(Primary Key)的屬性都完全相依(Fully Dependency)於主鍵,也就是刪除所有部份相依的屬性。 亦即,上述定義是指關聯表中,不是主鍵的屬性需要完全相依於主鍵;反過來說,就是刪除關聯表所有部分相依(Partial Dependency)的屬性。

7-3-2 第二階正規化型式 2NF範例 Students關聯表經1NF後,分割成Students和Classes關聯表,Classes關聯表如下:

7-3-2 第二階正規化型式 功能相依 Classes關聯表的主鍵是(sid, c_no, eid),關聯表已知的功能相依,如下所示: FD1:{ sid, c_no, eid }→room FD2:c_no→title FD3:eid→{ instructor, office }

7-3-2 第二階正規化型式 – (正規化結果)

7-3-3 第三階正規化型式 定義7.4:關聯表R符合第三階正規化型式(Third Normal Form;3NF)是指關聯表符合2NF,而且所有非主鍵的屬性都只能功能相依於主鍵;沒有功能相依於其他非主鍵的屬性,即刪除遞移相依的屬性。 上述定義是指關聯表中不屬於主鍵的屬性都只能功能相依於主鍵,而不能同時功能相依於其他非主鍵的屬性,亦即刪除關聯表所有遞移相依的屬性。

7-3-3 第三階正規化型式 3NF範例 執行Instructors關聯表的第三階正規化:

7-3-3 第三階正規化型式 3NF(正規化結果) eid→office 是遞移相依