1 引言
ER模型圖中有三大主要元素:實體型,屬性和聯(lián)系。其中實體型對應到CDM中的Entity,屬性對應到CDM中每個Entity的Attribute,在概念上基本上是一一對應的。但在聯(lián)系的處理上,CDM除了保留ER圖原有的RelationShip概念之外,還增加了Associ ati on,Inheritance兩種實體關系。圖1給出了工具欄中三個聯(lián)系工具圖標的位置。
圖1 PowerDesign中CDM模型元素工具欄
本文將從簡單的CDM模型圖入手,對這些CDM元素進行闡述,試圖包含所有數(shù)據(jù)庫建模必須環(huán)節(jié)。
2 CDM模型
以簡單的學校場景的為例,給出圖2所示的CDM模型,該圖中所有元素在后面建模均有覆蓋,以體現(xiàn)最小集與完備性。
圖2 學校場景的CDM模型
2.1 RelationShip(聯(lián)系)
CDM模型中的聯(lián)系給出了簡單定義,但如此簡單的定義反而讓人難以區(qū)分現(xiàn)實世界實際存在的一些復雜情形。
當提起實體間聯(lián)系的時候,首先想到的是one to one,one to many和many to many這三種聯(lián)系類型,在Hibernate和IB atis這兩種居統(tǒng)治地位的ORM框架中也沿用了這三種類型。在CDM中,聯(lián)系還有另外三個可以設置的屬性:Mandatory(強制性聯(lián)系),Dependent(依賴性聯(lián)系/標定關聯(lián))和Domi nant(統(tǒng)制聯(lián)系)。這些屬性對后面PDM的生成都有比較大的影響,需要精確理解。它們都是在聯(lián)系的屬性控制面板中設定的,圖3所示。
圖3 聯(lián)系屬性控制面板
2.1.1 Mandatory強制性聯(lián)系
聯(lián)系是否具有強制性,指的是實體間是不是一定會出現(xiàn)這種聯(lián)系;或者換句話說,當我們在談及一個聯(lián)系的應用場景的時候,聯(lián)系對應的那兩個實體型的實體實例的個數(shù)可不可能為零。也許這樣的解釋還是有點抽象,讓我們舉兩個聯(lián)系的例子,一個是對兩邊的實體都有強制性的,另一個則不然。
(1)教師——學生聯(lián)系
這個聯(lián)系首先是一個多對多聯(lián)系,因為每個老師可以教多個學生,每個學生也都有多個老師來負責他們的學業(yè)。同時,這個聯(lián)系對教師和學生都是強制性的,也就是說,不存在任何一個老師,他不負責任何一個學生的教學;也不存在任何一個學生,他沒有任何一個任課老師。
(2)學生——俱樂部聯(lián)系
這也是一個多對多關系,但它對學生這個實體型而言就不是強制的(Optional,可選的)。每個俱樂部都有至少一個學生參加,但并不是每個學生都要去參加俱樂部的活動。完全可以有一些學生,他們什么俱樂部都沒參加。
上面的例子從概念的角度來區(qū)分了Mandatory和Optional的區(qū)別。如果把這個模型對應到我們最后生成的表,如果A-B間的聯(lián)系對A是Mandatory的話,那么如果在A里面如果包含B的外鍵,這個外鍵不能為空值,反之可以為空值。
2.1.2 Dependent
每一個E ntity型都有獨立的Identifier,若兩個Entity型之間發(fā)生關聯(lián),其中一個Entity型的Identifier進入另一個Entity型并與該Entity型中的ld en tifi er共同組成其lden tifi er時,這種關聯(lián)稱為標定關聯(lián),也叫依賴性關聯(lián)(Dependent Relationship)。一個Entity型的Identifier進入另一個Entity型后充當其非Identifier時,這種關聯(lián)稱為非標定關聯(lián),也叫非依賴關聯(lián)。
上述敘述表達的就是主,從表關系,從表要依賴于主表。比如在我們系統(tǒng)里要記錄教師休假的情況,有一個實體型H oliday,其屬性包括休假的開始時間和天數(shù),每次有教師休假的時候,都要在這個表留下記錄。從我們的場景描述中可以看到,實體型假期必須依附于實體型教師,即對于每一個假期實例,必須指向某一個教師實例。
對于依賴型聯(lián)系,注意它不能是一個多對多聯(lián)系;如果是多對多關系,需要簡單的將其轉(zhuǎn)換為兩個主,從表的多對一關系。在這個聯(lián)系中,必須有一個作為主體的實體型。一個Dependent聯(lián)系的從實體可以沒有自己的Identifier。
2.1.3 Dominant依賴性聯(lián)系
這個聯(lián)系屬性是最簡單的,它僅作用于一對一聯(lián)系,并指明這種聯(lián)系中的主從表關系,習慣上稱之為標定關聯(lián)。在A,B兩個實體型的聯(lián)系中,如果A→B被指定為Dominant,那么A為這個一對一聯(lián)系的主表,B為從表,并且在以后生成的PDM中會產(chǎn)生一個引用(如果不指定Dominant屬性的話會產(chǎn)生兩個引用)。比如老師和班級之間的聯(lián)系,因為每個班級都有一個老師做班主任,每個老師也最多只能做一個班級的班主任,所以是一個一對一關系。同時,我們可以將老師作為主表,用老師的工號來唯一確定一個班主任聯(lián)系。
2.2 Association(關聯(lián))
A ssoci ation給出的定義出現(xiàn)了許多RelationShip,也就是2.1中給出的聯(lián)系。在很多情況下(特別是多對多關系中),我們會把聯(lián)系專門提出來,作為一個實體型放在兩個需要被關聯(lián)的實體型中間(在PD中,選中任何一個聯(lián)系,在右鍵的彈出菜單中選擇“Change to Entity”命令即可完成聯(lián)系轉(zhuǎn)實體的操作)。類似的做法,在UML的通用建模工具Rational Rose中定義了Association Class來建立ORM映射日。但有時,把若干個實體型之間的聯(lián)系抽象為一個實體型可能不太合適,這時可選擇為這些實體型建立一個Association,那么在生成PDM的時候,所有這些相關實體型的Identifier都會被加入到Associ ati on對應生成的表模型中。
更貼切的理解,其實Association是實體型的一種特例,用來在建模的時候更確切的表達實體間的關聯(lián)信息。在本文的學校模型里,定義了家訪做為老師和學生實體型中間的一個A ssoci ati on,在接下來產(chǎn)生的PDM中能看到這種定義所產(chǎn)生的效果。
2.3 Inheritance(繼承)
非常簡但的IS-A關系模型。
3 PDM模型
前面給出了CDM中關于實體間關系的主要內(nèi)容,接下來將探討CDM→PDM。
圖4為對應圖3的PDM模型,圖4中標紅的部分都是由于對實體型間的關系的定義而產(chǎn)生的,下面給出簡要說明。
1.“師生關系”和“學生俱樂部”這兩個表是由于我們的多對多關系而產(chǎn)生的。
圖4 對應的PDM模型
2.“假期”表的“工號”字段是由于我們將教師,假期關系指定為Dependent而產(chǎn)生的。
3.“班級”表的“工號”字段是由于我們將教師.班級關系制定為Dominant而產(chǎn)生的。
4.“家訪”表中的“工號”和“學號”字段是由于家訪是教師和學生實體型的A ssoci ati on而產(chǎn)生的。
此外,在2.1.3節(jié)中提到,一個沒指定Dominant方向的一對一聯(lián)系將產(chǎn)生兩個引用,因此需要把原本的CDM中的教師,班級關系進行一個修改,去掉這個Relation Ship的Dominant定義,那么最終產(chǎn)生的PDM中教師表和班級表將互相包含對方的主鍵。截圖如下:
圖5 修改后的PDM模型局部
對照圖5和圖4兩個PDM模型的區(qū)別,容易得看出Dominant屬性對一個一對一關系的作用。
4 小結(jié)
PD建模遵循著第一步嚴格精確設計,后繼自動化演化生成的原則。因此CDM模型的完備性與精確性至關重要。CDM模型最復雜難以把握的是其對聯(lián)系的擴展。本文從PD Online在線文檔出發(fā),對CDM和PDM建模作了清晰的路線圖闡述,給出了完整的實例。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標題:Power Designer中CDM與PDM模型解析
本文網(wǎng)址:http://www.oesoe.com/html/solutions/1401936999.html