1. 程式人生 > >PowerDesigner之PDM(物理概念模型)各種屬性建立如PK,AK等

PowerDesigner之PDM(物理概念模型)各種屬性建立如PK,AK等

表達式 下拉列表框 如何 reference 概述 selection ima int uil

一、PDM概述

  PDM(物理數據模型),通俗地理解,就是在PowerDesigner中以圖形化的方式展示和設計數據庫。

  PDM中涉及到的基本概念包括:

  • 表;
  • 列;
  • 視圖;
  • 主鍵;
  • 候選鍵;
  • 外鍵;
  • 存儲過程;
  • 觸發器;
  • 索引;
  • 完整性檢查約束;

  以上這些都是數據庫的概念,不適合在PowerDesigner裏面表述。

二、創建PDM

  創建PDM有4中方法:

  • 使用設計環境直接創建PDM;
  • 從現有數據庫或通過SQL腳本逆向工程創建PDM;
  • 從CDM采用內部模型生成方法建立PDM;
  • 從OOM中的類圖采用模型的內部生成方法建立PDM;

  利用CDM生成PDM是最符合設計思路的方法,但在很多企業開發過程中,都是在設計環境中直接建立PDM,因為大部分企業沒錢發那麽多工資你設計那麽多圖。

  1、在設計環境直接建立PDM

  在設計環境直接建立PDM的步驟如下:

  1、在PowerDesigner主窗口選擇File->New Model,在打開的創建左側選擇Physical Data Model選項

  技術分享

  2、右側選項的意義

  • Model name:模型名稱;
  • DBMS:數據庫類型,也可以單擊後面的文件夾按鈕,選擇“瀏覽文件夾”,選擇xml文件作為目標(CDM轉PDM);
  • Share the DBMS definition:共享數據庫定義;
  • Copy the DBMS definition in model:從數據庫定義中拷貝,用於CDM轉PDM;
  • First Diagram:創建一個PDM,默認會有一個Diagram,這裏是選擇這個Diagram的類型;

  3、Extended Model Definitions選項卡的意義

  當通過PowerBuilder來開發時,若選中PowerBuilder則生成的PDM可以從Catalog表中獲取表和列的擴展屬性。

  技術分享

  4、點擊“確定”按鈕,打開新建的PDM設計窗口

  技術分享

  工作區包括左側的瀏覽窗口、右側的設計窗口、下側的輸出窗口和浮動的工具窗口,可以利用工具窗口中的圖標在設計窗口中設計PDM。

  5、各種圖標的作用

  技術分享

  在建立PDM之前,可以定義PDM的顯示參數,以滿足PDM的顯示需求。

  2、定義PDM的顯示參數

  1、Tools->Display Preferences打開設置窗口,在General節點中設置整個模型的顯示參數。

  技術分享

  各個選項含義如下:

  • Window color:窗口顏色;
  • Unit:長度度量單位。Inch(英尺)、Millineter(毫米)和Pixel(像素);
  • Grid:網格線;
  • Diagram:
  • Show page delimiter:顯示分頁線;
  • Constrain Labels:是否需要限定選項卡和連接對象的距離;
  • Content節點:設置在圖形窗口PDM中每類對象的顯示樣式的參數。
  • Format節點:設置每類對象的顯示格式,如大小、變現顏色、填充顏色、陰影、字體等;
  • Modify:按鈕可以進行更詳細的設置;

  3、定義PDM的模型屬性

  在Model Properties(模型屬性)窗口中修改模型屬性的方法如下:

  1、選擇Model->Model Propertise命令或右擊圖形窗口的背景,在彈出的快捷菜單中選擇Properties命令

  技術分享

  各個選項的含義如下:

  • Name:名稱;
  • Code:代碼;
  • Comment:註釋;
  • File name:文件名;
  • Author:作者;
  • Version:版本;
  • DBMS:數據庫管理系統
  • Database:數據庫名稱
  • Default diagram:打開模型時默認顯示的圖;

  2、單擊Database後面的Create圖標,進入Database Propertise窗口。在窗口中可以配置創建數據庫選項

  • General:通用屬性;
  • Name:數據庫的名稱;
  • Code:數據庫的代碼;
  • DBMS:數據庫的類型;
  • Rules:規則;
  • Script:插入到數據庫SQL腳本開始和結束為止的腳本;
  • Physical Options:數據庫可利用的物理選項;

