1. 程式人生 > >資料建模語言Information Engineering

資料建模語言Information Engineering

http://www.cnblogs.com/hadoopdev/p/4994886.html

Information Engineering採用Crow's Foot表示法(也有叫做James Martin表示法的),中文翻譯中對使用了Crow's Foot表示法的模型也有籠統的稱做鴨掌模型的(關聯關係的關聯基數中採用到了一個鴨掌形的三叉線來表示)。他由Clive Finkelstein發明,與James Martin一起推廣,後來兩人各自做了些修正形成兩份版本

前面示例模型的Information Engineering表示如下:

 圖:Information Engineering - IE模型 - Crow's Foot Model - 

鴨掌模型圖:Information Engineering - IE模型

 注意IE模型與ER模型的區別。Purchase OrderParty是多對一 n:1 的關聯關係,在ER模型中n被放置在了Party的左邊,而IE模型中n被放置在了Purchase Order的右邊。兩種表示法的形式(相當於語法)不一樣,但語義是一致的。這一點也只有ER模型是特殊的,其他模型表示法中都與IE 模型一致
Entity & Attribute:實體屬性並不出現在IE模型中,而是單獨使用另外的文件記錄
Relationship
Crow's Foot
的可選項optionality和關聯基數cardinality 

表示法:

 圖:Crow's Foot的可選項optionality和關聯基數cardinality 表示法圖:Crow's Foot的可選項optionality和關聯基數cardinality 表示法

Optionality 
可選項:用來表示該關聯關係是可選的,還是必須的。對於可選的關聯關係,通常表現為用於關聯的外來鍵欄位允許為null值,或者對於使用中間關聯關係表的情況下可以不出現關聯資料,而必須的關聯關係則不允許外來鍵為null或者必須存在關聯資料
Cardinality 
關聯基數:用來表示關聯實體的數量上限,為1n圖中右邊部分表示的意義如下:1A必須關聯到1個或多個B,一個B可以關聯

0個或1A關聯的約束如圖所示,ProductService通過一個圓連線到Order Line。如果是實心圓則表示ProductServiceexclusive or;如果是空心圓則表示ProductServiceinclusive or(相容的,conjunctive),表示可以是其中之一或者多個在上面IE模型圖中,Order Line右側是Finkelstein的一個特殊符號,表示一個Purchase Order初始時有0nOrder Line,但最終必須有1nOrder Line
Martin
以動詞命名關聯關係,只命名一個方向(遵循從左到右、從上往下的方式),而Finkelstein不對關聯關係命名

 Sub-type:圖中Party子類的表示方法由Martin採用,Finkelstein則對每個子類使用單獨的實體,使用ISA關聯關係(關聯關係名稱為ISA,也有采用類似UML繼承的三角形符合,在關聯線上使用一個三角形的)表示其為子類