PowerDesigner 从现有的数据库表中反向生成数据模型
文章出自http://www.blogjava.net/amigoxie/archive/2013/10/13/404925.html
使用Power Designer进行数据库设计已有一段时间,但某些功能却一直未曾使用,本博文将笔者近期使用Power Designer的某些功能进行详细讲解。
1、使用PD连接Oracle数据库
前些天跟进一个已经做完一半但是不大的系统,使用Oracle 11g数据库,因为时间比较紧张,而且项目组人员没有文档规范意识,各个模块的数据库表都由各个开发人员独立设计,没有完整的物理模型设计文档,给维护造成很大困难。
因为只有Oracle数据库中有表结构,所以我想通过Oracle数据库反向生成物理模型,首先需要使用Power Designer连接Oracle数据库。
1.1 创建新的物理数据模型
点击“文件”-> “建立新模型”,在弹出的界面中使用默认选择(“Model”-> “Physical Data Model”-> “Physical Diagram”),修改“Model Name”为系统的名称,“DBMS”选择“ORACLE Version 11g”,点击“OK”按钮建立新的物理数据模型。如下图所示:
【说明】笔者使用的Power Designer版本为15.1,链接的Oracle版本为Oracle 11g。
1.2 创建Oralce数据源
点击“数据库”-> “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)
1.3 测试链接是否成功
可点击“Connection Profile Connection Definition”界面的“Test Connection”按钮,进入用户名/密码重新输入页面,如下图所示:
若数据库连接成功,将显示如下界面提示连接测试成功:
若连接失败,将提示“Connection test failed”,请确认链接地址是否正确。
1.4 连接Oracle数据库
Oracle数据源创建成功后,可选择菜单栏“数据库”->“Connect…”弹出“Connect to a Data Source”界面,在“Connection Profile”下拉中选刚才创建的“xx_portal.dcp”,点击“Connect”按钮连接数据库。如下图所示:
点击“Connect”按钮连接数据库,连接数据库成功后,可查看数据库中的表结构,也可通过Oracle数据库中的表结构逆向生成PDM文件。
2、连接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数据库,所以上图从网上拷贝。
3、一个PDM创建多个Diagram进行设计以便查看
将所有的表都放在一个Physical Diagram中,非常不便于查看,Power Designer的一个PDM文件可建立多个Physical Diagram,在创建新的物理数据模型后,可选择物理模型名称后点击右键,选择“New”->“Physical Diagram”创建新的Physical Diagram。
例如笔者为“员工办公门户系统物理模型”建立了如下多个Physical Diagram:
选择不同的“Physical Diagram”,点击右键后选择“打开图表”将会看到该Physical Diagram下的表设计。一般按大模块建立Physical Diagram。
4、使用Ctrl+ K在不同PD中一个表创建多个symbol
多个“Physical Diagram”中可能都与某个“Physical Diagram”中的某个表存在关联,例如可能“新闻资讯”、“培训教程、在线考试和问卷调查”这两个Physical Diagram的用户ID可能都与“系统管理”中的“用户表”存在外键关联。
笔者使用的方法是:使用Ctrl+C先复制,再Ctrl+K粘贴到Diagram中。
Ctrl + V:创建一个与复制的实体相同的一个实体,相当于一个新的实体(实体名称必须唯一);
Ctrl + K:创建一个原实体的快捷方式(修改原实体时新实体也会随之变化)。
5、附录:使用PL/SQL连接Oracle数据库
在1和2章节章需要安装Oracle客户端,而后使用PL/SQL连接Oracle查看是否能连接成功。
5.1 下载Oracle免安装客户端oracle_instantclient
在Oracle官网那个下载Oracle免安装客户端 instantclient basic package,地址如下:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html