設(shè)計(jì)之路:使用Power Designer工具進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)
文/阿蜜果
日期:/2013-10-13
使用Power Designer進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)已有一段時(shí)間,但某些功能卻一直未曾使用,本博文將筆者近期使用Power Designer的某些功能進(jìn)行詳細(xì)講解。
1、使用PD連接Oracle數(shù)據(jù)庫(kù)
前些天跟進(jìn)一個(gè)已經(jīng)做完一半但是不大的系統(tǒng),使用Oracle 11g數(shù)據(jù)庫(kù),因?yàn)闀r(shí)間比較緊張,而且項(xiàng)目組人員沒有文檔規(guī)范意識(shí),各個(gè)模塊的數(shù)據(jù)庫(kù)表都由各個(gè)開發(fā)人員獨(dú)立設(shè)計(jì),沒有完整的物理模型設(shè)計(jì)文檔,給維護(hù)造成很大困難。
因?yàn)橹挥?/span>Oracle數(shù)據(jù)庫(kù)中有表結(jié)構(gòu),所以我想通過Oracle數(shù)據(jù)庫(kù)反向生成物理模型,首先需要使用Power Designer連接Oracle數(shù)據(jù)庫(kù)。
1.1 創(chuàng)建新的物理數(shù)據(jù)模型
點(diǎn)擊“文件”-> “建立新模型”,在彈出的界面中使用默認(rèn)選擇(“Model”-> “Physical Data Model”-> “Physical Diagram”),修改“Model Name”為系統(tǒng)的名稱,“DBMS”選擇“ORACLE Version 11g”,點(diǎn)擊“OK”按鈕建立新的物理數(shù)據(jù)模型。如下圖所示:
【說明】筆者使用的Power Designer版本為15.1,鏈接的Oracle版本為Oracle 11g。
1.2 創(chuàng)建Oralce數(shù)據(jù)源
點(diǎn)擊“數(shù)據(jù)庫(kù)”-> “Configure Data Connections”,在彈出的界面中選擇“Connect Profiles”后點(diǎn)擊“ ”按鈕將彈出創(chuàng)建數(shù)據(jù)源的界面,如下圖所示:
在“Connection Profile Connection Definition”界面的設(shè)置參考如下:
該界面設(shè)置需要注意的是:
(1)Connection Profile name:輸入數(shù)據(jù)庫(kù)連接文件名它會(huì)自動(dòng)加上后綴.dcp
(2)Derectory:可以選擇任意目錄;
(3)Connection type:連接類型選擇“JDBC”;
(4)DBMS type:數(shù)據(jù)庫(kù)管理系統(tǒng)選擇“Oracle”;
(5)User name:數(shù)據(jù)庫(kù)用戶名;
(6)Password:數(shù)據(jù)庫(kù)密碼;
(7)JDBC driver class:從下拉中選擇JDBC的驅(qū)動(dòng)類選擇驅(qū)動(dòng)類oracle.jdbc.OracleDriver;
(8)JDBC connection URL:JDBC連接地址,即訪問的服務(wù)器路徑,格式為:
jdbc:oracle:thin:@數(shù)據(jù)庫(kù)IP地址數(shù)據(jù)庫(kù)連接端口:orcl
(9)JDBC driver jar files:需要選擇指向ojdbc14.jar或者其他驅(qū)動(dòng)的包的按鈕路徑。
筆者測(cè)試過程中發(fā)現(xiàn)數(shù)據(jù)庫(kù)連接不上,后來才發(fā)現(xiàn)因?yàn)樾聯(lián)Q筆記本后連JDK都未安裝,請(qǐng)確認(rèn)JDK安裝成功,并正確設(shè)置JAVA_HOME、CLASSPATH和PATH環(huán)境變量。
若Power Designer找不到所選擇的jar包或jar包不在CLASSPATH環(huán)境變量所指定的路徑,將會(huì)報(bào)錯(cuò):Non SQL Error : Could not load class oracle.jdbc.OracleDriver。
在設(shè)置CLASSPATH環(huán)境變量時(shí)將值設(shè)置為.;%JAVA_HOME%\lib,其中“.;”表示當(dāng)前路徑,為了讓Power Designer找到ojdbc14.jar,可將ojdbc14.jar放在Power Designer的安裝目錄下,或放在%JAVA_HOME%\lib目錄下。
【說明】Oracle的驅(qū)動(dòng)jar包ojdbc14.jar讀者可從網(wǎng)上下載,或通過本博客提供的下載鏈接下載(http://files.blogjava.net/amigoxie/20131013_%E8%AE%BE%E8%AE%A1%E4%B9%8B%E8%B7%AF%EF%BC%9A%E4%BD%BF%E7%94%A8Power%20Designer%E5%B7%A5%E5%85%B7%E8%BF%9B%E8%A1%8C%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1.rar)
1.3 測(cè)試鏈接是否成功
可點(diǎn)擊“Connection Profile Connection Definition”界面的“Test Connection”按鈕,進(jìn)入用戶名/密碼重新輸入頁面,如下圖所示:
若數(shù)據(jù)庫(kù)連接成功,將顯示如下界面提示連接測(cè)試成功:
若連接失敗,將提示“Connection test failed”,請(qǐng)確認(rèn)鏈接地址是否正確。
1.4 連接Oracle數(shù)據(jù)庫(kù)
Oracle數(shù)據(jù)源創(chuàng)建成功后,可選擇菜單欄“數(shù)據(jù)庫(kù)”->“Connect…”彈出“Connect to a Data Source”界面,在“Connection Profile”下拉中選剛才創(chuàng)建的“xx_portal.dcp”,點(diǎn)擊“Connect”按鈕連接數(shù)據(jù)庫(kù)。如下圖所示:
點(diǎn)擊“Connect”按鈕連接數(shù)據(jù)庫(kù),連接數(shù)據(jù)庫(kù)成功后,可查看數(shù)據(jù)庫(kù)中的表結(jié)構(gòu),也可通過Oracle數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)逆向生成PDM文件。
2、連接Oracle數(shù)據(jù)庫(kù)逆向工程生成PDM
使用逆向工程建立物理數(shù)據(jù)模型PDM文件也可選擇“File”->“Reverse Engineer”-> “Database”,在彈出的界面中將“Model name”輸入為子系統(tǒng)的名稱,“DBMS”選擇“ORACLE Version 11g”,點(diǎn)擊“確定”按鈕進(jìn)入連接數(shù)據(jù)源頁面。如下圖所示:
點(diǎn)擊【確定】按鈕逆向工程選項(xiàng)設(shè)置界面,如下圖所示:
在“User a data source”中可選擇剛才創(chuàng)建的數(shù)據(jù)源“xx_portal.dcp”,默認(rèn)勾選“Reverse engineer user administrator’s permissions”,點(diǎn)擊“確定”按鈕進(jìn)入數(shù)據(jù)庫(kù)反向工程界面,如下圖所示:
點(diǎn)擊“確定”按鈕生成PDM文件,生成的PDM文件將包含表結(jié)構(gòu)、主鍵、外鍵、索引、約束和其它選項(xiàng)信息。
【說明】因?yàn)楣P者寫本博文時(shí)本機(jī)暫時(shí)無法連接之前使用的Oracle數(shù)據(jù)庫(kù),所以上圖從網(wǎng)上拷貝。
3、一個(gè)PDM創(chuàng)建多個(gè)Diagram進(jìn)行設(shè)計(jì)以便查看
將所有的表都放在一個(gè)Physical Diagram中,非常不便于查看,Power Designer的一個(gè)PDM文件可建立多個(gè)Physical Diagram,在創(chuàng)建新的物理數(shù)據(jù)模型后,可選擇物理模型名稱后點(diǎn)擊右鍵,選擇“New”->“Physical Diagram”創(chuàng)建新的Physical Diagram。
例如筆者為“員工辦公門戶系統(tǒng)物理模型”建立了如下多個(gè)Physical Diagram:
選擇不同的“Physical Diagram”,點(diǎn)擊右鍵后選擇“打開圖表”將會(huì)看到該P(yáng)hysical Diagram下的表設(shè)計(jì)。一般按大模塊建立Physical Diagram。
4、使用Ctrl+ K在不同PD中一個(gè)表創(chuàng)建多個(gè)symbol
多個(gè)“Physical Diagram”中可能都與某個(gè)“Physical Diagram”中的某個(gè)表存在關(guān)聯(lián),例如可能“新聞資訊”、“培訓(xùn)教程、在線考試和問卷調(diào)查”這兩個(gè)Physical Diagram的用戶ID可能都與“系統(tǒng)管理”中的“用戶表”存在外鍵關(guān)聯(lián)。
筆者使用的方法是:使用Ctrl+C先復(fù)制,再Ctrl+K粘貼到Diagram中。
Ctrl + V:創(chuàng)建一個(gè)與復(fù)制的實(shí)體相同的一個(gè)實(shí)體,相當(dāng)于一個(gè)新的實(shí)體(實(shí)體名稱必須唯一);
Ctrl + K:創(chuàng)建一個(gè)原實(shí)體的快捷方式(修改原實(shí)體時(shí)新實(shí)體也會(huì)隨之變化)。
5、附錄:使用PL/SQL連接Oracle數(shù)據(jù)庫(kù)
在1和2章節(jié)章需要安裝Oracle客戶端,而后使用PL/SQL連接Oracle查看是否能連接成功。
5.1 下載Oracle免安裝客戶端oracle_instantclient
在Oracle官網(wǎng)那個(gè)下載Oracle免安裝客戶端 instantclient basic package,地址如下:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
在該頁面搜索“client”,頁面如下所示:
點(diǎn)擊“Instant Clinet”后進(jìn)入下載列表,如下圖所示:
筆者的是32位的操作系統(tǒng),所以選擇“Instant Client for Microsoft Windows(32-bit)”。下載時(shí)需要AcceptLicense Agreement, 若沒有oracle帳號(hào),需先注冊(cè)一個(gè)oracle帳號(hào)。頁面如下圖所示:
另外,請(qǐng)選擇合適版本:
instantclient-basic-win32-11.x.x.x.x.zip:支持Oracle 9i以上的版(不包括Oracle9i)
instantclient-basic-win32-10.x.x.x.zip:支持Oracle8i 和Oracle9i 的。
筆者下載的是最新版本instantclient-basic-nt-12.1.0.1.0.zip。
下載完成后,把文件解壓到本地某路徑下,如:D:\software\instantclient_11_2在此路徑下建立:NETWORK/ADMIN文件夾,在ADMIN文件夾下建立tnsnames.ora文件,參考內(nèi)容如下:









