国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
從PowerDesigner概念設(shè)計(jì)模型(CDM)中的3種實(shí)體關(guān)系說(shuō)起 - 北溟有瑜,其名為琨 - 博客園

從PowerDesigner概念設(shè)計(jì)模型(CDM)中的3種實(shí)體關(guān)系說(shuō)起

注:本blog上所有隨筆均屬EagleFish在cnblogs上的原創(chuàng),歡迎轉(zhuǎn)載,但請(qǐng)注明出處。

 CDM是大多數(shù)開發(fā)者使用PD時(shí)最先創(chuàng)建的模型,也是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)最高層的抽象。CDM是建立在傳統(tǒng)的ER圖模型理論之上的,ER圖中有三大主要元素:實(shí)體型,屬性和聯(lián)系。其中實(shí)體型對(duì)應(yīng)到CDM中的Entity,屬性對(duì)應(yīng)到CDM中每個(gè)Entity的Attribute,在概念上基本上是一一對(duì)應(yīng)的。但在聯(lián)系上,CDM有了比較大的擴(kuò)展,除了保留ER圖原有的RelationShip概念之外,還增加了Association,Inheritance兩種實(shí)體關(guān)系,下面就讓我們分別看看這些關(guān)系的用法和之間的區(qū)別(下圖中被標(biāo)紅的工具欄按鈕就是用來(lái)向?qū)嶓w中添加這些關(guān)系的)。

  另外,在介紹所有這些CDM中的元素之前,筆者先給出一個(gè)很簡(jiǎn)單的CDM圖,是對(duì)我們最最熟悉的學(xué)校場(chǎng)景的一個(gè)建模,下文中提到的所有概念在圖中都有體現(xiàn),大家在看下文的時(shí)候可以對(duì)照著來(lái)看:


一. RelationShip(聯(lián)系)
 先給出PD手冊(cè)里對(duì)聯(lián)系的定義:“A relationship is a link between entities. For example,in a CDM that manages human resources, the relationship Member linksthe entities Employee and Team, because employees can be members ofteams. This relationship expresses that each employee works in a teamand that each team has employees.”可見,也許聯(lián)系的概念真的太簡(jiǎn)單了吧,所以反而不那么好表述,所以PD的文檔里也是用一個(gè)例子來(lái)說(shuō)明出現(xiàn)了什么樣的情況我們就認(rèn)為兩個(gè)實(shí)體間是有聯(lián)系的。
  當(dāng)我們提起實(shí)體間聯(lián)系的時(shí)候,最先想到的恐怕是one to one,one to many 和many tomany這三種聯(lián)系類型,這些聯(lián)系類型也是大家最熟悉的。筆者對(duì)ER圖原本的概念并不精通,但在CDM中,聯(lián)系還有另外三個(gè)可以設(shè)置的屬性:mandatory(強(qiáng)制性聯(lián)系), dependent(依賴性聯(lián)系/標(biāo)定關(guān)聯(lián))和dominant(統(tǒng)制聯(lián)系)。這些屬性對(duì)后面PDM的生成都有比較大的影響,需要我們一一有所了解。它們都是在聯(lián)系的屬性控制面板中設(shè)定的,見下圖:

1.mandatory
 聯(lián)系是否具有強(qiáng)制性,指的是實(shí)體間是不是一定會(huì)出現(xiàn)這種聯(lián)系;或者換句話說(shuō),當(dāng)我們?cè)谡劶耙粋€(gè)聯(lián)系的應(yīng)用場(chǎng)景的時(shí)候,聯(lián)系對(duì)應(yīng)的那兩個(gè)實(shí)體型的實(shí)體實(shí)例的個(gè)數(shù)可不可能為零。也許這樣的解釋還是有點(diǎn)抽象,讓我們舉兩個(gè)聯(lián)系的例子,一個(gè)是對(duì)兩邊的實(shí)體都有強(qiáng)制性的,另一個(gè)則不然。
(1)教師--學(xué)生 聯(lián)系
  這個(gè)聯(lián)系首先是一個(gè)多對(duì)多聯(lián)系,因?yàn)槊總€(gè)老師可以教多個(gè)學(xué)生,每個(gè)學(xué)生也都有多個(gè)老師來(lái)負(fù)責(zé)他們的學(xué)業(yè)。同時(shí),這個(gè)聯(lián)系對(duì)教師和學(xué)生都是強(qiáng)制性的,也就是說(shuō),不存在任何一個(gè)老師,他不負(fù)責(zé)任何一個(gè)學(xué)生的教學(xué);也不存在任何一個(gè)學(xué)生,他沒有任何一個(gè)任課老師。
