Ch05 實體關圖與正規化分析 資料庫管理.

Slides:



Advertisements
Similar presentations
正規化範例 第 1 、 2 階正規化. 正規化範例 ( 水果供應商 ) 編號姓名電話地址 郵遞區 號 品名價格 001 林國鐘 高雄市 100 頻果 100 香蕉 60 鳳梨 葉連芳 台北市 400 葡萄 60 頻果 郭明正
Advertisements

變數與函數 大綱 : 對應關係 函數 函數值 顧震宇 台灣數位學習科技股份有限公司. 對應關係 蛋餅飯糰土司漢堡咖啡奶茶 25 元 30 元 25 元 35 元 25 元 20 元 顧震宇 老師 台灣數位學習科技股份有限公司 變數與函數 下表是早餐店價格表的一部分: 蛋餅 飯糰 土司 漢堡 咖啡 奶茶.
第 三 章 ER Model實體關係圖 課程名稱:資料庫系統 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」,
第四章 關聯模式 目的 關聯模式的定義 關聯模式的限制 完整的範例關聯模式(線上購物系統) 關聯模式的資料更新
第二章 資料模型 資料庫系統理論與實務 [邏輯思維系列]
Chap 4 關聯式資料庫模型.
資料表關聯與正規化.
第4章 關聯式資料庫模型 關聯式資料模式的特點、優缺點、關係連結法 4-1 關聯式資料庫模型的基礎 關聯式資料模型的組成元素
Access資料庫管理系統 授課教師:陳恩航 老師 學歷:國立台灣科技大學資管系博士 經歷:國立台北商業技術學院資管系.
第 三 章 ER Model實體關係圖 課程名稱:資料庫系統 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」,
題目:十六對一多工器 姓名:李國豪 學號:B
Ch04 關聯式資料庫 資料庫管理.
Supplement Data Mining 工具介紹 楊立偉教授 台灣大學工管系 2014 Fall 1.
資料庫管理 HOMEWORK #2 ERD練習 楊立偉教授 台灣大學工管系 2013 Fall.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
Chap 7 關聯式資料庫的正規化.
第八章 利用SELECT查詢資料.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
第五章 關聯式資料庫的理論基礎.
資料正規化.
第 2 章 規劃關聯式資料庫.
SQL語法 定義與操作指令.
Chapter 3 正規化與各種合併.
表格正規化簡介 講授大綱: 第一正規化 資料表的切割 第二正規化 第三正規化 Boyce/Codd正規化 第四正規化 第五正規化
使用VHDL設計—4位元位移器 通訊一甲 B 楊穎穆.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第5章 資料庫的正規化.
單元3:軟體設計 3-1實體關係圖 Ch 08 System models.
SQL Stored Procedure SQL 預存程序.
資管所資料庫系統 -期末專案 立欣建材行進貨銷貨退貨系統
App Inventor2呼叫PHP存取MySQL
Wavelet transform 指導教授:鄭仁亮 學生:曹雅婷.
F、結構化分析與設計: 資料塑模(下) 資料塑模工具︰實體關係圖 實體關係圖之建構 實體關係圖轉關聯表 正規化 關聯表資料字典 七個轉換規則
Java 程式設計 講師:FrankLin.
第二章 實體關係模式:基本概念 目的 何謂實體關係模式和實體關係圖(ERD) 實體型態 關係型態 二元關係型態 弱實體型態 遞迴關係型態
第二章 實體關係模式:基本概念 目的 何謂實體關係模式和實體關係圖(ERD) 實體型態 關係型態 二元關係型態 弱實體型態 遞迴關係型態
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
TB-054A  周天穎 編著 儒林圖書公司 發行.
第一章 直角坐標系 1-3 函數圖形.
建国以来,大陆对台政策 金亚丽 周莎 黄运娜.
第6章 資料庫設計與實體關聯模型 6-1 資料庫設計的基礎 6-2 實體關聯模型 6-3 建立實體關聯圖 6-4 實體關聯圖的常見錯誤
5 資料庫設計工具的使用 5-1 資料庫設計的基礎 5-2 啟動塑模工具與新增專案 5-3 新增實體 5-4 建立關聯性
第 2 章 規劃關聯式資料庫.
ER Model.
資料庫管理系統 緒 論.
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
Chapter 3 補充 合併理論.
建立關聯式資料庫.
第 11 章 建立關聯式資料庫 著作權所有 © 旗標出版股份有限公司.
第8章 結構化企業資料塑模個案.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
課程名稱:資料庫系統 授課老師:李春雄 博士
資料庫正規化與E-R Model 簡介 義守大學資管系 張心怡、陶幼慧
MicroSim pspice.
第四章 關聯模式 目的 關聯模式的定義 關聯模式的限制 完整的範例關聯模式(線上購物系統) 關聯模式的資料更新
第二章 關聯式資料庫.
動畫演示 Node規範了一些基本的方法,像是增加節點、刪除節點、讓節點做一些事、取得第n個節點等等
商品交易資料庫 顧客上網買商品 如何紀錄客戶資料? 如何紀錄商品資料? 如何紀錄交易資料? 如何處理交易後的所有『後處理』程序?
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
資料表示方法 資料儲存單位.
資料庫系統_答案 Database System Week3
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
第三章 系統與資料庫檔案設計.
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
Presentation transcript:

Ch05 實體關圖與正規化分析 資料庫管理

本章大綱 本章內容包含課本第10章: 實體關聯模型與實體關聯圖 將實體關聯圖轉換成關聯表綱要 關聯式資料庫的正規化分析

實體關聯模型與實體關聯圖 在進行資料庫設計(Database Design)時,因為資料庫技術並非一般使用者可以快速了解,為了能夠與使用者溝通,資料庫設計通常使用高階的抽象圖形化模型來幫助我們進行資料庫設計,稱為「商業模型」(Business Model)。 目前最常使用的商業模型就是「實體關聯圖」(Entity-Relationship Diagram),這是使用圖形符號來表示的「實體關聯模型」(Entity-Relationship Model)。

實體關聯模型 實體關聯模型(Entity-Relationship Model)是1976年Peter Chen開發的資料塑模化方法,這是目前進行資料庫系統分析和設計最常使用的方法,實體關聯模型使用實體(Entity)與關聯性(Relationship)來描述資料和資料間的關係,如下圖所示:

實體關聯圖-說明 實體關聯圖(Entity-Relationship Diagram,簡稱ERD)是一種圖形化的模型,使用圖形符號表示實體關聯模型,其主要目的是顯示資料庫關聯表間的關聯性。實體關聯圖的基本建立步驟,如下所示: Step 1:從系統需求找出實體。 Stpe 2:找出實體與其它實體間的關聯性(Relationship)。 Step 3:定義實體間的關聯性種類是:一對一、一對多或多對多關聯性。 Step 4:定義實體的屬性與主鍵。

實體關聯圖-符號

實體關聯圖-實體 實體(Entity) 實體是一存在的東西,其圖形符號是長方形節點,內為實體的名稱,例如:【學生】實體是代表扮演學生角色,屬於此角色的東西,就稱為學生實體。例如:陳會安是本書的作者,如果在學校上課,他就是學生,如下圖所示:

實體關聯圖-弱實體 弱實體(Weak Entity) 弱實體需要依賴其它實體才能存在,簡單的說,它是一種沒有主鍵的實體。例如:【學生家長】是一種弱實體,因為只有【學生】實體存在,【學生家長】實體才會存在。

實體關聯圖-關聯性(說明) 關聯性(Relationship) 關聯性的基數比限制條件可以限制關聯實體連接的實體個數,這是在實線連接菱形節點端所標示的1、N和M等個數值,分為三種。

實體關聯圖-一對一關聯性 一對一關聯性(One-to-one Relationship, 1:1):指一個實體只關聯到另一個實體。例如:學校目前只有一個社團,此時一位【學生】實體只能擁有一個【社團活動成員】實體,如下圖所示:

實體關聯圖-一對多關聯性 一對多關聯性(One-to-many Relationship, 1:N):指一個實體關聯到多個實體。例如:學校的每門課程都只有一位教授開課,所以一位【教授】實體可以教多門不同的【課程】實體,而每門課程一定屬於一位教授,如下圖所示:

實體關聯圖-多對多關聯性 多對多關聯性(Many-to-many Relationship, M:N):指多個實體關聯到多個其它實體。例如:【學生】實體可以選修多門【課程】實體,反過來,【課程】實體可以讓多位【學生】實體來選課,如下圖所示:

實體關聯圖-識別關聯性 識別關聯性(Identifying Relationship) 弱實體一定需要關聯到一個實體,以便識別其身份,這個實體也稱為「識別實體」(Identifying Entity),其連結使用的關聯性稱為識別關聯性(Identifying Relationship),以雙框的菱形圖形符號來表示。

實體關聯圖-屬性 屬性(Attribute) 屬性是一組值的集合,這些值是屬性可能的值,稱為值集合(Value Set),即定義域。實體與關聯性的最基本屬性是單元值屬性(Atomic Attribute),只擁有單元值。例如:【學生】實體的【學號】、【姓名】和【電話】屬性。

實體關聯圖-鍵屬性 鍵屬性(Key Attribute) 如果屬性是實體中用來識別實體的屬性,其角色相當於是關聯表的主鍵,鍵屬性是在名稱下加上底線來標示。例如:【學生】實體的主鍵是【學號】屬性。

