2013年4月26日 星期五

看懂ER Diagram

有人說ER Diagram猶如是一個小世界的縮影。
不同的實體(Entity)有它自己的特徵和動作,透過關聯(Relationship)去表達實體之間的互動。其圖示是一種概念(Concept)表示,表示的方法有好幾種,目前也沒有統一標準。有些參考書會建議讀者盡量去使用統一格式,但是A書跟B書用的圖又經常不一樣;不同工具、不同廠商也不一樣。

以下將要介紹的是在閱讀資料庫原理相關書籍經常會看得到的,甚至在Peter Chen所撰寫的文章內也是採用這種圖型表示法,就讓我們來看看吧。
ER Diagram

  • 實體(Entity)
    ER模型中的基本物件,是真實世界獨立存在一個東西。可以是一個實際存在的實體,例如員工、車子等,如下圖,也可以是概念上存在的實體,例如:工作、課程等。
    實體
  • 弱實體(Weak Entity)
    實體本身沒有鍵值屬性的實體稱為弱實體型態。相對於有鍵值的強實體,弱實體必須依賴某些實體才能存在,則這個依賴被稱為識別(Identifying)。透過弱實體產生的關聯型態,就稱為弱實體的識別關係(Identifying Relationship)。

  • 多值屬性(Multivalued Attribute)
    何謂多值屬性呢!顧名意思是「擁有多個值(Value)的屬性(Attribute)」,在我們的世界中經常可見這樣的多值屬性:例如電子信箱(E-mail),像我就擁有gmail、hotmail、yahoo等多個不同的信箱,如下圖。
多值屬性
  • 複合屬性(Composite Attribute)
    當一個屬性可以分割成更小部分的屬性,且分割的部分有獨立的意義,稱之為複合屬性。例如地址(Address),可以再細分成郵遞區號(ZIP)、城市(City)、街道(Street),如下圖。
複合屬性
  • 衍生屬性(Calculated Attribute)
    有時候某些屬性可以透過相關的屬性產生出來。例如人的生日(Birth_date)和年齡(Age),當我們知道某人的生日就可以計算出他的年齡,表示他的Age是由今日和Birth_date決定出來的,因此Age就稱為衍生屬性,如下圖。
衍生屬性