目標(biāo):
本文主要介紹PowerDesigner中概念數(shù)據(jù)模型 CDM的基本概念。
一、概念數(shù)據(jù)模型概述
數(shù)據(jù)模型是現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象。數(shù)據(jù)模型應(yīng)該滿足三個(gè)方面的要求:
1)能夠比較真實(shí)地模擬現(xiàn)實(shí)世界
2)容易為人所理解
3)便于計(jì)算機(jī)實(shí)現(xiàn)
概念數(shù)據(jù)模型也稱(chēng)信息模型,它以實(shí)體-聯(lián)系(Entity-RelationShip,簡(jiǎn)稱(chēng)E-R)理論為基礎(chǔ),并對(duì)這一理論進(jìn)行了擴(kuò)充。它從用戶的觀點(diǎn)出發(fā)對(duì)信息進(jìn)行建模,主要用于數(shù)據(jù)庫(kù)的概念級(jí)設(shè)計(jì)。
通常人們先將現(xiàn)實(shí)世界抽象為概念世界,然后再將概念世界轉(zhuǎn)為機(jī)器世界。換句話說(shuō),就是先將現(xiàn)實(shí)世界中的客觀對(duì)象抽象為實(shí)體(Entity)和聯(lián)系(Relationship),它并不依賴(lài)于具體的計(jì)算機(jī)系統(tǒng)或某個(gè)DBMS系統(tǒng),這種模型就是我們所說(shuō)的CDM;然后再將CDM轉(zhuǎn)換為計(jì)算機(jī)上某個(gè)DBMS所支持的數(shù)據(jù)模型,這樣的模型就是物理數(shù)據(jù)模型,即PDM。
CDM是一組嚴(yán)格定義的模型元素的集合,這些模型元素精確地描述了系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性以及完整性約束條件等,其中包括了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分。
1)數(shù)據(jù)結(jié)構(gòu)表達(dá)為實(shí)體和屬性;
2)數(shù)據(jù)操作表達(dá)為實(shí)體中的記錄的插入、刪除、修改、查詢等操作;
3)完整性約束表達(dá)為數(shù)據(jù)的自身完整性約束(如數(shù)據(jù)類(lèi)型、檢查、規(guī)則等)和數(shù)據(jù)間的參照完整性約束(如聯(lián)系、繼承聯(lián)系等);
二、實(shí)體、屬性及標(biāo)識(shí)符的定義
實(shí)體(Entity),也稱(chēng)為實(shí)例,對(duì)應(yīng)現(xiàn)實(shí)世界中可區(qū)別于其他對(duì)象的“事件”或“事物”。例如,學(xué)校中的每個(gè)學(xué)生,醫(yī)院中的每個(gè)手術(shù)。
每個(gè)實(shí)體都有用來(lái)描述實(shí)體特征的一組性質(zhì),稱(chēng)之為屬性,一個(gè)實(shí)體由若干個(gè)屬性來(lái)描述。如學(xué)生實(shí)體可由學(xué)號(hào)、姓名、性別、出生年月、所在系別、入學(xué)年份等屬性組成。
實(shí)體集(Entity Set)是具體相同類(lèi)型及相同性質(zhì)實(shí)體的集合。例如學(xué)校所有學(xué)生的集合可定義為“學(xué)生”實(shí)體集,“學(xué)生”實(shí)體集中的每個(gè)實(shí)體均具有學(xué)號(hào)、姓名、性別、出生年月、所在系別、入學(xué)年份等性質(zhì)。
實(shí)體類(lèi)型(Entity Type)是實(shí)體集中每個(gè)實(shí)體所具有的共同性質(zhì)的集合,例如“患者”實(shí)體類(lèi)型為:患者{門(mén)診號(hào),姓名,性別,年齡,身份證號(hào).............}。實(shí)體是實(shí)體類(lèi)型的一個(gè)實(shí)例,在含義明確的情況下,實(shí)體、實(shí)體類(lèi)型通常互換使用。
實(shí)體類(lèi)型中的每個(gè)實(shí)體包含唯一標(biāo)識(shí)它的一個(gè)或一組屬性,這些屬性稱(chēng)為實(shí)體類(lèi)型的標(biāo)識(shí)符(Identifier),如“學(xué)號(hào)”是學(xué)生實(shí)體類(lèi)型的標(biāo)識(shí)符,“姓名”、“出生日期”、“信址”共同組成“公民”實(shí)體類(lèi)型的標(biāo)識(shí)符。
有些實(shí)體類(lèi)型可以有幾組屬性充當(dāng)標(biāo)識(shí)符,選定其中一組屬性作為實(shí)體類(lèi)型的主標(biāo)識(shí)符,其他的作為次標(biāo)識(shí)符。
三、實(shí)體、屬性及標(biāo)識(shí)符的表達(dá)

