570 likes | 927 Views
第九章 軟體需求分析 ( 三 ) 資料分析. 學 習 目 標. 資料分析與資料模型 (Data Model) 實體關係模型 (Entity - Relationship Model) 的基本結構 關係 (Relationships) 的分類 特殊的實體型態 ERD 的修正 建立 ERD 的步驟 實例:繪製行銷資訊系統的 ERD. 資料分析與資料模型 (Data Model). 資料分析
E N D
學 習 目 標 • 資料分析與資料模型(Data Model) • 實體關係模型(Entity-Relationship Model)的基本結構 • 關係(Relationships)的分類 • 特殊的實體型態 • ERD的修正 • 建立ERD的步驟 • 實例:繪製行銷資訊系統的ERD
資料分析與資料模型(Data Model) • 資料分析 良好的資料結構設計將會使得資訊系統的程式設計、報表設計、介面設計、資料的統計分析甚至於後續的維護工作變得較為簡單。資料分析最主要的目的就是要設計出良好的資訊系統資料結構。
資料分析與資料模型(Data Model)(續) • 資料模型 資料模型主要的用途就是在描述資訊系統的資料結構。所謂的資料結構包含資料實體、資料實體之間的關係以及資料實體的管理與使用規定。
資料分析與資料模型(Data Model)(續) • 資料模型通常被區分為三個層次: ◆概念資料模型 ◆邏輯資料模型 ◆實體資料模型
資料分析與資料模型(Data Model)(續) 系統需求 與資料庫無關 (Database Independent) 與資料庫有關 (Database Dependent) 概念資料模型 邏輯資料模型 實體資料模型 資料庫
資料分析與資料模型(Data Model)(續) ◆概念資料模型(Conceptual Data Model) 概念資料模型是將系統的資訊需求以圖形的方式來表達,由於它是屬於概念層次上的表達,因此與資料庫系統的型態無關。
資料分析與資料模型(Data Model)(續) ◆邏輯資料模型(Logical Data Model) 邏輯資料模型是以某一種型態的資料庫模型為基礎來描述資料,例如目前最常用的為關聯式資料庫模型。
資料分析與資料模型(Data Model)(續) ◆實體資料模型(Physical Data Model) 實體資料模型指的則是應用某種資料庫產品(如MS SQL、Oracle等)實際將資料庫發展出來。
實體關係模型的基本結構 • 實體關係模型(E-R Model)是概念資料模型中最常被使用的工具。實體關係模型(E-R Model)於1976年由陳品山教授所提出,這種資料模型簡單的說就是以實體以及關係 (也就是實體間的關聯)來看整個系統。
實體關係模型的基本結構(續) • 基本符號
實體關係模型的基本結構(續) ◆實體(Entities) 實體是指系統中必須被儲存的資料。 ●實體可以是具體的人(客戶)、地(古蹟) 、事(客訴)、物(產品)或是抽象的概念 (目標)。 ●實體以矩形來表示,矩形中必須標上實體的名稱 。
實體關係模型的基本結構(續) ●實體中的單一事件(Occurrence)則稱為 事例(Instance)或實體事例(Entity Instance)。一個實體可以包含許多的事例。 ●某一實體在實體關係圖上只能出現一次。 ●初學者常犯的錯誤是將實體關係圖的實體誤以為與資料流程圖(DFD)中的外部實體有所關聯。事實上,實體與資料流程圖中的資料儲存的關係反而比較密切。
實體關係模型的基本結構(續) ◆屬性(Attributes) 屬性代表實體的一個特性,通常一個實體擁有許多個屬性。 科 系 姓 名 班 級 學 號 興 趣 學 生
實體關係模型的基本結構(續) ●屬性以橢圓形來表示,橢圓形的中間必須標上屬性的名稱,屬性通常以名詞來命名。 ●識別子(Identifier)是指實體中可以拿來區別不同的事例的屬性。識別子可以是一個屬性或是若干個屬性的組合。
實體關係模型的基本結構(續) ●識別子必須符合下列特性: 1.對實體中的每個事例而言,識別子的值必須 是唯一的,就如學生的學號在整個學生資料 庫中必定是唯一的。 2.識別子不允許有空白值(null),假如識別子 是由多個屬性所組成,則每一個屬性也不能 允許有空白值(null)。 3.識別子的值不能被改變。
實體關係模型的基本結構(續) ●若一個屬性可以容納許多的值,則稱為多值屬性(Multivalued Attribute)。 ●多個相關的多值屬性統稱為重複群(Repeating Group)。 學校、肄畢業狀況、肄畢業日期
實體關係模型的基本結構(續) ◆關係(Relationships) 關係是指存在於一個或多個實體中的事例之間的關連(association)。 學 生 課 程 選 修 分 數
實體關係模型的基本結構(續) ●ERD一般採用主動的動名詞命名而不採用被動的動名詞,例如用”選修”而不用”被選修”。 ●ERD中,關係也可以帶有屬性(Entity with Attribute),這是為了描述實體間 關係的特性。
關係(Relationships)的分類 • 關係的等級(Degree of Relationship) 關係的等級代表著包含在某個關係中的實體數量。最常見的關係等級有: ◆一元關係(Unary Relationship) ◆二元關係(Binary Relationship) ◆三元關係(Ternary Relationship)
關係(Relationships)的分類(續) ◆一元關係(Unary Relationship) 一元關係是指存在於單一個實體中的事例之間的關係,又稱為遞迴關係(Recursive Relationship)。 n 1 1 1 員 工 管理 國 民 結婚
關係(Relationships)的分類(續) ◆二元關係(Binary Relationship) 二元關係是指存在於二個實體中的事例之間的關係。二元關係是最常見的實體間的關係,又分為一對一(One-to-One)、一對多(One-to-Many)、多對多(Many-to-Many)等三種狀況。
關係(Relationships)的分類(續) ●1:1(One-to-One) 11 ERD的語意:每一個導師可以輔導一個班級; 而且每一個班級都只被一個導師所輔導。 導 師 輔導 班 級 學 期 輔導績效
關係(Relationships)的分類(續) ●1:N(One-to-Many) 1 n ERD的語意:每一位客戶可以提出許多張訂單; 而且每一張訂單都只能由一位客戶所提出。 客 戶 提出 訂 單
關係(Relationships)的分類(續) ● M:N(Many-to-Many) m n ERD的語意:每一位客戶都可以訂購許多項產品; 而且每一項產品都可以被許多位客戶所訂購。 客 戶 訂購 產 品 日 期 數 量
關係(Relationships)的分類(續) ◆三元關係(Ternary Relationship) 三元關係是指同時存在於三個實體中的事例之間共同的關係。三元關係一定要三個實體同時參與才會存在,一個三元關係也絕對不等於三個二元關係。三元關係通常會被分解成若干個二元關係。
關係(Relationships)的分類(續) p m n ERD語意:每一位供應商都可以供應許多項零件給許多個倉庫; 每一項零件都可以被許多位供應商供應給許多個倉庫; 而且每一個倉庫都會有許多位供應商來供應許多項零件。 零 件 供應商 供應 倉 庫 日 期 數 量
關係(Relationships)的分類(續) • 關係的基數(Cardinality of Relationship) 基數(Cardinality)是指一個實體中與另一個實體的各個事例有關聯的事例個數。 • 在許多種關係基數表示法中,鴨足標記法是最常用的一種。
關係(Relationships)的分類(續) • 鴨足標記法的符號:
關係(Relationships)的分類 • 實例 每一個員工可以管理零或一個以上的員工; 每一個員工可以被一個而且只有一個員工管理。 員 工 管理
關係(Relationships)的分類 每一個國民可以娶零或一個國民; 每一個國民可以嫁零或一個國民。 國 民 結婚
關係(Relationships)的分類 每一個導師可以輔導一個而且只有一個班級; 每一個班級可以被一個而且只有一個導師輔導。 導 師 輔導 班 級 學 期 輔導績效
關係(Relationships)的分類 每一位客戶可以提出一張或一張以上的訂單; 每一張訂單只能被一位而且只有一位客戶提出。 客 戶 提出 訂 單
關係(Relationships)的分類 每一位客戶可以訂購一項或一項以上的產品; 每一項產品能被零或許多位客戶訂購。 客 戶 訂購 產 品 日 期 數 量
關係(Relationships)的分類 零 件 每一位供應商都可以供應許多項零件給許多個倉庫,供應商也可以不供應零件; 每一項零件都可以被許多位供應商供應給許多個倉庫,每一項零件至少要由一位供應商供應給一個倉庫; 每一個倉庫都可以由許多位供應商供應許多項的零件,每一個倉庫至少要由一位供應商供應一項零件。 供應商 供應 倉 庫 日 期 數 量
特殊的實體型態 • 關聯型實體(Associative Entities) 關聯型實體在本質上是一種實體,然而這種實體中的屬性卻記錄著單一個實體或多個實體之間的關聯的資訊,因此它也兼具關係的功能。我們可以說關聯型實體同時扮演著實體與關係這二種角色。
特殊的實體型態(續) ◆關聯型實體所紀錄的資訊(屬性)並不存在於建立關聯的單一個實體或多個實體之內。 ◆關聯型實體以一個矩形中間包含一個菱形來表示,菱形中間標上此關聯型實體的名稱,名稱多半以名詞來命名。 ◆假如遇到實體間有一對一或多對多的關係,而且該關係帶有屬性的情形時,就可以考慮用關聯型實體來取代這種關係。
特殊的實體型態(續) ◆關聯型實體有幾個具體的原則: ●在關聯型實體一端的基數必須為”多”。 ●對於使用者而言,關聯型實體可以具有獨立的意義。 ●關聯型實體最好有唯一的識別子,而且還有一個或多個屬性。
特殊的實體型態(續) • 實例 輔導紀錄 導 師 班 級 輔導紀錄 編號 學 期 輔導績效
特殊的實體型態(續) 訂購紀錄 客 戶 產 品 數 量 日 期
特殊的實體型態(續) 零 件 供應紀錄 供應商 倉庫 運送方式 日 期 數 量
特殊的實體型態(續) • 超型別/子型別(Supertype/Subtype) 有時,同屬一個實體內的事例未必包含完全相同的屬性。例如某公司的員工有本國籍員工與外籍勞工,因為外籍勞工的基本資料中,有一些特殊的資料項目是本國及員工所沒有的,所以該公司的員工實體就會產生一部份屬性一樣、另一部份屬性不一樣的情形。超型別/子型別(Supertype/Subtype)就是專門用來表達上述這種情形的實體型別 。
特殊的實體型態(續) 超型別 子型別2 子型別1
特殊的實體型態(續) ◆超型別(Supertype) 超型別紀錄實體中所有事例必須共同擁有的屬性。超型別和一或多個子型別有關聯。 ◆子型別(Subtype) 子型別是實體中屬性的子集合,此子集合擁有與其他子集合不一樣的屬性。
特殊的實體型態(續) 姓 名 員工編號 到職日 員 工 本國籍員工 外籍勞工 最高學歷 地 址 國 籍 傳染病紀錄 電 話
ERD的修正 • 考量是否合併實體 假如二個實體有相同的識別子而且存在1:1的關係,則可以將二個實體合併。 • 考量是否增加關聯型實體 假如想要紀錄實體之間相互關聯的資訊,而這些資訊並不存在於原實體時,則可以將實體間的關係修正為關聯型實體。
ERD的修正(續) • 考量是否增加超型別/子型別 在一個實體中,假如能按照某個屬性將所有的事例區分成若干群,而各群擁有一部分相同的屬性也擁有一部分不同的屬性,則相同的屬性可以獨立成為超型別;而不同的屬性則可獨立成為子型別。
ERD的修正(續) • 修正M:N的關係 由於M:N的關係無法以關聯式模型(Relational Model)來表示,所以必須被修正。修正的方式是以關聯型實體來取代M:N的關係。
ERD的修正(續) M:n的關係 修正後 員 工 參與 專 案 參與紀錄 專 案 員 工 考 績 職 務
ERD的修正(續) • 將複雜的關係轉換成二元關係 複雜的關係是指三元或多元(n-ary)的關係。複雜的關係無法以關聯式模型來表示,所以必須被修正。修正的方式是以關聯型實體來取代原有的關係,原有的每個實體則與新實體有二元關係。