ER模型
ER模型,全稱為實體聯絡模型、實體關係模型或實體聯絡模式圖(ERM)(英語:Entity-relationship model)由美籍台灣人電腦科學家陳品山發明,是概念數據模型的高層描述所使用的數據模型或模式圖。
ER模型常用於資訊系統設計中;比如它們在概念結構設計階段用來描述資訊需求和/或要儲存在資料庫中的資訊的類型。但是數據建模技術可以用來描述特定論域(就是感興趣的區域)的任何本體(就是對使用的術語和它們的聯絡的概述和分類)。在基於資料庫的資訊系統設計的情況下,在後面的階段(通常叫做邏輯設計),概念模型要對映到邏輯模型如關係模型上;它依次要在物理設計期間對映到物理模型上。注意,有時這兩個階段被一起稱為「物理設計」。
實體聯絡模式圖(ERD)有一些約定。本文的餘下部分描述經典概念,並且主要與概念建模有關。有一些概念更加典型的在邏輯和物理資料庫設計中採用,包括資訊工程、IDEF1X和空間建模。
常用符號
編輯實體(Entity)表示一個離散對象。實體可以被(粗略地)認為是名詞,如電腦、僱員、歌曲、數學定理。聯絡描述了兩個或更多實體相互如何關聯。聯絡可以被(粗略地)認為是動詞,如:在公司和電腦之間的擁有關聯,在僱員和部門之間的管理關聯,在演員和歌曲之間的表演關聯,在數學家和定理之間的證明關聯。實體繪製為矩形,聯絡繪製為菱形。
實體和聯絡都可以有特性,如僱員實體可以有一個社會保障號碼特性(在美國);證明關聯可以有一個日期特性。特性繪製為橢圓形並通過一條線與所屬的實體相連。
每個實體(除非是弱實體)都必須有一個唯一標識特性的最小化集合。這個集合叫做實體的主鍵。
實體聯絡圖不展示單一的實體或聯絡的單一的實例。它們展示實體集合和聯絡集合(分別顯示為矩形和菱形),如特定的歌曲是實體。在資料庫中所有歌曲的搜集是一個實體集合。在安德魯·懷爾斯及費馬最後定理之間的證明聯絡是一個單一聯絡。所有這種數學家-定理聯絡的集合是一個聯絡集合。
線條繪製於實體集合和它們所參與的聯絡集合之間。如果在實體集合中所有實體都必須在聯絡集合中參與一個聯絡,則繪製雙線。這叫做「參與約束」。如果實體集合的每個實體可以在聯絡集合中參與最多一個聯絡,則在二者之間繪製一個箭頭。這叫做鍵約束。要指示在實體集合中每個實體都必須參與恰好一個聯絡,則繪製粗線。
使用關聯實體來解決有多對多聯絡的兩個實體的問題。
還可以在聯絡集合上指明特定的勢約束。
不常用符號
編輯弱實體是不能用它自己的特性唯一標識的實體,所以必須用它自己的特性和與之有關的實體的主鍵二者作為它的主鍵。弱實體集合指示為粗矩形(實體),透過一個粗箭頭把它連接到一個粗菱形(聯絡)上。
有時兩個實體是一個更一般的實體類型的更特殊化的子類型。例如,程式設計師和行銷員都是軟件公司的僱員的類型。要指示這種關聯,繪製其中帶有 "ISA" 的三角形。超類是連接到頂點上而兩個(或更多)子類連接到底邊上。
最後,透過聚集(aggregation),一個聯絡和所有它的參與實體集合可以被當作一個單一的實體集合,目的是讓它可以參與另一個關聯。這可以指示為在所有聚集的實體和聯絡之外繪製一個虛矩形。
分類
編輯實體聯絡的模型可以依據是否只允許二元聯絡而分類為 BERM(二元實體關聯模型)和 GERM(一般實體聯絡模型)。二元聯絡是在兩個實體之間的聯絡。所以,在 GERM 中在在三個或更多實體之間的聯絡也是允許的。
參見
編輯參照
編輯- Peter P. Chen, The Entity-Relationship Model - Toward a Unified View of Data. ACM Transactions on Database Systems (TODS) Volume 1 Number 1: pp 9-36(1976)https://dl.acm.org/citation.cfm?id=320440&dl=ACM&coll=DL[1]需付費取得密碼,才能檢視全文
- 本文是電腦領域被參照最多的論文之一。 在對 1,000 多個電腦科學教授做的一次新近的調查中,它被選舉為在電腦科學中最有影響的論文之一。例如,在 DBLP:http://dblp.uni-trier.de/(頁面存檔備份,存於互聯網檔案館) [2](頁面存檔備份,存於互聯網檔案館) 所列出的參照。
外部連結
編輯- Dia(頁面存檔備份,存於互聯網檔案館) - 繪製 ER 圖的開源軟件
- Gershwin download at CSE2132 from Monash University - Gershwin 是 Monash University 開發的實體聯絡建模工具。
- 陳品山在路易斯安那州立大學的首頁 http://bit.csc.lsu.edu/~chen/chen.html (頁面存檔備份,存於互聯網檔案館)
- IDEF1X
- DB Visual Architect