實體關聯圖-複合屬性 複合屬性(Composite Attribute) 複合屬性是由多個單元值屬性組成,可以使用樹狀的單元值屬性圖形符號來表示。例如:【員工】實體的【地址】複合屬性是由【街】、【城市】和【郵遞區號】等單元值屬性所組成的屬性。

實體關聯圖-多重值屬性 多重值屬性(Multivalued Attribute) 屬性值不是單元值,而是多重值,也就是說,同一個屬性擁有多種值,這是使用雙線的橢圓形節點符號標示。例如:【學生】實體的【地址】屬性是用來記錄學生多個通訊地址的多重值屬性。

實體關聯圖-導出屬性 導出屬性(Derived Attribute) 這是一種由其它屬性計算出的屬性,使用虛線的橢圓形節點符號來標示。例如:【考試】實體的【到考學生數】屬性記錄參加考試的學生數,屬性值是可以從【考試結果】實體計算而得的屬性值,稱為導出屬性。

實體關聯圖-本章範例 高海科大有很多的學生,學生入學時要填寫資料包括:姓名、生日、連絡電話、地址、電子郵件地址,學校會指定給每一個學生一個學號;學生要修習多門課程,一門課會有多名學生來修習,學校會開出許多課程,課程有課程編號、課程名稱、學分數;每一門課由一名教授來上課,每一名教授要教多門課,而每位老師有一個編號、姓名、專長。學校目前只有一個社團,學生也會參與社團活動,並且成為社團裏的一員,社團活動成員會有職稱、暱稱。

實體關聯圖-本章範例

將實體轉換成關聯表-步驟 在實體關聯圖的實體是對應關聯表,即Access的資料表,將實體轉換成關聯表綱要的規則,如下所示: 建立新的關聯表綱要,其名稱是實體名稱。 在關聯表綱要包含單元值屬性和複合屬性。 關聯表綱要不包含多重值屬性、外來鍵和導出屬性。 將鍵屬性(Key Attribute)指定為關聯表綱要的主鍵。

將實體轉換成關聯表-範例

將關聯性轉換成外來鍵-說明 實體關聯圖的關聯性可以轉換成關聯表綱要的外來鍵,在關聯表綱要新增參考到其它實體的外來鍵,可以分為3種:一對一、一對多和多對多關聯性。

將關聯性轉換成外來鍵-一對一關聯性(步驟) 一對一關聯性轉換成關聯表綱要的規則,如下所示: 在參與關聯性的關聯表綱要新增參考到另一個關聯表綱要的外來鍵(FK)。 若關聯性本身如果擁有單元值屬性,也一併加入新增外來鍵的關聯表綱要。

將關聯性轉換成外來鍵-一對一關聯性(範例)

將關聯性轉換成外來鍵-一對多關聯性(步驟) 一對多關聯性轉換成關聯表綱要的規則,如下所示: 在N端的關聯表綱要新增參考到1端關聯表綱要的外來鍵(FK)。 若關聯性本身擁有單元值屬性,也一併加入新增外來鍵的關聯表綱要。

將關聯性轉換成外來鍵-一對多關聯性(範例)

將關聯性轉換成外來鍵-多對多關聯性(步驟) 多對多關聯性轉換成關聯表綱要,需要使用一個結合資料表來建立的,其規則如下所示: 將關聯性本身建立成新的關聯表綱要,即結合資料表,名稱為關聯性名稱,在新關聯表綱要擁有2個外來鍵(FK),分別參考其關聯到的實體。 若關聯性本身如果擁有單元值屬性,也一併加入新的關聯表綱要。 關聯性建立的關聯表綱要主鍵是2個外來鍵的組合鍵,有時,可能需要以關聯性的屬性作為主鍵(如果有的話)。

將關聯性轉換成外來鍵-多對多關聯性(範例)

多重值屬性轉換成關聯表-步驟 實體如果擁有多重值屬性,多重值屬性也需要轉換成關聯表綱要,其規則如下所示: 建立新的關聯表綱要,名稱可以是屬性名稱或實體與屬性結合的名稱。 在新關聯表綱要新增參考到實體主鍵的外來鍵。 新關聯表綱要的主鍵是外來鍵加上多重值屬性,如果多重值屬性是複合屬性,可能需要加上其中一個屬性或是全部屬性。

多重值屬性轉換成關聯表-範例

Step3: 合併有相同的PK的關聯表 Step1: 將實體轉成關聯表 Step2: 將關係轉成關聯表 課程_教課(課程編號,課程名稱, 學分,教授編號) Step1: 將實體轉成關聯表 學生(學號*,姓名,生日,電話,地址,電子郵件地址,修課學分,暱稱,職稱) 課程(課程編號*,課程名稱,學分) 教授(教授編號*,教授名稱,專長) Step2: 將關係轉成關聯表 選課(學號*,課程編號*,成績) 教課(課程編號*,教授編號)