待續(xù)!
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
目標(biāo):
本文主要介紹PowerDesigner概念數(shù)據(jù)模型以及實(shí)體、屬性創(chuàng)建。
一、新建概念數(shù)據(jù)模型
1)選擇File-->New,彈出如圖所示對(duì)話框,選擇CDM模型(即概念數(shù)據(jù)模型)建立模型。

2)完成概念數(shù)據(jù)模型的創(chuàng)建。以下圖示,對(duì)當(dāng)前的工作空間進(jìn)行簡(jiǎn)單介紹。(以后再更詳細(xì)說(shuō)明)

3)選擇新增的CDM模型,右擊,在彈出的菜單中選擇“Properties”屬性項(xiàng),彈出如圖所示對(duì)話框。在“General”標(biāo)簽里可以輸入所建模型的名稱(chēng)、代碼、描述、創(chuàng)建者、版本以及默認(rèn)的圖表等等信息。在“Notes”標(biāo)簽里可以輸入相關(guān)描述及說(shuō)明信息。當(dāng)然再有更多的標(biāo)簽,可以點(diǎn)擊 "More>>"按鈕,這里就不再進(jìn)行詳細(xì)解釋。

二、創(chuàng)建新實(shí)體
1)在CDM的圖形窗口中,單擊工具選項(xiàng)版上的Entity工具,再單擊圖形窗口的空白處,在單擊的位置就出現(xiàn)一個(gè)實(shí)體符號(hào)。點(diǎn)擊Pointer工具或右擊鼠標(biāo),釋放Entitiy工具。如圖所示

2)雙擊剛創(chuàng)建的實(shí)體符號(hào),打開(kāi)下列圖標(biāo)窗口,在此窗口“General”標(biāo)簽中可以輸入實(shí)體的名稱(chēng)、代碼、描述等信息。

三、添加實(shí)體屬性
1)在上述窗口的“Attribute”選項(xiàng)標(biāo)簽上可以添加屬性,如下圖所示。
![clip_image001[4]](http://www.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/PowerDesigner_104DC/clip_image001%5B4%5D_thumb.jpg)
注意:
數(shù)據(jù)項(xiàng)中的“添加屬性”和“重用已有數(shù)據(jù)項(xiàng)”這兩項(xiàng)功能與模型中Data Item的Unique code 和Allow reuse選項(xiàng)有關(guān)。
P列表示該屬性是否為主標(biāo)識(shí)符;D列表示該屬性是否在圖形窗口中顯示;M列表示該屬性是否為強(qiáng)制的,即該列是否為空值。
如果一個(gè)實(shí)體屬性為強(qiáng)制的,那么, 這個(gè)屬性在每條記錄中都必須被賦值,不能為空。
2)在上圖所示窗口中,點(diǎn)擊插入屬性按鈕,彈出屬性對(duì)話框,如下圖所示。

注意:這里涉及到域的概念,即一種標(biāo)準(zhǔn)的數(shù)據(jù)結(jié)構(gòu),它可應(yīng)用至數(shù)據(jù)項(xiàng)或?qū)嶓w的屬性上。在以下的教程中將另立章節(jié)詳細(xì)說(shuō)明。
待續(xù)。
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
Posted on 2007-04-09 14:44 KevinYin 閱讀(15951) 評(píng)論(20) 編輯 收藏 網(wǎng)摘 所屬分類(lèi): PowerDesigner 
目標(biāo):
本文主要介紹屬性的標(biāo)準(zhǔn)檢查約束、如何定義屬性的附加檢查。
一、定義屬性的標(biāo)準(zhǔn)檢查約束
標(biāo)準(zhǔn)檢查約束是一組確保屬性有效的表達(dá)式。在實(shí)體屬性的特性窗口,打開(kāi)如圖所示的檢查選項(xiàng)卡。

