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”按钮建立新的物理数据模型。如下图所示:  
      PowerDesigner 从现有的数据库表中反向生成数据模型

 

         【说明】笔者使用的Power Designer版本为15.1,链接的Oracle版本为Oracle 11g。

1.2 创建Oralce数据源

         点击“数据库”-> Configure Data Connections”,在弹出的界面中选择“Connect Profiles”后点击“ ”按钮将弹出创建数据源的界面,如下图所示:         
       PowerDesigner 从现有的数据库表中反向生成数据模型

 

         在“Connection Profile Connection Definition”界面的设置参考如下:
       PowerDesigner 从现有的数据库表中反向生成数据模型

 

         该界面设置需要注意的是:

  (1Connection Profile name:输入数据库连接文件名它会自动加上后缀.dcp

         2Derectory:可以选择任意目录;

         3Connection type:连接类型选择“JDBC”;

         4DBMS type:数据库管理系统选择“Oracle”;

         5User name:数据库用户名;

         6Password:数据库密码;

         7JDBC driver class:从下拉中选择JDBC的驱动类选择驱动类oracle.jdbc.OracleDriver

         8JDBC connection URLJDBC连接地址,即访问的服务器路径,格式为:

                   jdbc:oracle:thin:@数据库IP地址数据库连接端口:orcl

         9JDBC driver jar files:需要选择指向ojdbc14.jar或者其他驱动的包的按钮路径。

         笔者测试过程中发现数据库连接不上,后来才发现因为新换笔记本后连JDK都未安装,请确认JDK安装成功,并正确设置JAVA_HOMECLASSPATHPATH环境变量。

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”按钮,进入用户名/密码重新输入页面,如下图所示:
     PowerDesigner 从现有的数据库表中反向生成数据模型

 

若数据库连接成功,将显示如下界面提示连接测试成功:
    PowerDesigner 从现有的数据库表中反向生成数据模型

 

若连接失败,将提示“Connection test failed”,请确认链接地址是否正确。

1.4 连接Oracle数据库

Oracle数据源创建成功后,可选择菜单栏“数据库”->Connect…”弹出“Connect to a Data Source”界面,在“Connection Profile”下拉中选刚才创建的“xx_portal.dcp”,点击“Connect”按钮连接数据库。如下图所示:
    PowerDesigner 从现有的数据库表中反向生成数据模型

 

点击“Connect”按钮连接数据库,连接数据库成功后,可查看数据库中的表结构,也可通过Oracle数据库中的表结构逆向生成PDM文件。

2、连接Oracle数据库逆向工程生成PDM

使用逆向工程建立物理数据模型PDM文件也可选择“File->Reverse Engineer-> Database”,在弹出的界面中将“Model name”输入为子系统的名称,“DBMS”选择“ORACLE Version 11g”,点击“确定”按钮进入连接数据源页面。如下图所示:
      PowerDesigner 从现有的数据库表中反向生成数据模型

 

         点击【确定】按钮逆向工程选项设置界面,如下图所示:
      PowerDesigner 从现有的数据库表中反向生成数据模型

 

         在“User a data source”中可选择刚才创建的数据源“xx_portal.dcp”,默认勾选“Reverse engineer user administrator’s permissions”,点击“确定”按钮进入数据库反向工程界面,如下图所示:
      PowerDesigner 从现有的数据库表中反向生成数据模型

 

         点击“确定”按钮生成PDM文件,生成的PDM文件将包含表结构、主键、外键、索引、约束和其它选项信息。

         【说明】因为笔者写本博文时本机暂时无法连接之前使用的Oracle数据库,所以上图从网上拷贝。

3、一个PDM创建多个Diagram进行设计以便查看

    将所有的表都放在一个Physical Diagram中,非常不便于查看,Power Designer的一个PDM文件可建立多个Physical Diagram,在创建新的物理数据模型后,可选择物理模型名称后点击右键,选择“New”->“Physical Diagram”创建新的Physical Diagram。

    例如笔者为“员工办公门户系统物理模型”建立了如下多个Physical Diagram:
    PowerDesigner 从现有的数据库表中反向生成数据模型

 

    选择不同的“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数据库

         12章节章需要安装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

PowerDesigner 从现有的数据库表中反向生成数据模型,布布扣,bubuko.com

PowerDesigner 从现有的数据库表中反向生成数据模型

上一篇:sql server 修改字段大小


下一篇:关于优化sql查询的一个方法。