5.2 安裝PL/SQL并進(jìn)行配置
安裝PLSQL Developer,打開后點(diǎn)擊“取消”按鈕進(jìn)入。在菜單欄選擇“工具”->“首選項(xiàng)”,設(shè)置Oracle主目錄名和OCI庫(kù),如下圖所示:
設(shè)置后關(guān)閉PL/SQL,再重新打開,在登錄頁面選擇在tnsnames.ora 中設(shè)置的“數(shù)據(jù)庫(kù)”,輸入用戶名、密碼即可登錄。如下圖所示:
6、參考文檔
(1)《PowerDesigner15連接Oracle數(shù)據(jù)庫(kù)并導(dǎo)出Oracle的表結(jié)構(gòu)》:
http://wenku.baidu.com/view/4f819a24af45b307e87197ea.html
(2)《如何用Powerdesigner的PDM(物理數(shù)據(jù)模型)生成數(shù)據(jù)庫(kù)及逆向工程(將現(xiàn)有的數(shù)據(jù)庫(kù)生成PDM)》:http://blog.csdn.net/jiang_ideal/article/details/3838806
(3)《在powerdesigner中,一個(gè)table,怎么在diagram中創(chuàng)建多個(gè)symbol》:
http://tyj06102000.blog.163.com/blog/static/1269328620107236446346/
(4)《Oracle免安裝客戶端oracle_instantclient的安裝和配置》:
http://wenku.baidu.com/view/bf396d6858fafab069dc0228.html