(2)學(xué)生--俱樂部 聯(lián)系
  這個(gè)聯(lián)系也是一個(gè)多對(duì)多關(guān)系,但它對(duì)學(xué)生這個(gè)實(shí)體型而言就不是強(qiáng)制的(Optional,可選的)。每個(gè)俱樂部都有至少一個(gè)學(xué)生參加,但并不是每個(gè)學(xué)生都要去參加俱樂部的活動(dòng)。完全可以有一些學(xué)生,他們什么俱樂部都沒參加。

上面的例子主要是從概念的角度來(lái)區(qū)分了mandatory和optional的區(qū)別。實(shí)際上如果把這個(gè)模型對(duì)應(yīng)到我們最后生成的表,如果A-B間的聯(lián)系對(duì)A是mandatory的話,那么如果在A里面如果包含B的外鍵,這個(gè)外鍵不能為空值,反之可以為空值。后面我們談到PDM和實(shí)際數(shù)據(jù)庫(kù)的時(shí)候,大家會(huì)看到這一點(diǎn)。
2.dependent
 每一個(gè)Entity型都有自己的Identifier,如果兩個(gè)Entity型之間發(fā)生關(guān)聯(lián)時(shí),其中一個(gè)Entity型的Identifier進(jìn)入另一個(gè)Entity型并與該Entity型中的Identifier共同組成其Identifier時(shí),這種關(guān)聯(lián)稱為標(biāo)定關(guān)聯(lián),也叫依賴性關(guān)聯(lián)(dependentrelationship)。一個(gè)Entity型的Identifier進(jìn)入另一個(gè)Entity型后充當(dāng)其非Identifier時(shí),這種關(guān)聯(lián)稱為非標(biāo)定關(guān)聯(lián),也叫非依賴關(guān)聯(lián)。
  概念的定義說(shuō)起來(lái)還是有些拗口,說(shuō)白了其實(shí)就是主-從表關(guān)系,從表要依賴于主表。比如在我們系統(tǒng)里要記錄教師休假的情況,有一個(gè)實(shí)體型Holiday,其屬性包括休假的開始時(shí)間和天數(shù),每次有教師休假的時(shí)候,都要在這個(gè)表留下記錄。從我們的場(chǎng)景描述中可以看到,實(shí)體型假期必須依附于實(shí)體型教師,即對(duì)于每一個(gè)假期實(shí)例,必須指向某一個(gè)教師實(shí)例。
  對(duì)于依賴型聯(lián)系,必須注意它不可能是一個(gè)多對(duì)多聯(lián)系,在這個(gè)聯(lián)系中,必須有一個(gè)作為主體的實(shí)體型。一個(gè)dependent聯(lián)系的從實(shí)體可以沒有自己的identifier.
3.dominant
 這個(gè)聯(lián)系屬性是最為簡(jiǎn)單的,它僅作用于一對(duì)一聯(lián)系,并指明這種聯(lián)系中的主從表關(guān)系。在A,B兩個(gè)實(shí)體型的聯(lián)系中,如果A-->B被指定為dominant,那么A為這個(gè)一對(duì)一聯(lián)系的主表,B為從表,并且在以后生成的PDM中會(huì)產(chǎn)生一個(gè)引用(如果不指定dominant屬性的話會(huì)產(chǎn)生兩個(gè)引用)。比如老師和班級(jí)之間的聯(lián)系,因?yàn)槊總€(gè)班級(jí)都有一個(gè)老師做班主任,每個(gè)老師也最多只能做一個(gè)班級(jí)的班主任,所以是一個(gè)一對(duì)一關(guān)系。同時(shí),我們可以將老師作為主表,用老師的工號(hào)來(lái)唯一確定一個(gè)班主任聯(lián)系。

