1. 程式人生 > >PowerDesigner 正向工程 和 逆向工程 說明

PowerDesigner 正向工程 和 逆向工程 說明

一. 正向工程與逆向工程說明

在前面幾篇裡介紹了幾個PowerDesigner的常用模型,參考:

正向工程和逆向工程就是上面幾個模型相互之間轉換的過程。

正向工程:

        CDM—>PDM

PDM—> Database

PDM—>OOM

從CDM 到PDM 也是軟體工程中推薦的一種方法,不過在實際的專案中,很少有公司會按照這個流程來走,甚至連E-R圖都不畫,直接上來就建表。

逆向工程:

(1)    從處理語言(Process Language)逆向生成業務處理模型(BPM)

(2)    從物件語言(Object Language)逆向生成面向物件模型(OOM)

(3)    從資料庫(Database)或資料庫指令碼逆向生成物理資料模型(PDM)

(4)    從XML定義(XMLDifinition)逆向生成XML模型

二. 示例

在這裡演示2個例子:

(1)    CDM --> PDM --> Database.

(2)    Database --> PDM --> CDM

2.1 正向工程:CDM –>PDM –> Database示例

PD 自帶的示例CDM:

 

我們將這個CDM 轉換稱PDM:  Tools --> Generate Physical Data Model.

 


生成的PDM 圖如下:

 

再將我們的PDM 生成對應的SQL 指令碼: Database –> Generate Database

 


這裡有兩種選擇,一種是生成指令碼,即Script generation,還有一種是直接在資料庫裡生成,即directory generate,一般都是先生成SQL 指令碼,然後在資料庫執行指令碼。

以上就是一個典型的過程,也是軟體工程中建議的一種流程。

2.2 逆向工程:Database  --> PDM --> CDM

        在2.1 節講了正向工程的一些概念,即從CDMàPDM à DATABASE. 如果嚴格按照這個過程來執行,在後期還可以參考這些Model。但是在國內的軟體開發流程中,只有少數的公司會按照這個流程來走,那麼大多數情況都是拿到需求分析後直接在資料庫裡建表。

       如果某個線上的系統,就是這麼設計出來的,那麼這時候,我們要得到它的PDM,就可以使用PD的逆向工程來實現。

先連上測試環境,新建一個使用者,然後把我們2.1 節匯入的指令碼執行一遍:

C:\Users\Administrator.DavidDai>sqlplussys/[email protected] as sysdba;
SQL*Plus: Release 11.2.0.1.0 Production onTue Oct 18 13:37:17 2011
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 
Connected to:
Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production
With the Partitioning, Real ApplicationClusters, OLAP, Data Mining
and Real Application Testing options
 
SQL> create user pd identified by pd;
User created.
 
SQL> grant connect,resource,dba to pd;
Grant succeeded.

SQL> conn pd/[email protected];
Connected.
SQL> @d:\crebas.sql

指令碼執行完畢後,相關的表和索引已經建立完成,現在我們使用PD 來進行逆向工程操作。

File —> Reverse Engineer –>Database

 

修改PDM 模組名稱和 DBMS 型別,這裡是Oracle 10gR2:

 

配置資料來源:

 


Connection profile name: 生成連線檔名稱

Directory:生成連線檔案儲存位置,我這裡儲存到桌面

Connection type:連線型別,可是使用Native(tnsnames.ora)或者JDBC。




確定之後進行reverse。具體需要的時間要根據資料庫物件的多少來定。 我的這個測試,不到1分鐘就搞完了。

逆向工程之後的PDM 如下圖:

 

在將PDM 轉成CDM:

 


最終的CDM 如下:

 

正向工程與逆向的工程就這麼多,更多內容就各位同學自己研究了。

-------------------------------------------------------------------------------------------------------

版權所有. 文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任.

QQ:492913789

Email:[email protected]

Linkedin: http://cn.linkedin.com/in/tianlesoftware

DBA1 群:62697716(滿);   DBA2 群:62697977(滿)  DBA3 群:62697850(滿)  

DBA 超級群:63306533(滿);  DBA4 群:83829929(滿) DBA5群: 142216823(滿) 

DBA6 群:158654907(滿)   DBA7 群:69087192(滿)  DBA8 群:172855474

DBA 超級群2:151508914  DBA9群:102954821     聊天 群:40132017(滿)

--加群需要在備註說明Oracle表空間和資料檔案的關係,否則拒絕申請