pdm轉(zhuǎn)化為數(shù)據(jù)庫實體
pdm做好后,最終是要將其轉(zhuǎn)化為數(shù)據(jù)庫實體的。
1.確認(rèn)當(dāng)前Powerdesigner設(shè)置的dbms是否正確,即是否是我們要生成的數(shù)據(jù)庫類型,我在這里使用的是sqlserver2000:
Powerdesigner->數(shù)據(jù)庫->更改當(dāng)前dbms,選擇您的數(shù)據(jù)庫類型。

2.配置Powerdesigner與數(shù)據(jù)源的連接
Powerdesigner->數(shù)據(jù)庫->配置連接->用戶dsn(或系統(tǒng)dsn)->選擇、添加您的數(shù)據(jù)源
3.連接
Powerdesigner->數(shù)據(jù)庫->連接->設(shè)置好您剛才建立的dsn確定。
OK,設(shè)置好連接后我們就可以將pdm生成sql語句了。
4.數(shù)據(jù)庫生成
Powerdesigner->數(shù)據(jù)庫->生成數(shù)據(jù)庫->配置好(默認(rèn)就可以)后選擇確定就好了。
拿到sql腳本語句,大家都知道應(yīng)當(dāng)如何做了吧,放到sql查詢分析器里執(zhí)行吧。

Powerdesigner逆向工程從現(xiàn)有數(shù)據(jù)庫生成PDM

在數(shù)據(jù)建模過程中,我們建立概念數(shù)據(jù)模型,通過正向工程生成物理數(shù)據(jù)模型,生成數(shù)據(jù)庫建庫腳本,最后將物理數(shù)據(jù)模型生成關(guān)系數(shù)據(jù)庫,現(xiàn)在反過來,通過逆向工程將關(guān)系數(shù)據(jù)庫,生成物理數(shù)據(jù)模型。
優(yōu)點:

         在丟失數(shù)據(jù)模型或者數(shù)據(jù)庫模型同現(xiàn)有的數(shù)據(jù)庫不一致,可以通過該方法生成使用中數(shù)據(jù)庫的模型

缺點:

         還原回的模型中,可能會沒有中文注釋,沒有表外鍵對應(yīng)關(guān)系(字段還有,索引關(guān)系沒了)

前提:

        1,確認(rèn)要生成模型的數(shù)據(jù)庫是最新的,并且可以使用

        2,安裝Powerdesigner軟件

具體操作步驟:

一,建立ODBC數(shù)據(jù)源

        1, 打開系統(tǒng)ODBC數(shù)據(jù)源,位置“控制面板--管理工具--數(shù)據(jù)源(ODBC)

        2,選擇系統(tǒng)DSN,點擊添加按鈕,會彈出如下界面,選擇與數(shù)據(jù)庫相匹配的驅(qū)動程序

3,點擊完成,彈出數(shù)據(jù)源名稱(自定),和選擇你要連接的數(shù)據(jù)庫,如下圖所示

4,選擇確定后,該數(shù)據(jù)源建立成功,可以雙擊該數(shù)據(jù)源名稱進(jìn)行連接測試,如下圖所示

5,至此數(shù)據(jù)源建立完成,當(dāng)然這些也可以不用在這里建立,在powerdesigner里也可以建立,建立方法為

選擇Database->configure connections,轉(zhuǎn)到system dsn標(biāo)簽,點擊Add按鈕,選數(shù)據(jù)庫類型DB2,點擊完成。顯 示如下:輸入DataSource Name“PDMTest”;輸入ServerName“Database”, 配置完成。如下所示:

二,在Powerdesigner中逆向生成

      1,打開Powerdesigner工具,創(chuàng)建一個PDM文件,選擇與之匹配的數(shù)據(jù)庫類型“ibm db2 udb 8.x common server”。創(chuàng)建方法為:右鍵點擊左側(cè)面板中的WorkSpace---->new------>physical data nodel ,在DBMS中選擇你要的數(shù)據(jù)類型,選擇好后點擊確定,則新建立了一個工作空間。

      2,選擇Database菜單下的Reverse Engineer Database,彈出Database Reverse Engineering對話框,選Using an ODBC data source選ODBC數(shù)據(jù)源“s2ms”,如下圖所示:


3,點擊確定后,顯示此數(shù)據(jù)庫中所有表、視圖、用戶(這個選擇一下該數(shù)據(jù)庫的用戶)。根據(jù)需要選擇后,轉(zhuǎn)換成pdm。圖示如下


4,選擇好后,點擊OK,則生成模型。


三,利用腳本生成模型

       如果你不光有個正在使有的數(shù)據(jù)庫,你還有一下建立庫的腳本,那你發(fā)財了!因為用.sql的腳本生成的模型,就不存在用數(shù)據(jù)庫生成的缺點了,具體操作如下:

二、 通過SQL腳本逆向工程生成PDM

1、 數(shù)據(jù)庫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、 還是創(chuàng)建一個pdm,選擇Database--->Reverse Engineer Database,選擇Using files。


3、 看到由腳本自動生成相關(guān)的PDM如下所示:

四,生成模型后要導(dǎo)出數(shù)據(jù)庫建庫腳本

    導(dǎo)好的模型,當(dāng)然是用來修改和導(dǎo)出建庫腳本的,操作方法如下

      1,選擇database--->generate database彈出如下窗口

在用戶的none中選擇數(shù)據(jù)庫用戶,同時可選要導(dǎo)出的表,最后點擊確定,如果不能正常生成腳本提示模型錯誤,則在上圖中的options中將check modle 的選項去掉,點擊確定,生成sql腳本,

這時生成的腳本不要著急去用,因為可能是有問題,用記事本或其它工具打開這個腳本,你會發(fā)現(xiàn)在所屬名上也就是s2ms上都會加上""號,用Ctrl+H,將所有"替換為空,就大功告成了