三、創建表

  創建表的方式,只點擊工具欄的Table圖標就可以了。

  其他屬性頁的意義分別為:

  Column(列)、Trigger(觸發器)、Keys(鍵)、Procedure(存儲過程)、Rules(規則)、Indexes(索引)和Check(約束);

  技術分享

四、創建列

  1、創建列

  1、列的基本屬性

  列的基本屬性如下:

  • Name:列名;
  • Code:列的代碼;
  • Data Type:數據類型;
  • Domain:以域作為數據類型;
  • Comment:註釋;
  • M:非空;
  • P:主鍵;
  • D:在圖形窗口顯示;

  技術分享

  技術分享

  選中某一列,單擊Propertise圖標(或雙擊列),打開Column Properties窗口,在其中可以定義列的其他屬性。

  技術分享

  General選項卡屬性如下:

  • Displayed:是否在圖形符號中顯示;
  • Foreign Key:外部鍵;
  • Computed:計算列;
  • Mandatory:非空;
  • Identiry:自增;

  Detail選項卡可以定義的屬性如下:

  • Column fill parameters:Null values(允許空值列個數的百分比)、Distince values(允許不同值列個數的百分比)和Average length(列值的平均長度);
  • Test data parameters:Profile(測試數據的取值)。單擊右面的List按鈕,可以進一步定義測試的取值方式,可以是字符型、數值型或日期/時間型;
  • Computed expression:定義計算列表達式;

  2、創建計算列

  計算列是通過表達式對其他列的值進行運算後得到的結果。

  (1)、在列的通用的數據約束定義窗口中,單擊Computed expression列表框右面的Edit With SQL Editor按鈕,彈出計算列表達式定義窗口:

  技術分享

  技術分享

  當數據庫選擇的是MySQL時,是沒有這個框的(因為是MySQL沒有計算列這個概念)。

  3、約束

  Standard Checks選項卡,用於在其中定義約束。

  • Values:Minimum(最小值)、Maximum(最大值)和Default(默認值)。
  • Characteristics:Format(顯示格式)、Unit(單位)、Uppercase(大寫字母)、Lowercase(小寫字母)和Cannot modify(不允許修改)。
  • List of values:定義取值列表。

  技術分享

  4、命名約束

  Additional Checks選項卡專門用於定義命名約束

  技術分享

  5、創建序列

  雙擊列,進入列屬性

  技術分享

  技術分享

  • Start with:起始數字
  • Min value:最小值;
  • Max value:最大值;
  • Incremented by:增量值;

