在概念模型中主要有以下幾個操作和設置的對象:實體(Entity)、實體屬性(Attribute)、實體標識(Identifiers)、關系(Relationship)、繼承(Inheritance)、關聯(Association)、關聯連接(Association Link)。
實體
實體就是我們抽象出的對象,比如:一個選課系統中,學生、教師、班級、課程等等都是實體。實體屬性就是一個實體中所包含的簡單屬性,比如學生實體,具有學號、姓名、生日、性別等屬性。另外實體還有個標識用於唯一的標識出每個實體實例,比如學生實體中就可用將學生的學號作為該實體的標識。標識可用是一個實體屬性也可以是多個屬性的結合。在PD中新建一個新的概念模型,系統將出現一個工具欄如下,用於在設計面板中設計模型。
單擊Entity圖標,然后在設計主面板中單擊一次便可添加一個實體。再單擊鼠標圖標,即可切換回一般鼠標的模式。雙擊已經添加的實體,彈出實體屬性設置對話框,在General中可以設置實體的Name和Code等屬性,如圖所示:
切換到Attributes選項卡可以設置實體的屬性Name、Code、DataType等,右邊還有3個復選框,M表示不能為空,P表示是標識屬性,D表示在模型圖中是否顯示,如果在設置屬性時直接選中StudentID的P復選框,系統將會自動生成該Student實體的一個Identifier。
如果不希望系統自動生成而是手動設置的話,那么切換到Identifiers選項卡,添加一行Identifier,然后單擊左上角的“屬性”按鈕,然后彈出的標識屬性設置對話框中單擊“添加行”按鈕,選擇該標識中使用的屬性。例如將學號設置為學生實體的標識,具體操作如圖所示:
整個設置好的實體如圖所示:
關系
關系用於表示一個實體與另外一個實體之間的對應關系,分為一對一(1:1),一對多(1:n),多對一(n:1),多對多(m:n)4種對應關系,一對多和多對一其實就是方向相反,所以實際上就是一對一、一對多和多對多。
最最常用的就是一對多,比如班級實體和學生實體就是一對多關系,一個班級有多個學生,一個學生只會屬於一個班級。在設計面板中添加一個Class實體,然后單擊工具欄的Relationship按鈕,然后在Class實體上單擊一下,再到Student上單擊一下,就可以在Class和Student之間建立一對多關系,如圖:
系統默認會給該關系一個命名Relationship_1,切換到鼠標指針模式,雙擊Relationship_1,即可打開關系的屬性窗口,可以在General選項卡中修改該關系的Name、Code等,如圖:
切換到Cardinalities選項卡,上面可以修改是一對多還是多對多之類的關系,下面的Role name沒有多大的意義,就是在模型中顯示文字,多的一方有0,n和1,n兩種,也就是說一個班級可以對應多個學生,那么一個班級中最少是沒有學生還是要至少存在一個學生,同樣的一的一方有0,1和1,1兩種,就是說一個學生是可以不屬於任何班級呢還是必須屬於某一個存在的班級,這里我們都選至少是1,所以最終的設置界面如圖:
繼承
在概念模型中的繼承與在OO模型中的繼承是一回事,就是要抽象出一個實體,其他實體繼承該實體后就擁有該實體的屬性。
同樣以選課系統為例,現在有學生實體,有教師實體,其他他們都是人,具有人的屬性,所以我們可以抽象出一個人的實體,人具有性別、生日、名字等屬性,教師具有職稱、工號等屬性這是學生沒有的,所以不能放在人實體中,學生具有學號屬性是教師沒有的。
這里只是概念模型,在DBMS中是沒有繼承這種說法的,所以在接下來的邏輯模型和物理模型中,系統就會將繼承轉換為實際的實體和表。這里只是概念模型,所以才有繼承的說法。
關聯(Association)我也不知道這個翻譯成中文用哪個詞比較好,就暫且用“關聯”吧。
Association也是一種實體間的連接,在Merise模型方法學理論中,Association是一種用於連接分別代表明確定義的對象的不同實體,這種連接僅僅通過另一個實體不能很明確地表達,而通過“事件(Event)”連接來表示。
也就是說,實體和實體之間存在着關系(多對多),但是這種關系還存在其他的屬性,這些屬性如果如果作為一個明確的實體的實體來表示又不是很合適,所以就使用了Association來表達,這種關系之間一般是一個“事件”虛實體,也就是說是一個動詞對應的實體。
前面說的可能還是太抽象,以實際的例子來說明:現在有了學生實體,有課程實體,一個學生可以選擇多門課程,一門課程有多個學生來上課,所以之間就存在一個“選課”的Association,其中記錄了學生選課的時間、選課的狀態:
一個學生會對應多個選課結果選擇多門課程,一個課程對應多個選課學生選課,所以學生實體和課程實體與選課的關系都是一對多,添加關聯連接,一門課程可能太枯燥了,沒有學生來選,所以課程對應選課可能是0,n,一個學生可能學分夠了這學期一門課都不選,所以學生對應選課也可能是0,n的關系,所以我們最終形成的概念模型如圖所示:
這就是一個完整的概念模型。接下來就是要根據概念模型生成邏輯模型或者物理模型。