單元3:軟體設計 3-1實體關係圖 Ch 08 System models
Entity-Relationship Model,( E/R Model) 實體關聯模型主要可以用來協助系統建構者作資料的分析與規劃,其圖示化的表達(Entity-Relationship Diagram)更容易讓人理解。 做Link 連到
ERD 基本元素 ERD有三種基本元素如下: Relationship Entity Attributes 實體關係圖 矩形:代表實體類型 (Entity Type) 菱形:代表實體類型與實體類型間之關係 (Relationship) 橢圓:代表實體類型或關係之屬性 (Attribute) 實體是資料庫中最基本抽像概念,用以描述實際世界中的物件事情與實體。 屬性﹕屬性就是描述實體的性質 Relationship(關聯) 在實體與關係模型中,表示某一實體與另一實體間有著關係 這邊作超連結 Entry and attribute 連結到 Entry and Attribute Relationship 連結到 Relationship 實體 實體間關係 屬性
Entity and Attribute 員工編號 姓名 性別 員工 薪水 地址 在這邊員工是實體,而和員工相關的屬性,就是說一個員工的性質應該會有 編號、地址、姓名、電話、性別、薪水、 員工所在的部門編號則是員工的屬性,因為員工編號為獨一無二的, 唯一的,每一個員工都有不同的員工編號,所以員工編號是鍵值屬性。 唯一性,就是說 你所選定的主鍵是可以透過這個主鍵區分出在這一個資料庫內這項資料
實體完整性(entity integrity) 必要條件:所有的記錄都是唯一的,而且primary key(主鍵)不可含有null值。 目的:保證每個記錄都可以辨認,並確保此項紀錄的唯一性。 主鍵屬性﹕ 若某一個實體集的屬性可以用來區分不同的實體,也就是屬性的值是唯一的(每一個屬性值都不一樣),則這種屬性叫鍵值屬性(在關聯式資料庫稱為主索引欄位)。底部有加一條直線。
ERD Weak Entity 步驟二:對於ER Model中的弱實體建立資料表,其主索引欄位是由弱實體的主索引及其所依靠實體的主索引所組成。 員工編號 姓名 地址 電話 員工 1 薪水 撫養 現在介紹弱實體表示法 若一實體沒有自己的鍵值屬性,我們就稱它為弱實體。 用雙框的 矩形表示, 相對於弱實體,每個實體都有鍵值屬性。每一個弱實體皆有一個相對應的擁有者。 一個弱實體的存在與否,完全取決於某個一般實體, 一旦其所依存的一般實體不存在時,該弱實體也將消失。 親屬弱實體是依靠於員工實體, 而員工以輔養這個識別關係來識別這個弱實體親屬。 親屬弱實體並沒有鍵值屬性,它只有弱鍵值屬性, 它需要加上輔養它的員工實體鍵值屬性(員工編號)來辨別它, 而親屬的弱鍵值屬性姓名底下是虛線代表弱鍵值屬性 而在主要的員工entity 要辨識 弱實體時 通常 relationship的符號也會變成雙框 一個員工可以撫養 , 多個親屬 而親屬姓名並不足以資代表,所以透過員工編號來加以辨識 而所有親屬都有被撫養的關係 所以是全部參與 而不一定每一個員工都會撫養親屬,所以是部份參與 N 親屬 性別 姓名 性別
Implement ER Model (cont.) 員工 部門 計畫 親屬 接著我們透過前面的分析 完成整個公司的實體關係模型(ER MODEL) 第一先 將所有分析出來的實體標示清楚
Implement ER Model (cont..) 員工 親屬 部門 計畫 撫養 控制 工作 管理 參與 1 n m 在將所有實體間關係加入
Implement ER Model (cont...) 部門名稱 部門編號 員工編號 姓名 員工 親屬 部門 計畫 撫養 控制 工作 管理 參與 1 n m 性別 位置 薪水 員工數目 地址 最後在將所有屬性加入 就完成了一間公司 基本的實體關係模型ER Model 姓名 計畫編號 計畫名稱 地址 性別
Relationship 1 1 n 1 n m 在關係中的限制條件,有三種數量比可以定義 一對一的關係、一對多的關係、及多對多的關係 代表實體類型與實體類型間之關係程度。常見的基數率是「1:1」、「1:N」及「M:N」三種 在關係中的限制條件,有三種數量比可以定義 一對一的關係、一對多的關係、及多對多的關係 n m
1 對 1 關係 員工 管理 部門 A B C D E . D1 D2 D3 D4 D5 D6 D7 D8 D9 . R1 R2 R3 R4 現在有兩個entity 員工 部門 一個relationship 管理 而其中為一對一關係 他的ERD圖可以畫成如下
1 對 1 (cont.) 管理 1 1 員工(管理者) 部門 ‘員工’資料與’部門’有著一對一的’管理’關係, 而這邊多提到一個東西,就是看到部門這邊有雙線 代表實體’部門’全部參與’管理’這項關係 相對於 員工這邊 不一定會每一個人都有管理一個部門,但是有管理部門的人 也最多只管理一個部門 所以這個圖來說就是,一個員工可以在一個部門當主管,而每一個部門都會有一個相對應的員工來管理。
1 對 多 關係 員工 工作 部門 A B C D E . D1 D2 D3 D4 D5 D6 D7 D8 D9 . R1 R2 R3 R4 現在有兩個entity 員工 部門 一個relationship 工作 而其中為一對多關係 他的ERD圖可以畫成如下
1 對 多 (cont.) 工作 n 1 員工 部門 這是多對一的關係,多個員工可以在同一個部門工作,所以員工和部門的工作關係是多對一的。 部門對員工的工作關係是一對多的,也就是說一個部門可以有多個員工在此工作。 所有的員工都會在部門工作,也就是員工全部參與了工作,而所有的部門都會有員工工作, 也就是部門全部參與了被工作。
多對多 關係 員工 參與 計畫 A B C . D1 D2 D3 D4 D5 D6 D7 D8 D9 . R1 R2 R3 R4 R5 R6 現在有兩個entity 員工 計畫 一個relationship 參與 而其中為多對多關係 他的ERD圖可以畫成如下
多對多 (cont.) 參與 n m 員工 計畫 員工與計畫的關係是多對多的參與關係。在上圖中A員工參與了D1和D3計畫,而D1計畫也被A員工與B員工參與,這就是多對多的關係。 這邊兩個實體和關係之間都有雙線 代表所有的員工皆參與了計劃,所以員工是全部參與關係參與﹔ 對於計劃則是全部被參與,所以計劃也是全部參與關係參與。
Today’s Work 教學網站: ERD