在這個(gè)選項(xiàng)卡可以定義屬性的標(biāo)準(zhǔn)檢查約束,窗口中每項(xiàng)的參數(shù)的含義,如下
參數(shù) | 說(shuō)明 |
Minimum | 屬性可接受的最小數(shù) |
Maximum | 屬性可接受的最大數(shù) |
Default | 屬性不賦值時(shí),系統(tǒng)提供的默認(rèn)值 |
Unit | 單位,如公里、噸、元 |
Format | 屬性的數(shù)據(jù)顯示格式 |
Lowercase | 屬性的賦值全部變?yōu)樾?xiě)字母 |
Uppercase | 屬性的賦值全部變?yōu)榇髮?xiě)字母 |
Cannot modify | 該屬性一旦賦值不能再修改 |
List Of Values | 屬性賦值列表,除列表中的值,不能有其他的值 |
Label | 屬性列表值的標(biāo)簽 |
二、定義屬性的附加檢查
當(dāng)Standard checks 或Rules 不能滿足檢查的要求時(shí),可以在Additional Checks選項(xiàng)卡的Server子頁(yè)上,通過(guò)SQL語(yǔ)句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER%幾個(gè)變量來(lái)定義Standard和Rule,如圖所示

%MINMAX%、%LISTVAL%、%UPPER%、%LOWER%
在Standard Check中定義的Minimum 和Maximum、List values 、uppervalues、lowervalues
%RULES%
在Rules特性窗口Expression選項(xiàng)卡中定義的有效性規(guī)則表達(dá)式
待續(xù)。
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
目標(biāo):
本文主要介紹數(shù)據(jù)項(xiàng)、新增數(shù)據(jù)項(xiàng)、數(shù)據(jù)項(xiàng)的唯一性代碼選項(xiàng)和重用選項(xiàng)等。
一、數(shù)據(jù)項(xiàng)
數(shù)據(jù)項(xiàng)(Data Item)是信息存儲(chǔ)的最小單位,它可以附加在實(shí)體上作為實(shí)體的屬性。
注意:模型中允許存在沒(méi)有附加至任何實(shí)體上的數(shù)據(jù)項(xiàng)。
二、新建數(shù)據(jù)項(xiàng)
1)使用“Model”---> Data Items 菜單,在打開(kāi)的窗口中顯示已有的數(shù)據(jù)項(xiàng)的列表,點(diǎn)擊 “Add a Row”按鈕,創(chuàng)建一個(gè)新數(shù)據(jù)項(xiàng),如圖所示

2)當(dāng)然您可以繼續(xù)設(shè)置具體數(shù)據(jù)項(xiàng)的Code、DataType、Length等等信息。這里就不再詳細(xì)說(shuō)明了。
三、數(shù)據(jù)項(xiàng)的唯一性代碼選項(xiàng)和重用選項(xiàng)
使用Tools--->Model Options->Model Settings。在Data Item組框中定義數(shù)據(jù)項(xiàng)的唯一性代碼選項(xiàng)(Unique Code)與重用選項(xiàng)(Allow Reuse)。
注意:
如果選擇Unique Code復(fù)選框 ,每個(gè)數(shù)據(jù)項(xiàng)在同一個(gè)命名空間有唯一的代碼,而選擇Allow reuse ,一個(gè)數(shù)據(jù)項(xiàng)可以充當(dāng)多個(gè)實(shí)體的屬性。

四、在實(shí)體中添加數(shù)據(jù)項(xiàng)
1)雙擊一個(gè)實(shí)體符號(hào),打開(kāi)該實(shí)體的屬性窗口。
2)單擊Attributes選項(xiàng)卡,打開(kāi)如下圖所示窗口

注意:
Add a DataItem 與 Reuse a DataItem的區(qū)別在于
Add a DataItem 情況下,選擇一個(gè)已經(jīng)存在的數(shù)據(jù)項(xiàng),系統(tǒng)會(huì)自動(dòng)復(fù)制所選擇的數(shù)據(jù)項(xiàng)。如果您設(shè)置了UniqueCode選項(xiàng),那系統(tǒng)在復(fù)制過(guò)程中,新數(shù)據(jù)項(xiàng)的Code會(huì)自動(dòng)生成一個(gè)唯一的號(hào)碼,否則與所選擇的數(shù)據(jù)項(xiàng)完全一致。
Reuse a DataItem情況下,只引用不新增,就是引用那些已經(jīng)存在的數(shù)據(jù)項(xiàng),作為新實(shí)體的數(shù)據(jù)項(xiàng)。
待續(xù)。
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
目標(biāo):本文主要介紹聯(lián)系的定義及使用。
一、 聯(lián)系
聯(lián)系(Relationship)是指實(shí)體集這間或?qū)嶓w集內(nèi)部實(shí)例之間的連接。
實(shí)體之間可以通過(guò)聯(lián)系來(lái)相互關(guān)聯(lián)。與實(shí)體和實(shí)體集對(duì)應(yīng),聯(lián)系也可以分為聯(lián)系和聯(lián)系集,聯(lián)系集是實(shí)體集之間的聯(lián)系,聯(lián)系是實(shí)體之間的聯(lián)系,聯(lián)系是具有方向性的。聯(lián)系和聯(lián)系集在含義明確的情況之下均可稱(chēng)為聯(lián)系。
按照實(shí)體類(lèi)型中實(shí)例之間的數(shù)量對(duì)應(yīng)關(guān)系,通常可將聯(lián)系分為4類(lèi),即一對(duì)一(ONE TO ONE)聯(lián)系、一對(duì)多(ONE TO MANY)聯(lián)系、多對(duì)一(MANY TO ONE)聯(lián)系和多對(duì)多聯(lián)系(MANY TO MANY)。
二、 建立聯(lián)系
在CDM工具選項(xiàng)板中除了公共的工具外,還包括如下圖所示的其它對(duì)象產(chǎn)生工具。

