1. 程式人生 > >使用Powerdesigner的逆向工程生成PD

使用Powerdesigner的逆向工程生成PD

使用Powerdesigner的逆向工程生成PD

在資料建模過程中,我們建立概念資料模型,通過正向工程生成物理資料模型,生成資料庫建庫指令碼,最後將物理資料模型生成關係資料庫。系統資料庫設計人員希望能夠將資料庫設計和關係資料庫生成無縫地整合起來,如何保證物理資料模型與其對應資料庫之間的雙向同步成為資料建模非常關鍵的一點。

Powerdesigner作為強大的Case工具,為我們提供了方便的逆向工程特性。可以將目前所有流行的後端資料庫(包括SybaseDB2Oracle)的結構資訊通過逆向工程加入到PowerDesigner的物理資料模型和概念資料模型中,包括表、索引、觸發器、檢視等。

本文介紹的內容僅涉及PDM(物理資料模型)的逆向工程。

PDM中的逆向工程是指從現有DBMS的使用者資料庫或現有資料庫SQL指令碼中生成PDM的過程。逆向工程有兩種物件:1)通過ODBC資料來源連線資料庫 2) 現有資料庫sql指令碼。

本文示例的系統環境如下:

1資料庫已建立完畢,訪問使用者和密碼設定完成。資料庫為Oracle9i

2 ODBC資料來源已由oracle Net Configuration Assistant 建立,本地網路命名服務“Database”。

3 sql指令碼示例crebas.sql

4 Powerdesigner9.5已安裝完成。一、

通過資料來源連線資料庫逆向工程生成PDM

1配置使用者資料庫連線引數

選擇Database->configure connections,轉到system dsn標籤,

點選Add按鈕,選資料庫型別Oracle,點選完成。顯示如下:輸入DataSource NamePDMTest”;輸入ServerNameDatabase”,配置完成。

點選“Test Connect”輸入ServerNameDatabase”,使用者名稱和密碼,若連線成功,顯示如下:

以後每次連線,選擇Database?connect,選擇odbc資料來源,輸入ServerNameDatabase

”,使用者名稱和密碼。若無提示,則說明連線成功。同時,可以通過Database?Connection Information 檢視連線資訊。

2設定逆向工程選項,生成pdm

建立一個PDM檔案,選擇與之匹配的資料庫型別“oracle9i”。

選擇Database?Reverse Engineer Database,彈出Database Reverse Engineering對話方塊,選Using an ODBC data sourceODBC資料來源“PDMTest

點選確定後,顯示此資料庫中所有表、檢視、使用者。根據需要選擇後,轉換成pdm

3檢視資料

對於生成好的PDM,選擇一個表圖形符號,點選右鍵,選擇View Data,就可以訪問表中的資料了。

二、通過SQL指令碼逆向工程生成PDM

1資料庫SQL指令碼檔案crebas.sql。下為指令碼例項:

/*==============================================================*/

/* Database name: PhysicalDataModel_1 */

/* DBMS name: ORACLE Version 9i */

/* Created on: 2003-07-13 10:49:08 */

/*==============================================================*/

/*==============================================================*/

/* Table: "class" */

/*==============================================================*/

create table "class" (

"classID" NUMBER(2) not null,

"className" VARCHAR2(24),

constraint PK_CLASS primary key ("classID")

)

/

/*==============================================================*/

/* Table: "student" */

/*==============================================================*/

create table "student" (

"studentID" NUMBER(10) not null,

"studentName" VARCHAR2(4),

"classID" NUMBER(2),

constraint PK_STUDENT primary key ("studentID")

)

/

alter table "student"

add constraint FK_STUDENT_REFERENCE_CLASS foreign key ("classID")

references "class" ("classID")

/

2建立一個pdm,選擇Database?Reverse Engineer Database,選擇Using script files

3看到由指令碼自動生成相關的PDM如下所示: