使用PowerDesigner绘制数据模型

时间:2024-03-18 17:01:57

 

1.      说明

在开发过程或者维护过程中,我们往往需要弄清楚数据库表与表之间的关系。简单的几张、十几张表还能轻松应对他们之间的关系,可一旦表多起来,例如我现在遇到的项目是一百多张表,想要一一弄清楚他们的关联,就很费劲。如果单单只是在PL/SQL或者Toad这样的工具里一张表一张表地去看,就显得费时费力又费神。能不能有直观的工具,用图的方式揭示它们的关系呢?有,使用PowerDesigner,就可以解决我们的问题。

2.      工具

1)      PL/SQL_Developer_7.03 可以将现有数据库对象的SQL语句导出来;

2)      PowerDesigner 15        生成物理表的数据模型

3.      步骤

1)      使用PL/SQL导出数据库对象的SQL

使用PowerDesigner绘制数据模型

 

PL/SQL->Tools->Export User Objects


              使用PowerDesigner绘制数据模型
  全选所有数据库对象(表、视图、存储过程、触发器等),导出.sql文件,该文件是就是这个数据库的建库SQL,留着以后使用。

1)      使用PowerDesigner 15生成物理表的数据模型

打开PowerDesignerFile->Revers Engineer->Database


使用PowerDesigner绘制数据模型
 新建物理数据模型,取个名字,选个数据库版本,我这里使用Oracle,点确定;


使用PowerDesigner绘制数据模型
 这里,我遇到一个没有VBScript的问题,是PowerDesigner的问题,在控制台把这个dll注册一下即可:

       >regsvr32 vbscript.dll


使用PowerDesigner绘制数据模型
 这里有两种反转数据库引擎的方法:一是直接使用我们刚才生成的SQL,一是使用数据源。

a)      首先,我们先使用SQL脚本的方式来实现数据模型图的绘制。如下图,选择Using script files,找到我们刚才存储的SQL文件,点击确定。


使用PowerDesigner绘制数据模型
        跟着,PowerDesigner就开始为我们生成数据模型了:


使用PowerDesigner绘制数据模型
        这种直接使用SQL的反转引擎方式速度还算是比较快的,相比而言,使用数据源的方式反转,其速度就与这个有着天壤之别了,因为要直连数据库,所以很耗时,故而我推荐还是使用SQL脚本的方式反转数据库的好。

a)      其次,我们使用数据源的方式反转:


使用PowerDesigner绘制数据模型
 如上图,Reverse engineer using administrator’s permissions复选框需要选中,接着点击右侧那个数据库仓库按钮,这里需要配置数据源:


使用PowerDesigner绘制数据模型
 我们使用的是Oracle数据库,这里没有现成的配置,所以需要事先配置,点击“Configure…”按钮,配置数据源:


使用PowerDesigner绘制数据模型
 添加数据库连接:


使用PowerDesigner绘制数据模型
 这里选择“系统数据源(只用于当前机器)”,下一步:


使用PowerDesigner绘制数据模型
 我们用Oracle,所以选择Oracle驱动。请选择符合自己的数据源驱动。点下一步,再点完成后,弹出Driver配置窗口:


使用PowerDesigner绘制数据模型
 给数据源起个名字,在TNS Service Name里填写数据源的访问地址,跟着点击“Test Connection”测试连接,会弹出“Oracle ODBC Driver Connect”窗口,填写用户名及密码即可。当然,你也可以让PowerDesigner记住用户名及密码:

 


使用PowerDesigner绘制数据模型
 但是这种反转引擎的方式由于是直连数据库,所以非常耗时,我不推荐使用,最好还是用SQL反转引擎的方式导出。

折腾好了以后,PowerDesigner就会帮我们把数据库对象的关联关系图倒腾好了。


          使用PowerDesigner绘制数据模型
 一共235个用户对象,差不多200张表。