版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、概念模型和實(shí)體關(guān)系圖把用戶需求抽象為概念模型即為概念結(jié)構(gòu)設(shè)計(jì)。概念模型除了要求能反映客觀世界并且易于理解外,還要求其易于向數(shù)據(jù)模型(如關(guān)系模型)轉(zhuǎn)化。概念模型獨(dú)立于具體的數(shù)據(jù)庫(kù)系統(tǒng),是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)。第一頁(yè),共86頁(yè)。1.概念模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次是數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言對(duì)概念模型的基本要求較強(qiáng)的語(yǔ)義表達(dá)能力,能夠方便、直接地表達(dá)應(yīng)用中的各種語(yǔ)義知識(shí)簡(jiǎn)單、清晰、易于用戶理解。第二頁(yè),共86頁(yè)。2.信息世界中的基本概念
(1)實(shí)體(Entity)客觀存在并可相互區(qū)別的事物稱為實(shí)體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)刻畫。
(3)碼(Key)唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。
第三頁(yè),共86頁(yè)。信息世界中的基本概念(續(xù))(4)域(Domain)屬性的取值范圍稱為該屬性的域。(5)實(shí)體型(EntityType)用實(shí)體名及其屬性名集合來(lái)抽象和刻畫同類實(shí)體稱為實(shí)體型(6)實(shí)體集(EntitySet)同型實(shí)體的集合稱為實(shí)體集第四頁(yè),共86頁(yè)。信息世界中的基本概念(續(xù))(7)聯(lián)系(Relationship)現(xiàn)實(shí)世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系實(shí)體型間聯(lián)系兩個(gè)實(shí)體型一對(duì)一聯(lián)系(1:1)三個(gè)實(shí)體型一對(duì)多聯(lián)系(1:n)一個(gè)實(shí)體型多對(duì)多聯(lián)系(m:n)
第五頁(yè),共86頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2111:1聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2mnm:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21n1:n聯(lián)系第六頁(yè),共86頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系一對(duì)一聯(lián)系如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系。記為1:1。
實(shí)例班級(jí)與班長(zhǎng)之間的聯(lián)系:一個(gè)班級(jí)只有一個(gè)正班長(zhǎng)一個(gè)班長(zhǎng)只在一個(gè)班中任職第七頁(yè),共86頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系(續(xù))一對(duì)多聯(lián)系如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B有一對(duì)多聯(lián)系記為1:n實(shí)例班級(jí)與學(xué)生之間的聯(lián)系:一個(gè)班級(jí)中有若干名學(xué)生,每個(gè)學(xué)生只在一個(gè)班級(jí)中學(xué)習(xí)第八頁(yè),共86頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系(續(xù))多對(duì)多聯(lián)系(m:n)如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m≥0)與之聯(lián)系,則稱實(shí)體集A與實(shí)體B具有多對(duì)多聯(lián)系。記為m:n實(shí)例課程與學(xué)生之間的聯(lián)系:一門課程同時(shí)有若干個(gè)學(xué)生選修一個(gè)學(xué)生可以同時(shí)選修多門課程第九頁(yè),共86頁(yè)。3.概念模型的表示方法ER圖實(shí)體型用矩形表示,矩形框內(nèi)寫明實(shí)體名。學(xué)生教師第十頁(yè),共86頁(yè)。E-R圖(續(xù))屬性用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)學(xué)生學(xué)號(hào)年齡性別姓名第十一頁(yè),共86頁(yè)。E-R圖(續(xù))聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)聯(lián)系的屬性:聯(lián)系本身也是一種實(shí)體型,也可以有屬性。如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無(wú)向邊與該聯(lián)系連接起來(lái)
第十二頁(yè),共86頁(yè)。聯(lián)系的表示方法實(shí)體型1聯(lián)系名實(shí)體型2111:1聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2mnm:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21n1:n聯(lián)系第十三頁(yè),共86頁(yè)。聯(lián)系的表示方法(續(xù))實(shí)體型1聯(lián)系名mn同一實(shí)體型內(nèi)部的m:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21m多個(gè)實(shí)體型間的1:n聯(lián)系實(shí)體型3n第十四頁(yè),共86頁(yè)。聯(lián)系的表示方法示例班級(jí)班級(jí)-班長(zhǎng)班長(zhǎng)111:1聯(lián)系課程選修學(xué)生mnm:n聯(lián)系班級(jí)組成學(xué)生1n1:n聯(lián)系第十五頁(yè),共86頁(yè)。聯(lián)系的表示方法示例(續(xù))職工領(lǐng)導(dǎo)1n同一實(shí)體型內(nèi)部的1:n聯(lián)系課程講授教師1m多個(gè)實(shí)體型間的1:n聯(lián)系參考書n第十六頁(yè),共86頁(yè)。聯(lián)系屬性的表示方法課程選修學(xué)生mn成績(jī)第十七頁(yè),共86頁(yè)。E-R圖實(shí)例:學(xué)生課程班級(jí)學(xué)生卡學(xué)號(hào)姓名選課辦卡屬于課程號(hào)課程名學(xué)分卡號(hào)余額班號(hào)輔導(dǎo)員mn11n1成績(jī)第十八頁(yè),共86頁(yè)。二、概念模型轉(zhuǎn)化成邏輯模型將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際是將實(shí)體集、屬性以及聯(lián)系轉(zhuǎn)換為相應(yīng)的關(guān)系模式。1.實(shí)體集的轉(zhuǎn)換規(guī)則:概念模型中的一個(gè)實(shí)體集轉(zhuǎn)換為關(guān)系模型中的一個(gè)關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼,關(guān)系的結(jié)構(gòu)是關(guān)系模式。第十九頁(yè),共86頁(yè)。2.實(shí)體集間聯(lián)系的轉(zhuǎn)換規(guī)則以下舉例基于以下的E-R圖學(xué)生課程班級(jí)學(xué)生卡學(xué)號(hào)姓名選課辦卡屬于課程號(hào)課程名學(xué)分卡號(hào)余額班號(hào)輔導(dǎo)員mn11n1成績(jī)第二十頁(yè),共86頁(yè)。1)1:1聯(lián)系的轉(zhuǎn)換方法一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系,也可以與任意一端實(shí)體集所對(duì)應(yīng)的關(guān)系合并。如學(xué)生與學(xué)生卡關(guān)系的處理可以有三種,一種把學(xué)生卡的卡號(hào)作為學(xué)生關(guān)系(表)的一個(gè)屬性(字段);第二種方法是把學(xué)生編號(hào)作為學(xué)生卡關(guān)系(表)的一個(gè)屬性(字段);第三種方法為是單獨(dú)建立一個(gè)關(guān)系(表),屬性(字段)為學(xué)生號(hào)和學(xué)生卡卡號(hào)。第二十一頁(yè),共86頁(yè)。2)1:n聯(lián)系的轉(zhuǎn)換方法實(shí)體間的1:n聯(lián)系可以有兩種轉(zhuǎn)換方法:一種方法是將聯(lián)系轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系;另一種方法是在n端實(shí)體集中增加新屬性,新屬性由聯(lián)系對(duì)應(yīng)的1端實(shí)體集的碼和聯(lián)系自身的屬性構(gòu)成,新增屬性后原關(guān)系的碼不變。如學(xué)生與班級(jí)為1:n的關(guān)系,一種方法是單獨(dú)建立一個(gè)關(guān)系(表),屬性(字段)為學(xué)生號(hào)和班級(jí)代碼;第二種方法為在學(xué)生的關(guān)系(表)中增加班級(jí)編號(hào)屬性(字段)。第二十二頁(yè),共86頁(yè)。3)m:n聯(lián)系的轉(zhuǎn)換方法在向關(guān)系模型轉(zhuǎn)換時(shí),一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系,兩個(gè)多對(duì)多實(shí)體的碼組成關(guān)系的碼或碼的一部分,多對(duì)多關(guān)系本身可以包含屬性。如學(xué)生與課程的關(guān)系為m:n的關(guān)系,可以用一個(gè)獨(dú)立的關(guān)系(表)表示,其屬性(字段)為學(xué)生編號(hào),課程編號(hào)和成績(jī),前兩者是碼且是外碼。第二十三頁(yè),共86頁(yè)。最后上述概念模型轉(zhuǎn)成的邏輯模型為:學(xué)生(*學(xué)號(hào),姓名,班號(hào))學(xué)生卡(*卡號(hào),余額,學(xué)號(hào))班級(jí)(*班號(hào),輔導(dǎo)員)課程(*課程號(hào),課程名,學(xué)分)學(xué)生-課程(*學(xué)號(hào),*課程號(hào),成績(jī))*表示為碼,下劃線表示為外碼第二十四頁(yè),共86頁(yè)。三、PowerDesigner設(shè)計(jì)數(shù)據(jù)庫(kù)的過(guò)程
一)E-R圖學(xué)生課程班級(jí)校園卡學(xué)號(hào)姓名選課持有屬于編號(hào)名稱學(xué)分卡號(hào)余額班號(hào)班名mn11n1成績(jī)班長(zhǎng)11第二十五頁(yè),共86頁(yè)。二)概念數(shù)據(jù)模型CDM使用Powerdesigner描述E-R圖(TeachingCDM):第二十六頁(yè),共86頁(yè)。三)生成的物理模型根據(jù)CDM生成的物理模型PDM圖(TeachingPDM):第二十七頁(yè),共86頁(yè)。生成物理模型的警告
學(xué)生和課程之間的多對(duì)多關(guān)系生成物理模型時(shí)會(huì)有一個(gè)index
inclusion的警告原因是外碼和主碼生成pdm時(shí)會(huì)自動(dòng)建立index,生成的學(xué)生-課程關(guān)系中,學(xué)號(hào)和課程同是為主碼和外碼,所以重復(fù)建立了以下索引:學(xué)號(hào),課程號(hào),學(xué)號(hào)+課程號(hào)。第二十八頁(yè),共86頁(yè)。四)生成的DDL語(yǔ)句(部分)PDM包含了選擇的DBMS的DDL語(yǔ)句:createtableStudents(stdidchar(6)notnull,classidchar(6)notnull,nametitlenull,constraintPK_STUDENTSprimarykey(stdid))altertableStudentsaddconstraintFK_STUDENTS_STDBELONG_CLASSESforeignkey(classid)referencesclasses(classid)第二十九頁(yè),共86頁(yè)。四、PowerDesigner的概念數(shù)據(jù)模型(ConceptualDataModel)
PD對(duì)概念數(shù)據(jù)模型定義主要的內(nèi)容:設(shè)計(jì)數(shù)據(jù)庫(kù)過(guò)程通常開始于概念級(jí),在此級(jí)不需要考慮實(shí)際物理實(shí)現(xiàn)的細(xì)節(jié)。一個(gè)概念數(shù)據(jù)模型CDM代表了一個(gè)數(shù)據(jù)庫(kù)的整體邏輯結(jié)構(gòu),它獨(dú)立于任何軟件或數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。第三十頁(yè),共86頁(yè)。1、 基本概念目標(biāo):使用PowerDesigner建立概念數(shù)據(jù)模型新建:選菜單New,然后選ConceptualDataModel(概念模型),在Browse窗口的根WorkSpace下產(chǎn)生一個(gè)概念模型的結(jié)點(diǎn),使用彈出菜單更名為“TeachingCDM”。在該結(jié)點(diǎn)下已自動(dòng)加入一個(gè)Diagram。在概念模型中加入實(shí)體等元素:右擊概念模型TeachingCDM,選擇New/Entity或其他菜單。設(shè)置元素的特性:右擊元素,選擇菜單Properties將出現(xiàn)特性設(shè)置的對(duì)話框,不同類型的元素由不同的頁(yè)框組成。元素的Name用于圖中顯示,所以一般取中文,而Code用于生成物理模型的對(duì)象名(如表名、列名等),一般取英文字母。第三十一頁(yè),共86頁(yè)。A、實(shí)體(Entity)實(shí)體特性窗口中主要包含下列頁(yè)框:General:設(shè)置實(shí)體(Entity)的編碼(Code)、名稱(Name)和發(fā)生的行數(shù)(Number)Attributes(屬性):設(shè)置實(shí)體的屬性Identifiers:設(shè)置實(shí)體的標(biāo)識(shí)(對(duì)應(yīng)物理模型中碼和唯一性約束)第三十二頁(yè),共86頁(yè)。實(shí)體屬性(Attributes)和數(shù)據(jù)項(xiàng)(DataItems)實(shí)體屬性:在實(shí)體的特性窗口的Attributes頁(yè)框中設(shè)置實(shí)體的屬性屬性設(shè)置內(nèi)容:包括Code、Name、Comment、Datatype、Length、Domain和StandardChecks(Maximum、Minimum和Default)等數(shù)據(jù)項(xiàng)DataItem:在Entity中加入的所有屬性將被自動(dòng)加入在DataItems結(jié)點(diǎn)下作為數(shù)據(jù)項(xiàng)進(jìn)行集中管理。也可以直接在DataItems下增加數(shù)據(jù)項(xiàng),實(shí)體屬性通過(guò)使用相同的Code引用該數(shù)據(jù)項(xiàng)定義。屬性和數(shù)據(jù)項(xiàng)關(guān)系:實(shí)體的屬性可以看作是DataItems下數(shù)據(jù)項(xiàng)的組合;DataItems是所有實(shí)體屬性的集合第三十三頁(yè),共86頁(yè)。數(shù)據(jù)項(xiàng)機(jī)制的意義相同數(shù)據(jù)項(xiàng)目定義一次,節(jié)省了工作量保證不同實(shí)體相同屬性的定義一致性保證相同性質(zhì)的列名一致性后兩條通常先定義數(shù)據(jù)項(xiàng),然后在實(shí)體中引用該數(shù)據(jù)項(xiàng)前兩條通過(guò)域也能實(shí)現(xiàn)相同含義不同定義的屬性code名不要同名(如進(jìn)價(jià)和售價(jià)等)第三十四頁(yè),共86頁(yè)。屬性的Code值:缺省情況下為DataItems的唯一性標(biāo)識(shí),不同實(shí)體相同Code屬性被認(rèn)為對(duì)應(yīng)的是一個(gè)數(shù)據(jù)項(xiàng)定義。是以后生成建表SQL語(yǔ)句的列名。屬性的M、P和D:M=Mandatory(強(qiáng)制):選中表示屬性非空,P=PrimaryIdentifier:選中為主標(biāo)識(shí)。D=Displayed:選中在圖中顯示該屬性,否則不顯示。第三十五頁(yè),共86頁(yè)。AttributeProperties-列約束設(shè)置:雙擊某一屬性,進(jìn)入屬性特性設(shè)置框,其中standardChecks頁(yè)框中包含了下列常用設(shè)置:最大、最小、缺省值、格式以及所有合法值生成的物理模型中建表SQL語(yǔ)句示例:
…… ageintnulldefault18 constraintCKC_AGE_ENTITY_1check(ageisnullor(agebetween16and20andagein(17,18,19,20,16))),
……第三十六頁(yè),共86頁(yè)。行約束:進(jìn)貨價(jià)格必須小于銷售價(jià)格在概念模型中新建一個(gè)BusinessRules,在Expresion/Server中輸入“進(jìn)貨價(jià)格>=銷售價(jià)格”(Client中只在文檔中反應(yīng),而不會(huì)對(duì)物理模型產(chǎn)生影響)在實(shí)體的Properties中的Rules頁(yè)框點(diǎn)擊AddObjects,選擇上面建立的rule。在生成的物理模型的建表的SQL語(yǔ)句中出現(xiàn):
…… constraintCKT_ENTITY_1check(age>length)
……第三十七頁(yè),共86頁(yè)。選作實(shí)體主碼數(shù)據(jù)項(xiàng)的排它性若一個(gè)數(shù)據(jù)項(xiàng)作為一個(gè)實(shí)體的主碼,就不能再作為其他實(shí)體的屬性?;诘睦碛墒荘owerdesigner假設(shè)與某一實(shí)體主碼同名的屬性必是外碼,而外碼是在生成物理模型時(shí)根據(jù)實(shí)體間關(guān)系自動(dòng)生成,在概念模型中無(wú)需設(shè)置。第三十八頁(yè),共86頁(yè)。引出的Code的取名(即表列名)問(wèn)題:被選作主碼屬性的code不能被其他實(shí)體使用所有實(shí)體主碼屬性的Code取值必須不同名。如實(shí)體一般均有編號(hào),并且通常為主碼,為此我們必須在編號(hào)前加上前綴,如StdId。任一實(shí)體主碼屬性的Code值不能再被其他實(shí)體的屬性使用Code數(shù)據(jù)項(xiàng)定義,同時(shí)Code列名,所以生成的物理模型中相同的列名必須具有相同的定義。在商場(chǎng)管理信息系統(tǒng)中,很多單據(jù)都有數(shù)量屬性,若這些數(shù)量屬性具有相同的長(zhǎng)度和精度要求,則Code可相同,反之,則Code不能同名,如必須取名為OrderQty、SaleQty等。第三十九頁(yè),共86頁(yè)。突破限制的方法:如在上述Code不能同名情況下,要求生成的物理模型列名一定要同名,可在生成的物理模型時(shí)打開選項(xiàng):ConvertNamesintoCodes,即把Name作為列名。但一般不建議這樣做。選擇菜單Tools/ModelOptions,對(duì)Model設(shè)置中的DataItem中關(guān)閉UniqueCode選項(xiàng)。(注意:進(jìn)入ModelOptions對(duì)話框內(nèi)容根據(jù)當(dāng)前Diagram是概念模型還是物理模型而不同)第四十頁(yè),共86頁(yè)。判定實(shí)體屬性合適的準(zhǔn)則:在概念模型中,不要試圖使用屬性來(lái)反映兩個(gè)實(shí)體的關(guān)系,這本身就包含了實(shí)現(xiàn)方法,而實(shí)現(xiàn)方法應(yīng)該由物理模型完成。輔導(dǎo)員不應(yīng)該作為班級(jí)的屬性,而應(yīng)該通過(guò)班級(jí)和輔導(dǎo)員的關(guān)系來(lái)反映。學(xué)號(hào)不應(yīng)該作為校園卡的屬性,而應(yīng)該通過(guò)學(xué)生和校園卡的關(guān)系來(lái)反映校園卡和學(xué)號(hào)的對(duì)應(yīng)關(guān)系。課程和學(xué)生的關(guān)系A(chǔ)ssociation即“選課”中不應(yīng)該包括教師屬性,而應(yīng)該通過(guò)課程、學(xué)生和教師三者之間的Association來(lái)反映學(xué)生所選課和教師關(guān)系。第四十一頁(yè),共86頁(yè)。實(shí)體標(biāo)識(shí)(Identifier)定義:實(shí)體的屬性或?qū)傩越M合,在非空情況下其值唯一地標(biāo)識(shí)一個(gè)實(shí)體(可以為空)PrimaryIdentifier:一個(gè)實(shí)體可有多個(gè)Identifier,但只能指定一個(gè)為PrimaryIdentifier,一定非空。設(shè)置方法:在實(shí)體Propertise窗口的Identifier中設(shè)置,雙擊某個(gè)Identifier設(shè)置其對(duì)應(yīng)屬性。生成物理模型:PrimaryIdentifier對(duì)應(yīng)屬性即為主碼,其他Identifier對(duì)應(yīng)屬性被定義為Unique約束。第四十二頁(yè),共86頁(yè)。PrimaryIdentifier設(shè)置:在實(shí)體的Properties窗口的Attributes中指定一個(gè)實(shí)體的某些屬性為PrimaryIdentifier后,該實(shí)體將自動(dòng)產(chǎn)生一個(gè)Identifier_1,其對(duì)應(yīng)屬性即為所有指定為PrimaryIdentifier的屬性。去除屬性的PrimaryIdentifier標(biāo)志,并不會(huì)自動(dòng)刪除Identifier_1,但對(duì)應(yīng)屬性被自動(dòng)刪除;反之,刪除Identifier_1或去除對(duì)應(yīng)屬性或去除PrimaryIdentifier標(biāo)志,則實(shí)體所有屬性自動(dòng)去除PrimaryIdentifier標(biāo)志。第四十三頁(yè),共86頁(yè)。域(Domain)定義域,即屬性的取值類型和范圍。所有實(shí)體屬性的Domain可取已定義的域,其Datatype將被該域取值類型和范圍所取代。例:定義一個(gè)名稱域title,則學(xué)生姓名和課程名稱的Domain取title。域定義保證了具有相同取值類型和范圍的屬性域的一致性,一旦域需要修改,不必再逐個(gè)對(duì)實(shí)體屬性進(jìn)行修改,而只要對(duì)定義的域作一次修改。第四十四頁(yè),共86頁(yè)。圖(Diagram)以圖形化的方式顯示概念模型,一個(gè)概念模型下至少有一個(gè)Diagram,自動(dòng)顯示概念模型下的實(shí)體等元素。打開Palette窗口:右擊工具欄,在彈出式菜單中打開Palette選項(xiàng)。在Palette窗口中包含了圖形化方式顯示的概念模型中的元素,可選中需要的元素加入Diagram中。第四十五頁(yè),共86頁(yè)。關(guān)系Powerdesigner提供了兩種方法建立實(shí)體之間關(guān)系。Relationships:為ER模型表示法Associations:為Merise表示法,Merise為信息系統(tǒng)設(shè)計(jì)和開發(fā)方法,類似UML。在一個(gè)概念數(shù)據(jù)模型中,可以只使用relationship或只使用Association,也可以兩者同時(shí)使用。第四十六頁(yè),共86頁(yè)。關(guān)系(Relationship)建立實(shí)體之間的關(guān)系,在其Properties的Detail中設(shè)置關(guān)系的不同類型。在生成物理模型(Table)時(shí),將根據(jù)兩個(gè)實(shí)體的不同的關(guān)系,作不同處理:one-one:雙方或單方產(chǎn)生外碼。one-many或many-one:many方產(chǎn)生外碼。many-many:產(chǎn)生新表,屬性由兩者的主碼屬性構(gòu)成。Relationship不能包含屬性。第四十七頁(yè),共86頁(yè)。Relationship的Details:主導(dǎo)作用(Dominantrole):在OnetoOne情況下可選:None:雙方產(chǎn)生外碼實(shí)體Ato實(shí)體B:僅在實(shí)體B產(chǎn)生外碼實(shí)體Ato實(shí)體B:基數(shù)(Cardinality):n,m表示一個(gè)實(shí)體A可對(duì)應(yīng)n-m個(gè)實(shí)體B,可選0,1、1,1、0,n和1,n依賴關(guān)系(Dependent):含義:A的每個(gè)實(shí)例被B的一個(gè)實(shí)例所標(biāo)識(shí)對(duì)物理模型影響:B的主碼將成為A的主碼一部分同時(shí)為B的外碼強(qiáng)制關(guān)系(Mandatary):含義:A的每個(gè)實(shí)例需要一個(gè)B的實(shí)例對(duì)物理模型影響:A中的對(duì)B的外碼非空第四十八頁(yè),共86頁(yè)?;鶖?shù)和依賴、強(qiáng)制之間的約束關(guān)系:
基數(shù)(n,m)和依賴、強(qiáng)制關(guān)系存在下列約束關(guān)系: 1)0,1:不強(qiáng)制、不依賴 2)0,n:不強(qiáng)制、無(wú)依賴 3)1,1:強(qiáng)制、依賴可選 4)1,n:強(qiáng)制、無(wú)依賴第四十九頁(yè),共86頁(yè)。強(qiáng)制(Mandatory)關(guān)系實(shí)例:1-1例:學(xué)生to校園卡,假設(shè)學(xué)生可不辦校園卡,則學(xué)生和校園卡非強(qiáng)制關(guān)系,否則為強(qiáng)制關(guān)系。多-1例:學(xué)生to興趣班,假設(shè)一個(gè)學(xué)生最多參加一個(gè)興趣班,則為非強(qiáng)制關(guān)系;假設(shè)一個(gè)學(xué)生必須參加一個(gè)興趣班,則為強(qiáng)制關(guān)系第五十頁(yè),共86頁(yè)。依賴(Dependent)關(guān)系實(shí)例:學(xué)生和班級(jí)的多-1關(guān)系:如整個(gè)學(xué)校學(xué)生的學(xué)號(hào)唯一,則學(xué)生對(duì)班級(jí)為非依賴關(guān)系。產(chǎn)生物理模型結(jié)果是班號(hào)作為學(xué)生的外碼。如學(xué)生的學(xué)號(hào)僅在班級(jí)中唯一,則學(xué)生對(duì)班級(jí)為依賴關(guān)系。產(chǎn)生物理模型結(jié)果是班號(hào)將作為學(xué)生主碼一部分(和學(xué)號(hào)一起為主碼)同時(shí)班號(hào)為學(xué)生的外碼。第五十一頁(yè),共86頁(yè)。把關(guān)系轉(zhuǎn)換為實(shí)體:1-1、1-多和多-多關(guān)系均可以轉(zhuǎn)換為實(shí)體,特別是對(duì)多-多關(guān)系,轉(zhuǎn)換為實(shí)體后可以包含屬性。把Relationship轉(zhuǎn)換為實(shí)體的方法是使用關(guān)系的彈出菜單中的ChangetoEntity。第五十二頁(yè),共86頁(yè)。思考和練習(xí):在TeachingCDM中,students和classes的Relationship加上依賴關(guān)系,然后生成物理模型,觀察區(qū)別。在實(shí)際應(yīng)用中,學(xué)號(hào)往往包含了學(xué)生的級(jí)別、專業(yè)、班號(hào)等信息,這實(shí)際不符合1NF,如何設(shè)計(jì)更規(guī)范?同時(shí)又能按需求規(guī)則輸出包含級(jí)別、專業(yè)、班號(hào)等信息的學(xué)號(hào)?提示:參考上述1-多關(guān)系中的依賴關(guān)系進(jìn)行設(shè)計(jì)。第五十三頁(yè),共86頁(yè)。思考和練習(xí):實(shí)體學(xué)生的班長(zhǎng)的關(guān)系,由于班長(zhǎng)本身是學(xué)生,所以是一個(gè)實(shí)體自己和自己的關(guān)系,建立這種關(guān)系后將在物理模型中產(chǎn)生什么情況?如此處理是否是唯一方法?是否可以通過(guò)學(xué)生和班級(jí)的關(guān)系來(lái)反映學(xué)生和班長(zhǎng)的關(guān)系,比較兩種方法。第五十四頁(yè),共86頁(yè)。Association和AssociationLink作用:Association通過(guò)AssocationLink與多個(gè)實(shí)體連接,并可包括自己的屬性。一般用于二個(gè)和二個(gè)以上實(shí)體的聯(lián)系。使用方法:可以直接用AssociationLink連接兩個(gè)實(shí)體,將產(chǎn)生一個(gè)Association,兩個(gè)Assocation和實(shí)體的連接AssociationLink。也可以先建立一個(gè)Association,然后用AssociationLink連接Assocation和某個(gè)實(shí)體。生成物理模型:將同Relationship一樣根據(jù)是1-1、1-多還是多-多關(guān)系生成外碼或生成一個(gè)Table。第五十五頁(yè),共86頁(yè)。關(guān)系類型的表示:通過(guò)Association連接的兩個(gè)實(shí)體的關(guān)系類型,是分別通過(guò)兩實(shí)體和Association的AssociationLink類型來(lái)確定的。下面是班級(jí)和學(xué)生的1-多關(guān)系,其中的1,1和1,n并非表示班級(jí)和學(xué)生的多-1關(guān)系(事實(shí)是1-多關(guān)系),而表示的是學(xué)生在學(xué)生和班級(jí)關(guān)系中發(fā)生1-1次,而班級(jí)在學(xué)生和班級(jí)的關(guān)系中將發(fā)生1-n次。第五十六頁(yè),共86頁(yè)。1-多Association及生成的物理模型:第五十七頁(yè),共86頁(yè)。Relationship和Association的使用建議:對(duì)1-1、1-多和不包含屬性的多-多關(guān)系,使用Relationship。實(shí)體之間的多-多關(guān)系且包含屬性的使用Association比較簡(jiǎn)單。要處理復(fù)雜的問(wèn)題,如建立關(guān)系之間的關(guān)系或關(guān)系與實(shí)體之間的關(guān)系,必須使用Relationship。第五十八頁(yè),共86頁(yè)。思考和練習(xí):學(xué)生和課程的關(guān)系即“選課”可使用Association,也可以使用一個(gè)實(shí)體,該實(shí)體具有成績(jī)屬性,然后分別和學(xué)生和課程建立強(qiáng)制的依賴多-1關(guān)系,分別用這兩種方法設(shè)計(jì)CDM,然后生成PDM。比較分析兩種方法的優(yōu)缺點(diǎn)。上述實(shí)體及其關(guān)系可以在兩個(gè)實(shí)體建立的Relationship后,右擊Relationship使用彈出菜單中的ChangetoEntity/Standard生成。第五十九頁(yè),共86頁(yè)。3.3.1.6 繼承關(guān)系(Inheritance):繼承關(guān)系的一端連接具有普遍性的Entity,稱為ParentEntity,繼承關(guān)系的另一端連接具有特殊性的一個(gè)或多個(gè)Entity稱為ChildEntity。例如,“學(xué)生”為“本科生”與“研究生”的Parent,后者為前者的Child。繼承關(guān)系生成物理模型的控制:如關(guān)系屬性中打開GenerateChildren選項(xiàng),可選Parent的所有屬性或僅主屬性復(fù)制到Children對(duì)應(yīng)表中。如關(guān)閉GenerateChildren選項(xiàng),則僅生成Parent表,該表將包含子實(shí)體所有屬性并可設(shè)置SpecifyingAttribute。如生成父子表同時(shí)打開,父表主碼將作為子表主碼和外碼。SpecifyingAttribute:設(shè)置屬性,這些屬性將出現(xiàn)在生成的父表中,通常用作區(qū)分是哪個(gè)Children。第六十頁(yè),共86頁(yè)?;コ庑岳^承(MutuallyExclusiveChildren)
:同一事件(occurrence)不能出現(xiàn)在同一Parent的兩個(gè)child中,這種繼承稱為互斥性繼承,反之,則稱為非互斥性繼承。如父實(shí)體一個(gè)學(xué)生只能是本科生或研究生取其一,則本科生和研究生為學(xué)生的互斥性繼承,否則,如一個(gè)學(xué)生可同時(shí)為本科生和研究生,則為非互斥性繼承。此設(shè)置只影響文檔而不影響生成的PDM。第六十一頁(yè),共86頁(yè)。繼承的實(shí)踐應(yīng)用:對(duì)若干實(shí)體的公共屬性,可把這些公共屬性抽取出來(lái)形成一個(gè)父實(shí)體,具有公共屬性的實(shí)體可從該父實(shí)體繼承這些公共屬性。如所有單據(jù)都有單據(jù)號(hào),日期,制單人等,則這些屬性可形成一個(gè)“單據(jù)公共屬性”實(shí)體,所有單據(jù)實(shí)體繼承該實(shí)體屬性。概念模型下,出現(xiàn)在主鍵(如單據(jù)號(hào))中的數(shù)據(jù)項(xiàng)不能重復(fù)使用,若在物理模型下,所有單據(jù)號(hào)要使用相同的列名,可以使用Inheritance。第六十二頁(yè),共86頁(yè)。實(shí)用技巧:實(shí)際繼承的前提條件是Child具有較多的共同屬性。使用繼承可避免共同屬性重復(fù)維護(hù)并保持其一致性。僅生成Child:適用Child之間共同屬性相對(duì)少而差異大的情況。在Child之間非互斥情況下,會(huì)有冗余。僅生成Parent:適用Child之間差異小的情況,五斥情況下,某個(gè)Child的屬性對(duì)其他Child一定為空。生成Parent及部分Child:適用Child之間共性屬性相對(duì)多而差異也大情況,此情形Child僅需要繼承Parent的主屬性?;コ夂头腔コ馇闆r均適用,互斥情況下Parent與Child為1-1,在非互斥情況下為1對(duì)多。第六十三頁(yè),共86頁(yè)。例:使用繼承完成下列概念模型設(shè)計(jì)業(yè)務(wù)單據(jù):共同屬性:?jiǎn)螕?jù)號(hào)、日期、備注、制單人、審核人等諸多共同屬性。特殊屬性:進(jìn)貨單:供應(yīng)商、結(jié)算方式出庫(kù)單:倉(cāng)庫(kù)、出庫(kù)類型第六十四頁(yè),共86頁(yè)。思考和練習(xí):繼承最后生成的物理模型可有下列選擇,分析其利弊:生成Parent,不生成Parent僅繼承主碼屬性繼承所有屬性第六十五頁(yè),共86頁(yè)。3.3.2 概念數(shù)據(jù)模型實(shí)例分析
例1:商品和單據(jù)實(shí)體的概念模型錯(cuò)誤的設(shè)計(jì):?jiǎn)螕?jù)實(shí)體的屬性一部分和單據(jù)為1-1,另一部分為1-多,所以把它分成兩個(gè)實(shí)體,分別為單據(jù)摘要和單據(jù)明細(xì)。第六十六頁(yè),共86頁(yè)。生成的物理數(shù)據(jù)模型:必須在生成的物理數(shù)據(jù)模型中為單據(jù)明細(xì)設(shè)置主碼:第六十七頁(yè),共86頁(yè)。正確的處理:?jiǎn)螕?jù)明細(xì)實(shí)際上反映的是單據(jù)實(shí)體和商品實(shí)體的多對(duì)多關(guān)系:第六十八頁(yè),共86頁(yè)。生成的物理數(shù)據(jù)模型:生成的物理數(shù)據(jù)模型不必作任何修改第六十九頁(yè),共86頁(yè)。例2 同一實(shí)體的多個(gè)外鍵引用的處理 單據(jù)主表中有制單人、申請(qǐng)人和驗(yàn)收人等,這些屬性同是“員工表”的外鍵。產(chǎn)生問(wèn)題是:在概念模型中,“員工”實(shí)體和“單據(jù)”實(shí)體將有多個(gè)1-Mrelationship,生成物理模型后,“單據(jù)”表中將產(chǎn)生多個(gè)“員工號(hào)”外鍵,其列名由PowerDesigner根據(jù)概念模型對(duì)應(yīng)屬性的code自動(dòng)合成,無(wú)法人工控制。第七十頁(yè),共86頁(yè)。錯(cuò)誤的處理:概念和物理數(shù)據(jù)模型生成物理數(shù)據(jù)模型中單據(jù)的處理人的列名無(wú)法控制,只能作修改。實(shí)際上單據(jù)中處理人的列是重復(fù)的,不符合1NF。第七十一頁(yè),共86頁(yè)。正確的處理:增加單據(jù)責(zé)任實(shí)體。第七十二頁(yè),共86頁(yè)。生成的物理模型:第七十三頁(yè),共86頁(yè)。例3:多供應(yīng)商問(wèn)題問(wèn)題:一個(gè)超市中某種商品的供應(yīng)商一般一個(gè)時(shí)期固定為一個(gè),所以供應(yīng)商和商品的關(guān)系為1-多,但可能會(huì)有個(gè)別商品同時(shí)有多個(gè)供應(yīng)商,即對(duì)個(gè)別商品供應(yīng)商和商品的關(guān)系為多-多。通常的解決方案:設(shè)計(jì)成多對(duì)多模型,包含3個(gè)關(guān)系:商品(*商品編號(hào),名稱,單位,…)供應(yīng)商(*供應(yīng)商編號(hào),名稱,地址,聯(lián)系電話…)商品和供應(yīng)商對(duì)應(yīng)表(*商品編號(hào),*供應(yīng)商編號(hào))設(shè)計(jì)缺陷:因?yàn)闃O個(gè)別的商品,查詢?nèi)魏魏蜕唐芳肮?yīng)商相關(guān)的信息,都必須連接三個(gè)表。連接的表越多,查詢效率自然越差。第七十四頁(yè),共86頁(yè)。改進(jìn)方法:設(shè)計(jì)成1-多模型,適用大多數(shù)商品:商品(*商品編號(hào),名稱,單位,供應(yīng)商編號(hào)…)供應(yīng)商(*供應(yīng)商編號(hào),名稱,地址,聯(lián)系電話…)對(duì)個(gè)別商品,可能有多個(gè)供應(yīng)商,其供應(yīng)商編號(hào)可取一個(gè)特殊的編號(hào)表示它有多個(gè)供應(yīng)商,而其對(duì)應(yīng)的供應(yīng)商使用下列關(guān)系來(lái)表示:商品和供應(yīng)商對(duì)應(yīng)表(*商品編號(hào),*供應(yīng)商編號(hào))優(yōu)點(diǎn):對(duì)大多數(shù)商品的商品信息和供應(yīng)商信息查詢,只需要連接兩個(gè)表。第七十五頁(yè),共86頁(yè)。如何設(shè)計(jì)概念數(shù)據(jù)模型:可在商品實(shí)體和供應(yīng)商實(shí)體之間建立兩個(gè)關(guān)系,一個(gè)為多對(duì)一,一個(gè)為多對(duì)多。表示對(duì)多數(shù)商品實(shí)體和供應(yīng)商實(shí)體為多對(duì)一,對(duì)個(gè)別商品商品實(shí)體和供應(yīng)商實(shí)體為多對(duì)多。第七十六頁(yè),共86頁(yè)。思考和練習(xí):對(duì)兩種設(shè)計(jì),分別寫出并比較查詢供應(yīng)商供貨表的select語(yǔ)句,列包括:供應(yīng)商編號(hào),供應(yīng)商名稱,商品編號(hào),商品名稱,按第一列排序。僅查單供應(yīng)商的商品僅查多(多于一個(gè))供應(yīng)商的商品查所有商品針對(duì)二種設(shè)計(jì)方案,從對(duì)商品和供應(yīng)商的增、刪和改三個(gè)方面,分別給出處理邏輯,比較其復(fù)雜性,并設(shè)計(jì)一種商品和供應(yīng)商關(guān)系的維護(hù)界面。第七十七頁(yè),共86頁(yè)。五、PowerDesigner的物理數(shù)據(jù)模型PDM(PhysicalDataModel)一)生成物理數(shù)據(jù)模型打開生成對(duì)話框:使用菜單Tools/GeneratePhysicalDataModel生成物理數(shù)據(jù)模型。出現(xiàn)對(duì)話框PDMGenerationOptions對(duì)生成進(jìn)行控制。第一次生成:選中“GenerateNewPhysicalDataModel”,并選擇DBMS(MicrosoftSQLServer2000),按確認(rèn)則生成PDM。重新生成:修改了CDM后,要重新生成PDM,選中“UpdateExistingPhysicalDataModel”,并關(guān)閉“PreserveModifications”選項(xiàng),按確認(rèn)則重新生成PDM覆蓋原PDM。第七十八頁(yè),共86頁(yè)。二)修改物理數(shù)據(jù)模型:?jiǎn)栴}:有時(shí)需要對(duì)生成的PDM進(jìn)行修改,修改后若重新生成PDM,對(duì)PDM的修改將丟失。解決方法:打開“UpdateExistingPhysicalDataModel”中PreserveModifications選項(xiàng),PD將根據(jù)CDM生成PDM,并與原來(lái)的(生成后可能修改過(guò)的)PDM比較,由用戶選擇是那些內(nèi)容要根據(jù)新的PDM進(jìn)行更新、刪除或增加。建議:盡可能建立合理完整的CDM,避免或盡可能少地對(duì)生成的PDM作修改。第七十九頁(yè),共86頁(yè)。例:由CDM生成PDM后對(duì)CDM和PDM做下列修改:
1)PDM的學(xué)生表中增加“出生日期”
2)把CDM學(xué)生性別Sex由BooleanChar(1)選擇UpdateExistingPhysicalDataModel并打開PreserveModifications,按確認(rèn)后出現(xiàn)下列對(duì)話框,左邊是新生成的PDM,右邊是原生成并已增加“出生日期”的PDM,其中所有比較后的不一致項(xiàng)用戶可打勾表示用新PDM更新,更新方式是:不一致項(xiàng)上的“-”表示刪除,“+”表示增加,“=”表示更新本例中,我們希望保留PDM的“出生日期”,而更新Sex的定義,所以僅在右邊“性別”前打勾。點(diǎn)OK,產(chǎn)生新PDM將保留“出生日期”,性別類型改為Char(1)。第八十頁(yè),共86頁(yè)。更新時(shí)原PDM和新PDM比較控制界面:第八十一頁(yè),共86頁(yè)。三)生成物理數(shù)據(jù)模型的其他控制Detail頁(yè)框:CheckM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省牡丹江一中高三10月月考語(yǔ)文試題(含答案)
- 二零二五年度年會(huì)場(chǎng)地租賃及現(xiàn)場(chǎng)直播服務(wù)合同4篇
- 二零二五年度農(nóng)用拖拉機(jī)售后服務(wù)與技術(shù)支持合同4篇
- 2025年度迷你氣象站智能預(yù)警系統(tǒng)定制合同4篇
- 2025年度新能源項(xiàng)目合作出資方居間服務(wù)合同模板3篇
- 2025年培訓(xùn)特許經(jīng)營(yíng)合同
- 二零二五版苗木養(yǎng)護(hù)與園林工程承包合同3篇
- 2025年重慶人才服務(wù)股份有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年陜西空港市政配套管理公司招聘筆試參考題庫(kù)含答案解析
- 2025年江蘇江陰紡織市場(chǎng)有限公司招聘筆試參考題庫(kù)含答案解析
- 2024版塑料購(gòu)銷合同范本買賣
- 2024-2025學(xué)年人教新版高二(上)英語(yǔ)寒假作業(yè)(五)
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級(jí)上學(xué)期語(yǔ)文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 汽車噴漆勞務(wù)外包合同范本
- 微項(xiàng)目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(cè)(魯科版)
評(píng)論
0/150
提交評(píng)論