天天看點

在PowerDesigner中設計概念模型

在概念模型中主要有以下幾個操作和設定的對象:實體(Entity)、實體屬性 (Attribute)、實體辨別(Identifiers)、關系(Relationship)、繼承(Inheritance)、關聯 (Association)、關聯連接配接(Association Link)。

實體

實 體就是我們抽象出的對象,比如:一個選課系統中,學生、教師、班級、課程等等都是實體。實體屬性就是一個實體中所包含的簡單屬性,比如學生實體,具有學 号、姓名、生日、性别等屬性。另外實體還有個辨別用于唯一的辨別出每個實體執行個體,比如學生實體中就可用将學生的學号作為該實體的辨別。辨別可用是一個實體 屬性也可以是多個屬性的結合。在PD中建立一個新的概念模型,系統将出現一個工具欄如下,用于在設計面闆中設計模型。

在PowerDesigner中設計概念模型

單擊Entity圖示,然後在設計主面闆中單擊一次便可添加一個實體。再單擊滑鼠圖示,即可切換回一般滑鼠的模式。輕按兩下已經添加的實體,彈出實體屬性設定對話框,在General中可以設定實體的Name和Code等屬性,如圖所示:

在PowerDesigner中設計概念模型

切 換到Attributes頁籤可以設定實體的屬性Name、Code、DataType等,右邊還有3個複選框,M表示不能為空,P表示是辨別屬性,D 表示在模型圖中是否顯示,如果在設定屬性時直接選中StudentID的P複選框,系統将會自動生成該Student實體的一個Identifier。

在PowerDesigner中設計概念模型

如 果不希望系統自動生成而是手動設定的話,那麼切換到Identifiers頁籤,添加一行Identifier,然後單擊左上角的“屬性”按鈕,然後彈 出的辨別屬性設定對話框中單擊“添加行”按鈕,選擇該辨別中使用的屬性。例如将學号設定為學生實體的辨別,具體操作如圖所示:

在PowerDesigner中設計概念模型

整個設定好的實體如圖所示:

在PowerDesigner中設計概念模型

關系

關系用于表示一個實體與另外一個實體之間的對應關系,分為一對一(1:1),一對多(1:n),多對一(n:1),多對多(m:n)4種對應關系,一對多和多對一其實就是方向相反,是以實際上就是一對一、一對多和多對多。

最 最常用的就是一對多,比如班級實體和學生實體就是一對多關系,一個班級有多個學生,一個學生隻會屬于一個班級。在設計面闆中添加一個Class實體,然後 單擊工具欄的Relationship按鈕,然後在Class實體上單擊一下,再到Student上單擊一下,就可以在Class和Student之間建 立一對多關系,如圖:

在PowerDesigner中設計概念模型

系統預設會給該關系一個命名Relationship_1,切換到滑鼠指針模式,輕按兩下Relationship_1,即可打開關系的屬性視窗,可以在General頁籤中修改該關系的Name、Code等,如圖:

在PowerDesigner中設計概念模型

切 換到Cardinalities頁籤,上面可以修改是一對多還是多對多之類的關系,下面的Role name沒有多大的意義,就是在模型中顯示文字,多的一方有0,n和1,n兩種,也就是說一個班級可以對應多個學生,那麼一個班級中最少是沒有學生還是要 至少存在一個學生,同樣的一的一方有0,1和1,1兩種,就是說一個學生是可以不屬于任何班級呢還是必須屬于某一個存在的班級,這裡我們都選至少是1,所 以最終的設定界面如圖:

在PowerDesigner中設計概念模型

繼承

在概念模型中的繼承與在OO模型中的繼承是一回事,就是要抽象出一個實體,其他實體繼承該實體後就擁有該實體的屬性。

同樣以選課系統為例,現在有學生實體,有教師實體,其他他們都是人,具有人的屬性,是以我們可以抽象出一個人的實體,人具有性别、生日、名字等屬性,教師具有職稱、工号等屬性這是學生沒有的,是以不能放在人實體中,學生具有學号屬性是教師沒有的。

在PowerDesigner中設計概念模型

這裡隻是概念模型,在DBMS中是沒有繼承這種說法的,是以在接下來的邏輯模型和實體模型中,系統就會将繼承轉換為實際的實體和表。這裡隻是概念模型,是以才有繼承的說法。

關聯(Association)我也不知道這個翻譯成中文用哪個詞比較好,就暫且用“關聯”吧。

Association也是一種實體間的連接配接,在Merise模型方法學理論中,Association是一種用于連接配接分别代表明确定義的對象的不同實體,這種連接配接僅僅通過另一個實體不能很明确地表達,而通過“事件(Event)”連接配接來表示。

也就是說,實體和實體之間存在着關系(多對多),但是這種關系還存在其他的屬性,這些屬性如果如果作為一個明确的實體的實體來表示又不是很合适,是以就使用了Association來表達,這種關系之間一般是一個“事件”虛實體,也就是說是一個動詞對應的實體。

前面說的可能還是太抽象,以實際的例子來說明:現在有了學生實體,有課程實體,一個學生可以選擇多門課程,一門課程有多個學生來上課,是以之間就存在一個“選課”的Association,其中記錄了學生選課的時間、選課的狀态:

在PowerDesigner中設計概念模型

一 個學生會對應多個選課結果選擇多門課程,一個課程對應多個選課學生選課,是以學生實體和課程實體與選課的關系都是一對多,添加關聯連接配接,一門課程可能太枯 燥了,沒有學生來選,是以課程對應選課可能是0,n,一個學生可能學分夠了這學期一門課都不選,是以學生對應選課也可能是0,n的關系,是以我們最終形成 的概念模型如圖所示:

在PowerDesigner中設計概念模型

這就是一個完整的概念模型。接下來就是要根據概念模型生成邏輯模型或者實體模型。

繼續閱讀