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

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

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

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

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

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

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

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

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

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

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

四、在實體中添加數(shù)據(jù)項
1)雙擊一個實體符號,打開該實體的屬性窗口。
2)單擊Attributes選項卡,打開如下圖所示窗口

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

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

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

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

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

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

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

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

2)選擇第一行“主標識符”,點擊屬性按鈕或雙擊第一行“主標識符”,彈出屬性對話框,如圖所示

3)選擇"Attributes"選項卡,再點擊“Add Attributes”工具,彈出如圖所示窗口,選擇某個屬性作為標識符就行了。

待續(xù)。