弱實體轉換成關聯表-步驟 弱實體如同實體也是轉換成關聯表綱要,只是弱實體一定擁有一個對應的實體,所以在轉換上稍有不同,其規則如下所示: 建立新的關聯表綱要,其名稱為弱實體名稱。 新關聯表綱要包含單元值屬性。 在新關聯表綱要新增其識別實體的主鍵作為參考的外來鍵。 將弱實體的「部分鍵」(Partial Key),類似主鍵其目的只在分辨不同的弱實體,所以需要加上外來鍵指定成新關聯表綱要的主鍵。

弱實體轉換成關聯表-範例

關聯式資料庫的正規化分析 在大部分資料庫案例的正規化過程中都只會使用前三個階段1NF、2NF和3NF。首先我們來看看需要儲存到資料庫的資料,例如:系上甲班學生選課資料的報表,其內容如下圖所示:

第一階正規化型式-說明 第一階正規化型式(First Normal Form,1NF)只是在處理資料表本身,簡單的說是指資料表沒有多重值欄位,如果資料表擁有多重值欄位,就需要將這些欄位分割成資料表、記錄或欄位。

第一階正規化型式-範例 例如:選課資料報表轉換成的【學生】資料表,主鍵是【學號】欄位,如下圖所示:

第一階正規化型式-方法一(說明) 方法一:分割成資料表 從【學生】資料表的內容來分析,第一階正規化可以將這些多重值欄位連同主鍵分割成新的資料表,也就是分割成學生與選課2個資料表,在選課資料表的每一位學生選擇1到3門課。

第一階正規化型式-方法一(圖例)

第一階正規化型式-方法二(說明) 方法二:分割成記錄 符合1NF資料表的每一個欄位只能儲存單元值,所以第一階正規化可以將多重值欄位改成重複記錄,欄位的每一個多重值新增一筆記錄。

第一階正規化型式-方法二(圖例)

第一階正規化型式-方法三(說明) 方法三:分割成不同欄位 第一階正規化還可以將多重值欄位配合空值NULL分割成為資料表的多個欄位,不過其先決條件是多重值個數是有限的,例如:一位學生規定只能修2門課程。

第一階正規化型式-方法三(圖例)

第二階正規化型式-說明 第二階正規化型式(Second Normal Form, 2NF)的目的是讓每一個資料表只儲存同類資料,也就是單純化資料表儲存的資料,所有非主鍵的欄位都功能相依於主鍵。

第二階正規化型式-功能相依 功能相依(Functional Dependency,簡稱FD)是一種欄位間的關係,簡單的說,知道欄位A的值,就可以知道欄位B的值。 例如:【學生】資料表的主鍵是【學號】欄位,知道學號S0201,就可以決定其姓名是周傑倫和電話為02-11111111,反之知道電話,並不一定知道學生的學號,因為多位學生可能擁有相同的電話號碼。

第二階正規化型式-範例1 當資料表符合1NF後,就可以進行第二階正規化,因為在上一節分割成的【學生】和【選課】資料表中,【學生】資料表的所有欄位都功能相依於主鍵,已經滿足2NF,換句話說,第二階正規化主要是針對【選課】資料表,如下圖所示:

第二階正規化型式-範例2 因為欄位都功能相依於【課程編號】欄位,所以擁有重複記錄,我們可以將子集合獨立成【課程】資料表,然後在【選課】資料表新增【課程編號】欄位的外來鍵,如下圖所示:

第三階正規化型式-說明 當資料表符合2NF後,我們就可以進行第三階正規化,第三階正規化型式(Third Normal Form, 3NF)的目的是移除哪些欄位是借由另一個欄位來功能相依於主鍵,稱為遞移相依(Transitive Dependency)。

第三階正規化型式-範例1 例如:在【課程】資料表的教授資料擁有遞移相依的欄位,如下圖所示:

第三階正規化型式-範例2 【教授姓名】欄位是借由【教授編號】欄位來功能相依於【課程編號】欄位的主鍵,這就是遞移相依,如下圖所示:

第三階正規化型式-範例3 遞移相依表示資料表仍然隱藏著其它資料的子集合,在執行第三階正規化時,就是將遞移相依的欄位獨立成資料表,如下圖所示:

練習一 課本p.10-24, p.10-25, p.10-26 實作題6~10

練習二 設計一銷售資料庫: X公司雇有多位業務代表,每位業務人員有代號及姓名。公司有銷售多項產品,產品有代號、產品名稱、定價。公司的客戶資料包含編號、名稱、地址、電話、傳真、連絡人、分機、電子郵件信箱。客戶向X公司訂貨,每一個訂單可以有多項產品,並由一位業務人員負責處理,訂單有唯一的編號、訂貨日期及送貨日期,而且訂單中的每一項產品包含訂貨數量及折扣