设计之路:使用Power Designer工具进行数据库设计
文/阿蜜果
日期:/2013-10-13
使用Power Designer进行数据库设计已有一段时间,但某些功能却一直未曾使用,本博文将笔者近期使用Power Designer的某些功能进行详细讲解。
前些天跟进一个已经做完一半但是不大的系统,使用Oracle 11g数据库,因为时间比较紧张,而且项目组人员没有文档规范意识,各个模块的数据库表都由各个开发人员独立设计,没有完整的物理模型设计文档,给维护造成很大困难。
因为只有Oracle数据库中有表结构,所以我想通过Oracle数据库反向生成物理模型,首先需要使用Power Designer连接Oracle数据库。
点击“文件”-> “建立新模型”,在弹出的界面中使用默认选择(“Model”-> “Physical Data Model”-> “Physical Diagram”),修改“Model Name”为系统的名称,“DBMS”选择“ORACLE Version 11g”,点击“OK”按钮建立新的物理数据模型。如下图所示:
【说明】笔者使用的Power Designer版本为15.1,链接的Oracle版本为Oracle 11g。
点击“数据库”-> “Configure Data Connections”,在弹出的界面中选择“Connect Profiles”后点击“ ”按钮将弹出创建数据源的界面,如下图所示:
在“Connection Profile Connection Definition”界面的设置参考如下:
该界面设置需要注意的是:
(1)Connection Profile name:输入数据库连接文件名它会自动加上后缀.dcp
(2)Derectory:可以选择任意目录;
(3)Connection type:连接类型选择“JDBC”;
(4)DBMS type:数据库管理系统选择“Oracle”;
(5)User name:数据库用户名;
(6)Password:数据库密码;
(7)JDBC driver class:从下拉中选择JDBC的驱动类选择驱动类oracle.jdbc.OracleDriver;
(8)JDBC connection URL:JDBC连接地址,即访问的服务器路径,格式为:
jdbc:oracle:thin:@数据库IP地址数据库连接端口:orcl
(9)JDBC driver jar files:需要选择指向ojdbc14.jar或者其他驱动的包的按钮路径。
笔者测试过程中发现数据库连接不上,后来才发现因为新换笔记本后连JDK都未安装,请确认JDK安装成功,并正确设置JAVA_HOME、CLASSPATH和PATH环境变量。
若Power Designer找不到所选择的jar包或jar包不在CLASSPATH环境变量所指定的路径,将会报错:Non SQL Error : Could not load class oracle.jdbc.OracleDriver。
在设置CLASSPATH环境变量时将值设置为.;%JAVA_HOME%\lib,其中“.;”表示当前路径,为了让Power Designer找到ojdbc14.jar,可将ojdbc14.jar放在Power Designer的安装目录下,或放在%JAVA_HOME%\lib目录下。
【说明】Oracle的驱动jar包ojdbc14.jar读者可从网上下载,或通过本博客提供的下载链接下载(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)
可点击“Connection Profile Connection Definition”界面的“Test Connection”按钮,进入用户名/密码重新输入页面,如下图所示:
若数据库连接成功,将显示如下界面提示连接测试成功:
若连接失败,将提示“Connection test failed”,请确认链接地址是否正确。
Oracle数据源创建成功后,可选择菜单栏“数据库”->“Connect…”弹出“Connect to a Data Source”界面,在“Connection Profile”下拉中选刚才创建的“xx_portal.dcp”,点击“Connect”按钮连接数据库。如下图所示:
点击“Connect”按钮连接数据库,连接数据库成功后,可查看数据库中的表结构,也可通过Oracle数据库中的表结构逆向生成PDM文件。
使用逆向工程建立物理数据模型PDM文件也可选择“File”->“Reverse Engineer”-> “Database”,在弹出的界面中将“Model name”输入为子系统的名称,“DBMS”选择“ORACLE Version 11g”,点击“确定”按钮进入连接数据源页面。如下图所示:
点击【确定】按钮逆向工程选项设置界面,如下图所示:
在“User a data source”中可选择刚才创建的数据源“xx_portal.dcp”,默认勾选“Reverse engineer user administrator’s permissions”,点击“确定”按钮进入数据库反向工程界面,如下图所示:
点击“确定”按钮生成PDM文件,生成的PDM文件将包含表结构、主键、外键、索引、约束和其它选项信息。
【说明】因为笔者写本博文时本机暂时无法连接之前使用的Oracle数据库,所以上图从网上拷贝。
将所有的表都放在一个Physical Diagram中,非常不便于查看,Power Designer的一个PDM文件可建立多个Physical Diagram,在创建新的物理数据模型后,可选择物理模型名称后点击右键,选择“New”->“Physical Diagram”创建新的Physical Diagram。
例如笔者为“员工办公门户系统物理模型”建立了如下多个Physical Diagram:
选择不同的“Physical Diagram”,点击右键后选择“打开图表”将会看到该Physical Diagram下的表设计。一般按大模块建立Physical Diagram。
多个“Physical Diagram”中可能都与某个“Physical Diagram”中的某个表存在关联,例如可能“新闻资讯”、“培训教程、在线考试和问卷调查”这两个Physical Diagram的用户ID可能都与“系统管理”中的“用户表”存在外键关联。
笔者使用的方法是:使用Ctrl+C先复制,再Ctrl+K粘贴到Diagram中。
Ctrl + V:创建一个与复制的实体相同的一个实体,相当于一个新的实体(实体名称必须唯一);
Ctrl + K:创建一个原实体的快捷方式(修改原实体时新实体也会随之变化)。
在1和2章节章需要安装Oracle客户端,而后使用PL/SQL连接Oracle查看是否能连接成功。
在Oracle官网那个下载Oracle免安装客户端 instantclient basic package,地址如下:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
点击“Instant Clinet”后进入下载列表,如下图所示:
笔者的是32位的操作系统,所以选择“Instant Client for Microsoft Windows(32-bit)”。下载时需要AcceptLicense Agreement, 若没有oracle帐号,需先注册一个oracle帐号。页面如下图所示:
另外,请选择合适版本:
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文件,参考内容如下:
安装PLSQL Developer,打开后点击“取消”按钮进入。在菜单栏选择“工具”->“首选项”,设置Oracle主目录名和OCI库,如下图所示:
设置后关闭PL/SQL,再重新打开,在登录页面选择在tnsnames.ora 中设置的“数据库”,输入用户名、密码即可登录。如下图所示:
(1)《PowerDesigner15连接Oracle数据库并导出Oracle的表结构》:
http://wenku.baidu.com/view/4f819a24af45b307e87197ea.html
(2)《如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)》:http://blog.csdn.net/jiang_ideal/article/details/3838806
(3)《在powerdesigner中,一个table,怎么在diagram中创建多个symbol》:
http://tyj06102000.blog.163.com/blog/static/1269328620107236446346/
(4)《Oracle免安装客户端oracle_instantclient的安装和配置》:
http://wenku.baidu.com/view/bf396d6858fafab069dc0228.html