在圖形窗口中創(chuàng)建兩個(gè)實(shí)體后,單擊“實(shí)體間建立聯(lián)系”工具,單擊一個(gè)實(shí)體,在按下鼠標(biāo)左鍵的同時(shí)把光標(biāo)拖至別一個(gè)實(shí)體上并釋放鼠標(biāo)左鍵,這樣就在兩個(gè)實(shí)體間創(chuàng)建了聯(lián)系,右鍵單擊圖形窗口,釋放Relationship工具。如下圖所示

三、 四種基本的聯(lián)系
即一對(duì)一(ONE TO ONE)聯(lián)系、一對(duì)多(ONE TO MANY)聯(lián)系、多對(duì)一(MANY TO ONE)聯(lián)系和多對(duì)多聯(lián)系(MANY TO MANY)。如圖所示

四、 其他幾類(lèi)特殊聯(lián)系
除了4種基本的聯(lián)系之外,實(shí)體集與實(shí)體集之間還存在標(biāo)定聯(lián)系(Identify Relationship)、非標(biāo)定聯(lián)系(Non-Identify RelationShip)和遞歸聯(lián)系(Recursive Relationship)。
標(biāo)定聯(lián)系:
每個(gè)實(shí)體類(lèi)型都有自己的標(biāo)識(shí)符,如果兩個(gè)實(shí)體集之間發(fā)生聯(lián)系,其中一個(gè)實(shí)體類(lèi)型的標(biāo)識(shí)符進(jìn)入另一個(gè)實(shí)體類(lèi)型并與該實(shí)體類(lèi)型中的標(biāo)識(shí)符共同組成其標(biāo)識(shí)符時(shí),這種聯(lián)系則稱(chēng)為標(biāo)定聯(lián)系,也叫依賴(lài)聯(lián)系。反之稱(chēng)為非標(biāo)定聯(lián)系,也叫非依賴(lài)聯(lián)系。
注意:
在非標(biāo)定聯(lián)系中,一個(gè)實(shí)體集中的部分實(shí)例依賴(lài)于另一個(gè)實(shí)例集中的實(shí)例,在這種依賴(lài)聯(lián)系中,每個(gè)實(shí)體必須至少有一個(gè)標(biāo)識(shí)符。而在標(biāo)定聯(lián)系中,一個(gè)實(shí)體集中的全部實(shí)例完全依賴(lài)于另個(gè)實(shí)體集中的實(shí)例,在這種依賴(lài)聯(lián)系中一個(gè)實(shí)體必須至少有一個(gè)標(biāo)識(shí)符,而另一個(gè)實(shí)體卻可以沒(méi)有自己的標(biāo)識(shí)符。沒(méi)有標(biāo)識(shí)符的實(shí)體用它所依賴(lài)的實(shí)體的標(biāo)識(shí)符作為自己的標(biāo)識(shí)符。
換句話來(lái)理解,在標(biāo)定聯(lián)系中,一個(gè)實(shí)體(選課)依賴(lài) 一個(gè)實(shí)體(學(xué)生),那么(學(xué)生)實(shí)體必須至少有一個(gè)標(biāo)識(shí)符,而(選課)實(shí)體可以沒(méi)有自己的標(biāo)識(shí)符,沒(méi)有標(biāo)標(biāo)識(shí)符的實(shí)體可以用實(shí)體(學(xué)生)的標(biāo)識(shí)符作為自己的標(biāo)識(shí)符。