五、創建參照及參照完整性

  參照是父表和子表之間的連接,它定義了兩個表中對應列之間的參照完整性約束。

  1、參照模型設置

  模型選項決定了參照的特性,可以通過Tools->Model Options打開模型選項(Model Options)窗口。

  技術分享

  建議那兩個Auto什麽的屬性還是的勾去掉吧,手動搞,好像有點難看的明白這兩個選項的意思。

  模型項與連接的關系

  技術分享

  選項意義:

  • Unique code:表示模型中的參照代碼唯一;
  • Auto-reuse columns:表示同父表主鍵擁有相同的代碼列或子表列不是其他表的外鍵,則該列被當做子表的外部鍵;
  • Auto-migrate columns:表示產生參照時,父表的主鍵將遷移到子表中成為外部鍵;
  • Domain:表示如果選中Auto-migrate columns和Domain復選框,在建立參照時,主鍵的域將遷移到外部鍵上;
  • Check:表示如果選中Auto-migrate columns和Check復選框,在建立參照時,主鍵的檢查參數將遷移到外部鍵上;
  • Rules:表示如果選中Auto-migrate columns和Rules復選框,在建立參照時,主鍵的業務規則將遷移到外部鍵上;
  • Primary Key:表示參照連接主鍵列到外部鍵列;
  • User-defined:表示參照不產生連接;

  Auto兩個復選框的意義:

  技術分享

  2、創建參照及定義相關屬性

  創建參照的具體方法:

  1.在PDM模型的Palette工具欄中單擊Reference圖標;

  技術分享

  2.雙擊新建立的連接,打開Reference Properties窗口,在其中可以修改參照的各個屬性:

  技術分享

  • Name:參照名;
  • Code:參照代碼;
  • Comment:註釋;
  • Parent table:參照的父表;
  • Child table:參照的子表;
  • Generate:是否在數據庫中生成參照;
  • Joins選項卡可以定義表與表之間的連接;

  3.Join(連接)可以用來連接主鍵、候選鍵和外部鍵,或在用戶指定的列之間建立連接;

  技術分享

  4.連接可以通過上節的模型選項自動建立,也可以手工建立;如果手工指定,也可以利用Reuse Columns圖標、Migrate Columns圖標和Cancel Migration圖標實現列重用或遷移。

  • Reuse Columns:重用子表中存在並與父表相同的列;
  • Migrate Columns:表示將父表的主鍵遷移到子表中作為外部鍵;
  • Cancel Migration:表示刪除從父表中遷移到子表的所有列;

  5.Integrity選項卡用來定義參照完整性。主要用於設置父表中修改或刪除參照列的數據對子表的影響。

  技術分享

  • Constraint name:約束名,生成SQL腳本時使用此名稱。
  • Implementation:實現方式;

  選項意義:
  Declarative:聲明式,吧參照完整性約束定義為一種特殊引用。
  Trigger:通過觸發器在相應DBMS中維護數據的有效性;

  • Cardinality:基數。表示父表中的每個實例,子表中可能擁有的實例的最少和最多數。
  • Update/Delete constraint:表示修改父表列值後子表列值如何修改:

  None:修改或刪除父表,對子表無影響;
  Restrict:如果子表中存在一個或多個對應值,不能修改或刪除父表中的值;
  Cascade:修改或刪除父表中值的同事將子表中對應的值也修改或刪除;
  Set null:修改或刪除父表中值的同時將子表中對應的值置為NULL;
  Set Default:修改或刪除父表中值的同事將子表中對應的值置為默認值;

  • Mandatory parent:是否強制子表中的外部鍵列值都必須在父表中有相應的列值;
  • Check on commit:是否在提交時驗證參照完整性;
  • Change parent allowed:是否允許修改父表中參照列的值;

  6.此外,還可以修改參照圖符號上顯示的文本信息,以滿足不同系統的需求。

  此PDM模型窗口中選擇Tools->Display Preferences命令,打開Display Preferences窗口,單擊Object View->Reference節點。

  技術分享

  • Name:參照的名稱;
  • Constraint name:參照完整性約束的名稱;
  • Join:兩個表相同列的連接名稱;
  • Rederential integrity:參照完整性;
  • Cardinality:基數;
  • Implementation:參照完整性實現的方式;

  設置參照完整性後的例子如下:

  技術分享

六、創建域

  在PDM中,使用域有助於識別信息的類型,易於使不同表中列的數據特征標準化。域為列定義了一組有效的值,可以把Data Type、Check、Rule、Mandatory等信息關聯到域上。

  1、創建域

  1、打開PDM模型,選擇Model->Domains命令,在空白行單擊,可以增加一行。分別在Name、Code和DataType欄中輸入名稱、代碼和數據類型;

  技術分享
  2、單擊空白行可以增加一行;
  3、雙擊行前面的箭頭,可以進入屬性設置:

  技術分享

  其中General選項卡主要意思如下:

  • Name:名稱;
  • Code:代碼;
  • Comment:註釋;
  • Data type:數據類型;
  • Length:長度;
  • Profile:測試數據定義文件;

  其他選項卡與前面的類似。

  2、使用抽象數據類型

  在為域選擇數據類型時,可以指定抽象數據類型。抽象數據類型是用戶自定義的數據類型。ADT數據類型因數據庫系統而存在差異,在PowerDesigner系統中允許使用的ADT數據類型如下表:

類型 描述 示例
Array 固定長度元素的集合 Varray Oracle8
List 不固定長度對象的集合 Table Oracle8
Java Java類 Java Adaptive Server Anywhere
Object 包含屬性列表的對象 OBJECT Oracle8
Structured 包含屬性列表的結構體 NAMED ROW TYPEDB2
CLR .Net通用語言運行時 Microsoft SQL Server 2005

    

  1、普通的抽象數據類型

  打開PDM模型,選擇Model->Abstract Data Types命令。

  技術分享

  雙擊行進入

  技術分享

  2、OBJECT類型的抽象數據類型

  如果在Type下拉列表框中選擇OBJECT選項,即可建立一個抽象數據類型對象。

  技術分享

  選擇Attributes選項卡,在Name、Code和Data Type欄中分別輸入。

  技術分享

