一. 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 建立視圖
Oracle 視圖(View) 說明
http://blog.csdn.net/tianlesoftware/article/details/5530618
在工具面板選中視圖後,建立一個視圖。雙擊視圖,開啟配置。
在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.