Powerdesigner逆向工程從現有資料庫生成PDM

zenzuguo發表於2009-02-20
在資料建模過程中,我們建立概念資料模型,透過正向工程生成物理資料模型,生成資料庫建庫指令碼,最後將物理資料模型生成關聯式資料庫,現在反過來,透過逆向工程將關聯式資料庫,生成物理資料模型。 優點: 在丟失資料模型或者資料庫模型同現有的資料庫不一致,可以透過該方法生成使用中資料庫的模型 缺點: 還原回的模型中,可能會沒有中文註釋,沒有表外來鍵對應關係(欄位還有,索引關係沒了) 前提: 1,確認要生成模型的資料庫是最新的,並且可以使用 2,安裝Powerdesigner軟體 具體操作步驟: 一,建立ODBC資料來源 1, 開啟系統ODBC資料來源,位置“控制皮膚--管理工具--資料來源(ODBC) 2,選擇系統DSN,點選新增按鈕,會彈出如下介面,選擇與資料庫相匹配的驅動程式 3,點選完成,彈出資料來源名稱(自定),和選擇你要連線的資料庫,如下圖所示 4,選擇確定後,該資料來源建立成功,可以雙擊該資料來源名稱進行連線測試,如下圖所示 5,至此資料來源建立完成,當然這些也可以不用在這裡建立,在powerdesigner裡也可以建立,建立方法為 選擇Database->configure connections,轉到system dsn標籤,點選Add按鈕,選資料庫型別DB2,點選完成。顯 示如下:輸入DataSource Name“PDMTest”;輸入ServerName“Database”, 配置完成。如下所示: 二,在Powerdesigner中逆向生成 1,開啟Powerdesigner工具,建立一個PDM檔案,選擇與之匹配的資料庫型別“ibm db2 udb 8.x common server”。建立方法為:右鍵點選左側皮膚中的WorkSpace----&gtnew------&gtphysical data nodel ,在DBMS中選擇你要的資料型別,選擇好後點選確定,則新建立了一個工作空間。 2,選擇Database選單下的Reverse Engineer Database,彈出Database Reverse Engineering對話方塊,選Using an ODBC data source選ODBC資料來源“s2ms”,如下圖所示: 3,點選確定後,顯示此資料庫中所有表、檢視、使用者(這個選擇一下該資料庫的使用者)。根據需要選擇後,轉換成pdm。圖示如下 4,選擇好後,點選OK,則生成模型。 三,利用指令碼生成模型 如果你不光有個正在使有的資料庫,你還有一下建立庫的指令碼,那你發財了!因為用.sql的指令碼生成的模型,就不存在用資料庫生成的缺點了,具體操作如下: 二、 透過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---&gtReverse Engineer Database,選擇Using script files。 3、 看到由指令碼自動生成相關的PDM如下所示: 四,生成模型後要匯出資料庫建庫指令碼 導好的模型,當然是用來修改和匯出建庫指令碼的,操作方法如下 1,選擇database---&gtgenerate database彈出如下視窗 在使用者的none中選擇資料庫使用者,同時可選要匯出的表,最後點選確定,如果不能正常生成指令碼提示模型錯誤,則在上圖中的options中將check modle 的選項去掉,點選確定,生成sql指令碼, 這時生成的指令碼不要著急去用,因為可能是有問題,用記事本或其它工具開啟這個指令碼,你會發現在所屬名上也就是s2ms上都會加上""號,用Ctrl+H,將所有"替換為空,就大功告成了![@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106285/viewspace-1017616/,如需轉載,請註明出處,否則將追究法律責任。

相關文章