七、創建表中的鍵

  鍵是表中可以唯一識別一條記錄的一個或多個列的集合。PDM支持兩種類型的鍵:主鍵、候選鍵。

  1、主鍵

  定義主鍵很簡單,選中作為主鍵列的P復選框即可。

  技術分享

  如果利用了逆向工程,從已經存在的數據庫逆向到PDM模型,可能無法生成主鍵或者在你想工程數據庫時沒有選擇重建主鍵選項,此時需要重建主鍵。

  重建主鍵的方法:

  1、選擇Tools->Rebuild Objects->Rebuild Primary Keys命令。
  2、打開Primary Key Rebuild窗口;
  3、選擇要重建主鍵表前的復選框,確定;

  技術分享

  2、候選鍵

  候選鍵(Alternate Key)指一列或多列,表中每條記錄的列值都是唯一的。每個候選鍵都在數據庫中生成唯一索引或唯一約束。

  1、打開表的Keys選項卡,在空白的Name或Code欄中單擊,系統自動增加一個新鍵。設置鍵的名稱和代碼;

  2、雙擊新鍵行的行首箭頭,在打開的Key Properties(鍵屬性)窗口中選擇Columns選項卡,該選項卡列出了鍵包含的所有列;

  3、單擊Add Columns圖標,在窗口中列出了表中包含的所有列,選擇一個或幾個需要的列;

  技術分享

  3、鍵的約束名

  利用PDM生成數據庫腳本時,鍵也包含在其中,為了方別識別和修改,需要為其定義統一的約束名。如果不指定,系統會自動建立一個默認的。

  選擇定義了主鍵的表,雙擊鼠標打開表屬性,選擇Keys選項卡,顯示所有的主鍵和候選鍵,選中其中一個,單擊其中的Properties,在Constraint name文本框中輸入鍵的名稱。

  技術分享

八、創建索引

  1、創建索引

  建立索引的具體方法如下:

  1、在表屬性窗口,選擇Indexes選項卡,空白行單擊,系統會自動給出索引的名稱和代碼,可以根據需要進行修改。
  2、單擊Properties圖標,打開Index Properties,General選項卡的條目含義為:

  • Name:索引名稱;
  • Code:索引代碼;
  • Comment:索引註釋;
  • Table:包含索引的表;
  • Type:索引的類型,普通索引、全文索引、Xml索引
  • Unique:唯一索引;
  • Cluster:聚集索引;

  3、選擇Columns選項卡,可以選擇索引包含的列;

  技術分享

  2、重建索引

  重建索引具體方法如下:

  Tools->Rebuild Objects->Rebuild Indexes命令,打開Index Rebuild(重建索引);

  技術分享

  各選項含義如下:

  • Primary key:重建主鍵索引;右邊輸入為主鍵索引名稱:%TABLE%_PK
  • Other keys:重建候選鍵索引,右邊輸入為默認的候選鍵索引名稱:%TABLE%_AK
  • Foreign key indexes:重建外部鍵索引,右邊輸入為%REFR%_FK
  • Foreign key threshold:建立外部鍵索引所需的表最小記錄數
  • Delete and Rebuild:重建索引之前刪除已存在的索引
  • Add missing indexed:只增加缺少的索引

  在Selection選項卡中選擇需要重建索引的表;

  技術分享

九、創建視圖

  創建視圖有兩種方法:

  1、選擇表,Tools->Create View命令,建立包含所選表全部字段的視圖;
  2、建一個空視圖,然後選擇表或直接定義SQL語句。

  第二種方式操作如下:

  用工具欄的View圖標,創建一個視圖,雙擊進入視圖View Properties(視圖屬性)窗口。

  技術分享

  其General選項卡的基本屬性含義如下:

  • Name:視圖的名稱;
  • Code:視圖的代碼;
  • Comment:視圖的用途;
  • Usage:視圖的用途;
  • query only:只用於查詢;
  • Updateable:用於查詢和修改;
  • With check option:在視圖插入數據時要收到表中已定義約束的限制;
  • Dimensional Type:維度類型;
  • Generate:是否在數據庫中生成視圖;
  • User-defined:在用戶自定義視圖時是否訪問查詢編輯器;

  選擇SQL Query選項卡,為視圖定義對應的SQL語句。

  點擊Edit With SQL Editor進入SQL編輯器能夠非常方便地書寫SQL語句。

  技術分享

文章轉載自:http://www.cnblogs.com/kissdodog/p/4140244.html

PowerDesigner之PDM(物理概念模型)各種屬性建立如PK,AK等