PD的CDM模型中的三種實(shí)體關(guān)系_第1頁(yè)
PD的CDM模型中的三種實(shí)體關(guān)系_第2頁(yè)
PD的CDM模型中的三種實(shí)體關(guān)系_第3頁(yè)
PD的CDM模型中的三種實(shí)體關(guān)系_第4頁(yè)
PD的CDM模型中的三種實(shí)體關(guān)系_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

天數(shù)Number開始時(shí)間<Undefined^<UndefinedxTextNumber俱樂部成立時(shí)間 Date部長(zhǎng)學(xué)號(hào) NumberNumber教師-人Identifier教師林慵教師林慵學(xué)生-俱樂部學(xué)生-俱樂部教師學(xué)生教齡Number師生關(guān)系級(jí)別 Number二三 天數(shù)Number開始時(shí)間<Undefined^<UndefinedxTextNumber俱樂部成立時(shí)間 Date部長(zhǎng)學(xué)號(hào) NumberNumber教師-人Identifier教師林慵教師林慵學(xué)生-俱樂部學(xué)生-俱樂部教師學(xué)生教齡Number師生關(guān)系級(jí)別 Number二三 thmot已rm ■=ldentifier_1中i〉年級(jí) Number班勤 Characters(256)ldentifier_1:::p班主任所屬年繳Number<M>班綴號(hào)Number日期Date原因TextPD的CDM模型中的三種實(shí)體關(guān)系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)紅的工具欄按鈕就是用來向?qū)嶓w中添加這些關(guān)系的)。x囪口圈因old旨[Ah尹帛\、口O/VGI~Lj~I I另外,在介紹所有這些CDM中的元素之前,筆者先給出一個(gè)很簡(jiǎn)單的CDM圖,是對(duì)我們最最熟悉的學(xué)校場(chǎng)景的一個(gè)建模,下文中提到的所有概念在圖中都有體現(xiàn),大家在看下文的時(shí)候可以對(duì)照著來看:.RelationShip(聯(lián)系)先給出PD手冊(cè)里對(duì)聯(lián)系的定義:“Arelationshipisalinkbetweenentities.Forexample,inaCDMthatmanageshumanresources,therelationshipMemberlinkstheentitiesEmployeeandTeam,becauseemployeescanbemembersofteams.Thisrelationshipexpressesthateachemployeeworksinateamandthateachteamhasemployees.”可見,也許聯(lián)系的概念真的太簡(jiǎn)單了吧,所以反而不那么好表述,所以PD的文檔里也是用一個(gè)例子來說明出現(xiàn)了什么樣的情況我們就認(rèn)為兩個(gè)實(shí)體間是有聯(lián)系的。當(dāng)我們提起實(shí)體間聯(lián)系的時(shí)候,最先想到的恐怕是onetooneonetomany和manytomany這三種聯(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)系;或者換句話說,當(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è)老師來負(fù)責(zé)他們的學(xué)業(yè)。同時(shí),這個(gè)聯(lián)系對(duì)教師和學(xué)生都是強(qiáng)制性的,也就是說,不存在任何一個(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é)生,他們什么俱樂部都沒參加。上面的例子主要是從概念的角度來區(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)。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)。概念的定義說起來還是有些拗口,說白了其實(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.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)來唯一確定一個(gè)班主任聯(lián)系。Association(關(guān)聯(lián))先來看一下PD給association的定義:“Anassociationisaconnectionbetweenentities.IntheMerisemodelingmethodologyanassociationisusedtoconnectseveralentitiesthateachrepresentsclearlydefinedobjects,butarelinkedbyanevent,whichmaynotbesoclearlyrepresentedbyanotherentity.”在上一小段提到的那些RelationShip,在很多情況下(特別是多對(duì)多關(guān)系中)我們會(huì)把聯(lián)系專門提出來,作為一個(gè)實(shí)體型放在兩個(gè)需要被關(guān)聯(lián)的實(shí)體型中間(在?。中,選中任何一個(gè)聯(lián)系,在右鍵的彈出菜單中選擇“ChangetoEntity”命令即可完成聯(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)生成的表模型中。所以,說白了,其實(shí)association就是實(shí)體型的一種特例,用來在建模的時(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,在接下來產(chǎn)生的PDM中大家就可能看到這種定義所產(chǎn)生的效果。Inheritance(繼承)這種關(guān)系在概念層面是最容易理解的了,本文就不贅述了。前面已經(jīng)介紹了CDM中關(guān)于實(shí)體間關(guān)系的主要內(nèi)容,接下來我們就來看看根據(jù)這個(gè)CDM所生成的PDM是一個(gè)什么樣子:

傲期chM2弱? ek.fk,|—numeric開始時(shí)間<Undefin&d>■A俱樂部姓名<Undefined>性別text年齡numeric成立時(shí)間datetime部長(zhǎng)學(xué)號(hào)nLitTie「ic:FKSTUDENT-STUDENT-CCLUB傲期chM2弱? ek.fk,|—numeric開始時(shí)間<Undefin&d>■A俱樂部姓名<Undefined>性別text年齡numeric成立時(shí)間datetime部長(zhǎng)學(xué)號(hào)nLitTie「ic:FKSTUDENT-STUDENT-CCLUBK_TEi<-E^_TEA.C-ER-F_FERSON\FKHOLIDAYTEACHER-HTEACHER.ZK_STUCEMT.STUCEHT-F_FERSC'.學(xué)生-俱樂部教師齡期一只

教緘二numericnumericchar:2565^3::undetmed^性別text年齡nuiTiEri:::」TEA:2F:+TEACHER-SFKCLASSCLASSMANATEACHERE號(hào)dHei(256}奸叫所屬年級(jí)numeric班級(jí)號(hào)num已「ic班級(jí)SI-CMEVISITTEA」ER:VISIHCMEVISITM以芝耳弋::hm『L3E:ek.fkl*空宥<uk,fk2*FKSTUDENT-STUDENT-CSTUDENT學(xué)生年綴numeric班綴char(256^三與numeric=:Undetined^1l性別text-年齡iiumEric:」上圖中所有標(biāo)紅的部分是我們最應(yīng)該關(guān)注的內(nèi)容,因?yàn)樗麄兌际怯捎谖覀儗?duì)實(shí)體型間的關(guān)系的定義而產(chǎn)生的,下面給出一些簡(jiǎn)單的說明?!皫熒P(guān)系〃和''學(xué)生俱樂部〃這兩個(gè)表是由于我們的多對(duì)多關(guān)系而產(chǎn)生的。'、假期〃表的''工號(hào)〃字段是由于我們將教師-假期關(guān)系指定為dependent而產(chǎn)生的。'班級(jí)”表的''工號(hào)”字段是由于我們將教師-班級(jí)關(guān)系制定為dominant而產(chǎn)生的。、家訪”表中的''工號(hào)”和''學(xué)號(hào)”字段是由于家訪是教師和學(xué)生實(shí)體型的association而產(chǎn)生的。另外,記得我們?cè)谔岬絛ominant屬性的時(shí)候說過,一個(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í)表中看到多出來的列),截圖如下:教師FFnumericFFnumeric::Undefined>textnumericFKTEACHEFLClJkSEg]宇§MANATEACH鼠|班級(jí)Dh=r(2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論