1 / 36

第一章 實體關聯模型

第一章 實體關聯模型. 課前指引 實體關聯模型 (Entity Relationship Model 或 E-R Model) ,是最接近模擬真實世界現象之一種模型。在我們周圍有許多物件 (Objects) 或稱實體 (Entities) 中,物件與物件之間有著某些必然的關係 (Relationship) 。我們以此思維方向,架構出真實世界之形態,作為資料在資料庫中的一種模型。本章內容將提供我們在應用或設計資料庫時,有一幅邏輯思維之架構圖。. 章節大綱. 1-1 簡介. 1-4 索引鍵. 1-2 概念. 1-5 實體關聯圖. 1-3 限制.

lara
Download Presentation

第一章 實體關聯模型

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第一章 實體關聯模型 課前指引 實體關聯模型(Entity Relationship Model 或E-R Model),是最接近模擬真實世界現象之一種模型。在我們周圍有許多物件(Objects) 或稱實體(Entities) 中,物件與物件之間有著某些必然的關係(Relationship)。我們以此思維方向,架構出真實世界之形態,作為資料在資料庫中的一種模型。本章內容將提供我們在應用或設計資料庫時,有一幅邏輯思維之架構圖。

  2. 章節大綱 1-1 簡介 1-4 索引鍵 1-2 概念 1-5 實體關聯圖 1-3 限制 1-6 設計觀點 備註:可依進度點選小節

  3. 1-1 簡介 • 實體關聯模型(Entity Relationship Model 或E-R Model),是最接近模擬真實世界現象之一種模型。在我們周圍有許多物件(Objects) 或稱實體(Entities) 中,物件與物件之間有著某些必然的關係(Relationship)。我們以此思維方向,架構出真實世界之形態,作為資料在資料庫中的一種模型。

  4. 1-2 概念 • 為了完整且清楚地模擬真實世界,我們建立實體關聯資料模型(E-R Data Model),其中有三個組成元件: • 實體集(Entity Sets)、 • 屬性欄位(Attributes)、 • 關聯集(Relationship Sets)。

  5. 1-2 概念 • 實體集(Entity Sets) • 在真實世界(Real World) 中,實體(Entity) 是一個物件(Object);在資料庫(Database)中,實體(Entity) 是一組結構型態的資料(Structure Data)。 • 如圖(a) 為一組銀行客戶基本資料實體,包括姓名(Name)、社安碼(Social Security Number)、街名(Street)、與城市(City);圖(b) 為銀行帳戶實體,包括帳號(Account)、與餘額(Balance)。 (a) (b)

  6. 1-2 概念 • 實體集(Entity Sets) • 實體集(Entity Set) 是同型實體之集合,如圖(Customer Set) 為銀行客戶基本資料實體集;圖(Account Set) 為銀行帳戶實體集。

  7. 1-2 概念 • 屬性欄位(Attributes) • 屬性欄位(Attribute) 是組成實體結構項目之描述(Description),如圖-實體Customer之結構屬性欄位(Attributes) 有姓名(Name)、社安碼(Social Security Number)、街名(Street)、與城市(City)。

  8. 1-2 概念 • 屬性欄位(Attributes) • 模型的屬性欄位(Attributes),可區隔為: • (1)單純欄位(Simple) 或組合欄位(Composition)、 • (2)單值欄位(Single Value) 或多值欄位(Multi Values)、 • (3)原始值欄位(Original Value) 或計算值欄位(Derived Value)。

  9. 1-2 概念 • 屬性欄位(Attributes) • 模型的屬性欄位(Attributes),可區隔為: • (1)單純欄位(Simple) 或組合欄位(Composition):屬性欄位定義為不可分割者。組合型如圖1-2-2-2,屬性欄位由多個次屬性欄位(Sub Attributes) 組合而成。如本例Name = (First-name, Middle-name, Last-name)。

  10. 1-2 概念 • 屬性欄位(Attributes) • 模型的屬性欄位(Attributes),可區隔為: • (2)單值欄位(Single Value) 或多值欄位(Multi Values):圖(a) 實體集Cst之客戶Oliver有一個對應的銀行帳戶實體Acnt。圖(b) Acnt僅有一個值{(123, 1000)} 是謂 “單值屬性欄位(Single Value Attribute)”。圖(c) Acnt有多個值{(123, 1000), (456, 2000), (789, 3000)} 是謂 “多值屬性欄位(Multi Value Attribute)”。

  11. 1-2 概念 • 屬性欄位(Attributes) • 模型的屬性欄位(Attributes),可區隔為: • (2)單值欄位(Single Value) 或多值欄位(Multi Values)

  12. 1-2 概念 • 屬性欄位(Attributes) • 模型的屬性欄位(Attributes),可區隔為: • (3)原始值欄位(Original Value) 或計算值欄位(Derived Value):如圖1-2-2-4,生日(Birth Day) 是謂 “原始值屬性欄位(Original Value Attribute)”;年齡(Age) 是由Birth Day 推算而得,每年有不同的值,是謂 “計算值屬性欄位(Derived Value Attribute)”。

  13. 1-2 概念 • 關聯集(Relationship Sets) • 實體(Entity) 與實體(Entities) 間之連接關係(Associates) 是謂 “關聯(Relationship)”,如圖1-2-3-1,令ec為實體Customer、ea為實體Account,則關聯r = (ec, ea)。

  14. 1-2 概念 • 關聯集(Relationship Sets) • 同類型之關聯(Association) 是謂關聯集(Relationship Set),如圖1-2-3-2,有客戶集Customer Set為Ec、帳戶集Account Set為Ea,則關聯集為R = (Ec, Ea)。

  15. 1-2 概念 • 關聯集(Relationship Sets) • 為了得以更清楚的模擬真實世界,我們以 “實體關聯圖(Entity Relationship Diagram)” 表示(如圖1-2-3-3)。其中實體集Customer與Account因連接而產生關聯集CustAcnt。

  16. 1-3 限制 • 我們可對E-R模型提出一些限制定義(Constraints Definition),使在某些環境下的資料形態得以符合該環境限制的要求。常用的定義限制有: • 對映限制(Mapping Cardinalities)、 • 參與限制(Participation Constraints)。

  17. 1-3 限制 • 對映限制(Mapping Cardinalities) • 實體(Entity) 與實體(Entities) 間對應連線的要求是謂 “對映限制(Mapping Cardinalities)”,亦即是其間關聯集之定義(Definition of Relationship Set),如圖1-3-1。常用的對映限制有: • 一對一(One to One)如圖(a):A中的任一實體可最多連接B中的一個實體;而B中的任一實體最多可連接A中的一個實體。 • 一對多(One to Many)圖(b):A中的任一實體可連接B中的任意數量實體;而B中的任一實體最多可連接A中的一個實體。

  18. 1-3 限制 • 對映限制(Mapping Cardinalities) • 多對多(Many to Many)圖(c):A中的任一實體可連接B中的任意數量實體;且B中的任一實體亦可連接A中的任意數量實體。 • 多對一(Many to One)圖(d):A中的任一實體最多可連接B中的一個實體;而B中的任一實體可連接A中的任意數量實體。

  19. 1-3 限制 • 對映限制(Mapping Cardinalities)

  20. 1-3 限制 • 參與限制(Participation Constraints) • 在實體集(Entity Set)中,各實體間連線的程度是謂 “參與限制(Participation Constraints)”,可分為 • 完全參與(Total Participation):是指每一個實體至少有一條連線與其他實體連接(如圖1-3-1);部份參與(Partial Participation) • 部份參與(Partial Participation):是指有一些實體未能與其他實體建立連接(如圖1-3-2),其中圖(a)之a2、b2;圖(b)之b3;圖(c)之a2;圖(d)之a1。

  21. 1-3 限制 • 參與限制(Participation Constraints)

  22. 1-4 索引鍵 • 在一個實體集(Entity Set) 中有多個實體(Entities) 存在,如何辨識或區隔其中每一個實體,是資料庫重要執行項目之一。我們以索引鍵(Key) 為辨識實體的依據,於實體集,我們認定一個具有 “獨一(Unique)” 特性的屬性欄位(Attributes) 作為索引鍵,用以區隔各個實體。

  23. 1-4 索引鍵 • 實體集索引(Entity Sets and Keys) • 於實體集(Entity Sets),我們設定索引鍵(Keys) 用以辨識各個實體(Entities),依範圍的大小可分為: • 超級索引鍵(Super Keys)、 • 候選索引鍵(Candidate Keys)、 • 主索引鍵(Primary Key)。

  24. 1-4 索引鍵 • 關聯集索引(Relationship Sets and Keys) • 實體(Entity) 與實體(Entities) 間之連接(Associates) 是謂 “關聯(Relationship)”;同類型之關聯(Association) 是謂關聯集(Relationship Set)。 • 實體集Customer與Account之關聯集是CustAcnt。如果關聯集無任何屬性欄位(Attributes) 且為一對一連接(One to One),則其主索引鍵摘取自兩個關聯實體主索引鍵之組合,如本例CustAcnt之主索引鍵為Social Security Number(SSN)、Account Number、或兩者之組合。

  25. 1-5 實體關聯圖 • 實體關聯圖(E-R Diagram) 可對應描述一個資料庫的架構,且可導覽我們的邏輯思考方向,圖之要件包括: • 方塊(Rectangles):表示實體集(Entity Sets)。 • 橢圓(Ellipses):表示屬性欄位集(Attribute Sets)。 • 菱形(Diamonds):表示關聯集(Relationship Sets)。 • 連線(Lines):連接實體集、屬性欄位集、關聯集等,以建立所屬關係。 • 箭頭(Arrow):表示單一數量的一端。

  26. 1-5 實體關聯圖 • 實體關聯圖 • 1、一對一關聯(One to One):如圖Customer Set中的任一實體可經過關聯集CustAcnt Set最多連接Account Set中的一個實體;而Account中的任一實體經過CustAcnt最多可連接Customer中的一個實體。Customer的主索引鍵為SSN,Account的主索引鍵為Account Number,CustAcnt的主索引鍵是SSN 或是Account Number。

  27. 1-5 實體關聯圖 • 實體關聯圖 • 一對多關聯(One to Many):如圖Customer Set中的任一實體可經過關聯集CustAcnt Set連接Account Set中的任意數量實體;而Account中的任一實體經過關聯集CustAcnt Set最多連接Customer Set中的一個實體。Customer的主索引鍵為SSN,Account的主索引鍵為Account Number,CustAcnt的主索引鍵為SSN。

  28. 1-5 實體關聯圖 • 實體關聯圖 • 多對一關聯(One to One):如圖Customer Set中的任一實體可經過關聯集CustAcnt Set最多連接Account Set中的一個實體;而Account Set中的任一實體可經過關聯集CustAcnt Set連接Customer Set中的任意數量實體。Customer的主索引鍵為SSN,Account的主索引鍵為Account Number,CustAcnt的主索引鍵為Account Number。

  29. 1-5 實體關聯圖 • 實體關聯圖 • 多對多關聯(One to One):如圖,Customer Set中的任一實體可經過關聯集CustAcnt Set連接Account Set中的任意數量實體;且Account Set中的任一實體可經過關聯集CustAcnt Set連接Customer Set中的任意數量實體。Customer的主索引鍵為SSN,Account的主索引鍵為Account Number,CustAcnt的主索引鍵為SSN和Account Number之組合。

  30. 1-6 設計觀點(Design Issues) • 實體(Entities)與屬性欄位(Attributes) • 當我們在設計一個實體關聯模型時,往往會陷入長考,一個物件應設計成實體(Entity) 呢?還是應設計成屬性欄位(Attribute)? • 如圖,本例如果將Telephone設計成實體,則一位客戶可能擁有多具電話。

  31. 1-6 設計觀點(Design Issues) • 實體(Entities)與屬性欄位(Attributes) • 如圖,本例如果將Telephone設計成屬性欄位,則一位客戶僅能擁有一具電話。

  32. 1-6 設計觀點(Design Issues) • 實體(Entities)與屬性欄位(Attributes) • 上述兩種方法中何者較佳?事實上沒有當然的答案,要視當時的需求而定。一般來言,(1)設計成屬性欄位,其優點是設計較簡單,付出執行代價較低;缺點是不具靈活性,不適用於變化多或需相容的環境。(2)設計成實體,其優點是具靈活性,適用於變化多或需相容的環境;缺點是設計較複雜,付出執行代價較高。

  33. 1-6 設計觀點(Design Issues) • 關聯集(Relationship Set) 與屬性欄位(Attributes) • 關聯集原本用於實體與實體間之連接,如果在其中加入屬性欄位,將使關聯圖能表達出更深切之含義。 • 如圖,於關聯集CustAcnt加置屬性欄位Date,將可表達某時間之存取餘額,使資料更為生動。

  34. 1-6 設計觀點(Design Issues) • 二元(Binary)與多元(n-ary)關聯集(Relationship Set) • 如果其中一個實體Ei與其他任何實體無關係意義,則該多元關聯集亦將隨之無意義,應將Ei分隔處理。

  35. 1-6 設計觀點(Design Issues) • 二元(Binary)與多元(n-ary)關聯集 • 如果其中一個實體Ei與其他任何實體無關係意義,則該多元關聯集亦將隨之無意義,應將Ei分隔處理。 • 如圖,表達某客戶在某分行某帳戶之存款,實體集Customer、Account、Branch彼此就有密切之關係意義。

  36. 本章結束 Q&A討論時間

More Related