1. 说明
在开发过程或者维护过程中,我们往往需要弄清楚数据库表与表之间的关系。简单的几张、十几张表还能轻松应对他们之间的关系,可一旦表多起来,例如我现在遇到的项目是一百多张表,想要一一弄清楚他们的关联,就很费劲。如果单单只是在PL/SQL或者Toad这样的工具里一张表一张表地去看,就显得费时费力又费神。能不能有直观的工具,用图的方式揭示它们的关系呢?有,使用PowerDesigner,就可以解决我们的问题。
2. 工具
1) PL/SQL_Developer_7.03 可以将现有数据库对象的SQL语句导出来;
2) PowerDesigner 15 生成物理表的数据模型
3. 步骤
1) 使用PL/SQL导出数据库对象的SQL
PL/SQL->Tools->Export User Objects;
全选所有数据库对象(表、视图、存储过程、触发器等),导出.sql文件,该文件是就是这个数据库的建库SQL,留着以后使用。
1) 使用PowerDesigner 15生成物理表的数据模型
打开PowerDesigner,File->Revers Engineer->Database;
新建物理数据模型,取个名字,选个数据库版本,我这里使用Oracle,点确定;
这里,我遇到一个没有VBScript的问题,是PowerDesigner的问题,在控制台把这个dll注册一下即可:
>regsvr32 vbscript.dll
这里有两种反转数据库引擎的方法:一是直接使用我们刚才生成的SQL,一是使用数据源。
a) 首先,我们先使用SQL脚本的方式来实现数据模型图的绘制。如下图,选择Using script files,找到我们刚才存储的SQL文件,点击确定。
跟着,PowerDesigner就开始为我们生成数据模型了:
这种直接使用SQL的反转引擎方式速度还算是比较快的,相比而言,使用数据源的方式反转,其速度就与这个有着天壤之别了,因为要直连数据库,所以很耗时,故而我推荐还是使用SQL脚本的方式反转数据库的好。
a) 其次,我们使用数据源的方式反转:
如上图,Reverse engineer using administrator’s permissions复选框需要选中,接着点击右侧那个数据库仓库按钮,这里需要配置数据源:
我们使用的是Oracle数据库,这里没有现成的配置,所以需要事先配置,点击“Configure…”按钮,配置数据源:
添加数据库连接:
这里选择“系统数据源(只用于当前机器)”,下一步:
我们用Oracle,所以选择Oracle驱动。请选择符合自己的数据源驱动。点下一步,再点完成后,弹出Driver配置窗口:
给数据源起个名字,在TNS Service Name里填写数据源的访问地址,跟着点击“Test Connection”测试连接,会弹出“Oracle ODBC Driver Connect”窗口,填写用户名及密码即可。当然,你也可以让PowerDesigner记住用户名及密码:
但是这种反转引擎的方式由于是直连数据库,所以非常耗时,我不推荐使用,最好还是用SQL反转引擎的方式导出。
折腾好了以后,PowerDesigner就会帮我们把数据库对象的关联关系图倒腾好了。
一共235个用户对象,差不多200张表。