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