一. PDM 介紹
物理數據模型(Physical Data Model)PDM,提供了系統初始設計所需要的基礎元素,以及相關元素之間的關系;數據庫的物理設計階段必須在此基礎上進行詳細的后台設計,包括數據庫的存儲過程、操作、觸發、視圖和索引表等;
PowerDesigner能夠用於創建多種不同類型的DBMS(數據庫管理系統),每種類型的DBMS都包含一個標准定義的文件用於在PD和DBMS中確定彼此的關聯而提供一套接口;創建不同的DBMS可以生成不同的數據庫腳本。
物理數據模型(PDM)的主要功能:
1、可以將數據庫的物理設計結果從一種數據庫移植到另一種數據庫;
2、可以通過反向工程將已經存在的數據庫物理結構重新生成物理模型或概念模型;
3、可以定制生成標准的模型報告;
4、可以轉換為OOM;
5、完成多種數據庫的詳細物理設計(涵蓋常用的各種數據庫的DBMS),並生成數據庫對象的.sql腳本;
1.1 PDM中的基本概念:
1) 表
2) 列
3) 視圖
4) 主鍵
5) 候選鍵
6) 外鍵
7) 存儲過程
8) 觸發器
9) 索引
10)完整性檢查約束
1.2 創建PDM對象:
1) 創建表
2) 創建列
3) 創建創建域
4) 創建視圖
5) 創建主鍵
6) 創建候選鍵
7) 創建外鍵
8) 創建索引
9) 創建完整性檢查約束
10)創建存儲過程
11)創建觸發器
1.3 管理PDM對象:
1) 創建用戶
2) 設置表的用戶
3) 設置表的物理屬性
1.4 檢查PDM:
1) 檢查選項設置
(1)Package(包)
(2)Table(表)
(3)Column(列)
(4)Index(索引)
(5)Key(鍵)
(6)Domain(域)
(7)View(視圖)
(8)Reference(參照)
(9)Trigger(觸發器)
(10) Procedure(存儲過程)
(11) User(用戶)
(12) File(文件)
2)更正錯誤/警告
1.5 觸發器和存儲過程/函數:
1)創建觸發器
設定觸發器類型(Insert、Update、Delete)
2)創建存儲過程/函數
1.6 生成數據庫
1)選擇Database→GenerateDatabase菜單項
2)選項設置
(1)數據庫
(2)用戶
(3)域
(4)表和列
主鍵、候選鍵
外鍵
索引
觸發器
(5)存儲過程
3)格式設置
4)選擇對象
(1)查看包
(2)全選/全部取消選擇
(3)使用圖中選中的對象
1.7 創建PDM:
1)新建PDM
(1)選擇File→New Model菜單項
(2)在左側模型類型列表中選擇Physical Data Model
(3)在右側輸入模型名稱、在DBMS下拉列表中選擇DBMS類型、在First diagram下拉列表中選擇Physical Diagram
2)正向工程:從CDM/LDM生成PDM
3)逆向工程:從現有DB 逆向生成PDM
正向工程和逆向工程生成PDM會單獨整理成一片文章,這篇不做說明。
1.8 PDM 生成腳本:
PDM我們最終是需要導入我們的數據庫中去。 PDM 可以生成不同數據庫對應的sql語句,或者直接講腳本部署到數據庫中,這個在generate database 的時候可以進行選擇。
一般是先生成sql 腳本,然后到數據庫里執行sql腳本。
二. PDM 使用示例
2.1 創建新的PDM
2.2 設置PDM的顯示參數
Tools --> Display Preferences
2.3 設置PDM的模型屬性(一般在發布資源或者提交設計的時候需要設置)
Model –> Model Properties
2.4 設置PDM模型選項
Tools--> Model Options
2.5 創建表
使用PD 的工具面板,選中表后,在工作區創建一個表,右擊釋放表,在雙擊表,進行編輯工作。
2.6 表列以及其設置
2.7 詳情設置
2.8 標准檢查約束
2.9 完成了一個表的設計
創建參照完整性(參照是父表和子表間的連接,定義了兩個表中對應列間的參照完整性約束,外鍵聯系主鍵,兩者之間建立參照)
根據參照連接的對應性質的差別,可將連接分成鍵連接和用戶指定的列連接:
1)鍵連接:把父表中的主鍵或候選鍵連接到子表中的外鍵上;
2)用戶指定的列連接:把父表中的一個或多個列連接到子表中相應的列上;(比較少用)
2.10 設置兩個表之間的關系(設置兩個表之間的參照)
2.11 連接主鍵、候選鍵和外鍵,或者在用戶指定的列之間建立連接
2.12 定義參照完整性
2.13 域設置(有助於識別信息的類型,使得不同表中列的山上特性標准化,通過域可以將數據類型、檢查規則、強制性等信息關聯到域上)
Model --> Domains
2.14 重建表中的鍵
Tools --> Rebuild Objects
2.15 創建索引
雙擊表,打開編輯,選中對應的列,在點屬性(第二步)。
2.16 創建視圖
http://www.cndba.cn/Dave/article/1178
在工具面板選中視圖后,創建一個視圖。雙擊視圖,打開配置。
在SQL Query頁面,定義視圖的SQL語句
1、Union合並兩個或多個Select語句,數據不重復;
2、Union All合並兩個或多個Select語句,數據可重復;
3、Intersect合並兩個或多個Select語句,數據顯示交集;
4、Minus合並兩個或多個Select語句,數據顯示補集;
單擊Query欄右邊Edit編輯SQL
完成實例
三. 生成sql腳本
一般來說都是先畫出CDM的E-R,然后將CDM 轉成PDM。 PDM 中的對象與我們庫中的對象一致。
對於PDM 的部署有兩種方法:
(1) 生成SQL 腳本
(2) 直接將腳本部署到數據庫上,即直接在庫上把我們的對象創建好
Database --> Generate Database, 彈出如下窗口:
Script generation: 是生成SQL 腳本,one file on是否需要按照表生成許多個sql(默認選上,即不需要)
Direct generation: 是直接在數據庫中執行腳本,這2者只能選一個。 一般直接生成SQL 腳本。
Automatic archive: 生成sql同時生成apm文件。
Check model:powerdesigner有定義每種數據庫的表名、字段名等名字的最大長度的,該長度用於powerdesigner作check model的,但是該定義的長度和數據庫實際允許的長度不一定相同,如果你希望能通過pd的檢查,可以修改pd中的設置(pd對不同數據庫的這種約定實際是在保存在一個xml文件中,擴展名為.xdb)!或者你可以直接在生成數據庫時選擇不check model.