二.Association(關(guān)聯(lián))
 先來(lái)看一下PD給association的定義:“An association is a connection betweenentities. In the Merise modeling methodology an association is used toconnect several entities that each represents clearly defined objects,but are linked by an event, which may not be so clearly represented byanother entity.”。
 在上一小段提到的那些RelationShip,在很多情況下(特別是多對(duì)多關(guān)系中),我們會(huì)把聯(lián)系專門提出來(lái),作為一個(gè)實(shí)體型放在兩個(gè)需要被關(guān)聯(lián)的實(shí)體型中間(在PD中,選中任何一個(gè)聯(lián)系,在右鍵的彈出菜單中選擇“Change toEntity”命令即可完成聯(lián)系轉(zhuǎn)實(shí)體的操作)。但有的時(shí)候,把若干個(gè)實(shí)體型之間的聯(lián)系抽象為一個(gè)實(shí)體型可能不太合適,這個(gè)時(shí)候你可以選擇為這些實(shí)體型建立一個(gè)association,那么在生成PDM的時(shí)候,所有這些相關(guān)實(shí)體型的identifier都會(huì)被加入到association對(duì)應(yīng)生成的表模型中。所以,說(shuō)白了,其實(shí)association就是實(shí)體型的一種特例,用來(lái)在建模的時(shí)候更確切的表達(dá)實(shí)體間的關(guān)聯(lián)信息。在PD的文檔中舉了一個(gè)錄音帶、顧客、商店三個(gè)實(shí)體型在租借錄音帶這個(gè)場(chǎng)景上發(fā)生關(guān)聯(lián),然后把租借定義為上述三個(gè)實(shí)體型之間的association的例子,非常確切。在我們的學(xué)校模型里,我定義了家訪做為老師和學(xué)生實(shí)體型中間的一個(gè)association,在接下來(lái)產(chǎn)生的PDM中大家就可能看到這種定義所產(chǎn)生的效果。

三.Inheritance(繼承)
  這種關(guān)系在概念層面是最容易理解的了,本文就不贅述了。

前面已經(jīng)介紹了CDM中關(guān)于實(shí)體間關(guān)系的主要內(nèi)容,接下來(lái)我們就來(lái)看看根據(jù)這個(gè)CDM所生成的PDM是一個(gè)什么樣子:

上圖中所有標(biāo)紅的部分是我們最應(yīng)該關(guān)注的內(nèi)容,因?yàn)樗麄兌际怯捎谖覀儗?duì)實(shí)體型間的關(guān)系的定義而產(chǎn)生的,下面給出一些簡(jiǎn)單的說(shuō)明。
1. “師生關(guān)系”和“學(xué)生俱樂部”這兩個(gè)表是由于我們的多對(duì)多關(guān)系而產(chǎn)生的。
2. “假期”表的“工號(hào)”字段是由于我們將教師-假期關(guān)系指定為dependent而產(chǎn)生的。
3. “班級(jí)”表的“工號(hào)”字段是由于我們將教師-班級(jí)關(guān)系制定為dominant而產(chǎn)生的。
4. “家訪”表中的“工號(hào)”和“學(xué)號(hào)”字段是由于家訪是教師和學(xué)生實(shí)體型的association而產(chǎn)生的。
另外,記得我們?cè)谔岬絛ominant屬性的時(shí)候說(shuō)過,一個(gè)沒指定dominant方向的一對(duì)一聯(lián)系將產(chǎn)生兩個(gè)引用,下面我們就把原本的CDM中的教師-班級(jí)關(guān)系進(jìn)行一個(gè)小小的修改,去掉這個(gè)relationship的dominant定義,那么最終產(chǎn)生的PDM中教師表和班級(jí)表將互相包含對(duì)方的主鍵(由于我們的班級(jí)表沒有自己的主鍵,所以只能在班級(jí)表中看到多出來(lái)的列),截圖如下:

對(duì)照這個(gè)PDM截圖和上一個(gè)PDM截圖之間的區(qū)別,大家可以很容易得看出dominant屬性對(duì)一個(gè)一對(duì)一關(guān)系的作用。

 好了,說(shuō)到這里,本文就暫時(shí)告一段落了。文中提到的,都是經(jīng)常使用PD的同志和筆者一樣每天都會(huì)碰到的一些概念。只有我們把這些概念弄得很清楚,對(duì)PD的使用才能事半功倍。筆者也在網(wǎng)上找過關(guān)于PD的資料,發(fā)現(xiàn)有價(jià)值的資源很少。如果哪位老兄有比較好的資源或者書,還請(qǐng)推薦一二。
應(yīng)一位朋友的要求,將本文中用到的CDM文件放在這里:school.rar
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Power Designer雜記|SOHO族
powerdesigner使用 - 葉節(jié)點(diǎn) -- IT博客-中國(guó)最具人氣的IT博客-賽迪網(wǎng)...
PD使用簡(jiǎn)介 - PowerDesigner建模
PowerDesigner正向工程和逆向工程說(shuō)明
集成化企業(yè)級(jí)建模工具—PowerDesigner12.0
PowerDesigner
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服