17.資料建模語言Information Engineering
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 Order與Party是多對一 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
Cardinality 關聯基數:用來表示關聯實體的數量上限,為1、n等
圖中右邊部分表示的意義如下:1個A必須關聯到1個或多個B,一個B可以關聯0個或1個A
關聯的約束如圖所示,Product和Service通過一個圓連線到Order Line。如果是實心圓則表示Product和Service是exclusive or;如果是空心圓則表示Product和Service是inclusive or(相容的,conjunctive),表示可以是其中之一或者多個
在上面IE模型圖中,Order Line右側是Finkelstein的一個特殊符號,表示一個Purchase Order初始時有0或n個Order Line,但最終必須有1或n個Order Line
Martin以動詞命名關聯關係,只命名一個方向(遵循從左到右、從上往下的方式),而Finkelstein不對關聯關係命名
Sub-type:圖中Party子類的表示方法由Martin採用,Finkelstein則對每個子類使用單獨的實體,使用ISA關聯關係(關聯關係名稱為ISA,也有采用類似UML繼承的三角形符合,在關聯線上使用一個三角形的)表示其為子類