遞歸聯(lián)系:
遞歸聯(lián)系是實(shí)體集內(nèi)部實(shí)例之間的一種聯(lián)系,通常形象地稱(chēng)為自反聯(lián)系。同一實(shí)體類(lèi)型中不同實(shí)體集之間的聯(lián)系也稱(chēng)為遞歸聯(lián)系。
例如:在“職工”實(shí)體集中存在很多的職工,這些職工之間必須存在一種領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的關(guān)系。又如“學(xué)生”實(shí)體信中的實(shí)體包含“班長(zhǎng)”子實(shí)體集與“普通學(xué)生”子實(shí)體集,這兩個(gè)子實(shí)體集之間的聯(lián)系就是一種遞歸聯(lián)系。創(chuàng)建遞歸聯(lián)系時(shí),只需要單擊“實(shí)體間建立聯(lián)系”工具從實(shí)體的一部分拖至該實(shí)體的別一個(gè)部分即可。如圖

五、 定義聯(lián)系的特性
在兩個(gè)實(shí)體間建立了聯(lián)系后,雙擊聯(lián)系線,打開(kāi)聯(lián)系特性窗口,如圖所示。

六、 定義聯(lián)系的角色名
在聯(lián)系的兩個(gè)方向上各自包含有一個(gè)分組框,其中的參數(shù)只對(duì)這個(gè)方向起作用,Role Name為角色名,描述該方向聯(lián)系的作用,一般用一個(gè)動(dòng)詞或動(dòng)賓組表。
如:“學(xué)生 to 課目 ” 組框中應(yīng)該填寫(xiě)“擁有”,而在“課目To 學(xué)生”組框中填寫(xiě)“屬于”。(在此只是舉例說(shuō)明,可能有些用詞不太合理)。
七、 定義聯(lián)系的強(qiáng)制性
Mandatory 表洋這個(gè)方向聯(lián)系的強(qiáng)制關(guān)系。選中這個(gè)復(fù)選框,則在聯(lián)系線上產(chǎn)生一個(gè)聯(lián)系線垂直的豎線。不選擇這個(gè)復(fù)選框則表示聯(lián)系這個(gè)方向上是可選的,在聯(lián)系線上產(chǎn)生一個(gè)小圓圈。
八、 有關(guān)聯(lián)系的基數(shù)
聯(lián)系具有方向性,每個(gè)方向上都有一個(gè)基數(shù)。
舉例,
“系”與“學(xué)生”兩個(gè)實(shí)體之間的聯(lián)系是一對(duì)多聯(lián)系,換句話說(shuō)“學(xué)生”和“系”之間的聯(lián)系是多對(duì)一聯(lián)系。而且一個(gè)學(xué)生必須屬于一個(gè)系,并且只能屬于一個(gè)系,不能屬于零個(gè)系,所以從“學(xué)生”實(shí)體至“系”實(shí)體的基數(shù)為“1,1”,從聯(lián)系的另一方向考慮,一個(gè)系可以擁有多個(gè)學(xué)生,也可以沒(méi)有任何學(xué)生,即零個(gè)學(xué)生,所以該方向聯(lián)系的基數(shù)就為“0,n”,如圖所示

待續(xù)。
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
目標(biāo):
本文主要介紹如何定義實(shí)體的主、次標(biāo)識(shí)符。
一、標(biāo)識(shí)符
標(biāo)識(shí)符是實(shí)體中一個(gè)或多個(gè)屬性的集合,可用來(lái)唯一標(biāo)識(shí)實(shí)體中的一個(gè)實(shí)例。要強(qiáng)調(diào)的是,CDM中的標(biāo)識(shí)符等價(jià)于PDM中的主鍵或候選鍵。
每個(gè)實(shí)體都必須至少有一個(gè)標(biāo)識(shí)符。如果實(shí)體只有一個(gè)標(biāo)識(shí)符,則它為實(shí)體的主標(biāo)識(shí)符。如果實(shí)體有多個(gè)標(biāo)識(shí)符,則其中一個(gè)被指定為主標(biāo)識(shí)符,其余的標(biāo)識(shí)符就是次標(biāo)識(shí)符了。
二、如果定義主、次標(biāo)識(shí)符
1)選擇某個(gè)實(shí)體雙擊彈出實(shí)體的屬性對(duì)話框。在Identifiers選項(xiàng)卡上可以進(jìn)行實(shí)體標(biāo)識(shí)符的定義。如下圖所示

2)選擇第一行“主標(biāo)識(shí)符”,點(diǎn)擊屬性按鈕或雙擊第一行“主標(biāo)識(shí)符”,彈出屬性對(duì)話框,如圖所示

3)選擇"Attributes"選項(xiàng)卡,再點(diǎn)擊“Add Attributes”工具,彈出如圖所示窗口,選擇某個(gè)屬性作為標(biāo)識(shí)符就行了。

待續(xù)。