在数据建模过程中,我们建立概念数据模型,通过正向工程生成物理数据模型,生成数据库建库脚本,最后将物理数据模型生成关系数据库。系统数据库设计人员希望能够将数据库设计和关系数据库生成无缝地集成起来,如何保证物理数据模型与其对应数据库之间的双向同步成为数据建模非常关键的一点。Powerdesigner作为强大的Case工具,为我们提供了方便的逆向工程特性。可以将目前所有流行的后端数据库(包括Sybase、DB2、Oracle等)的结构信息通过逆向工程加入到PowerDesigner的物理数据模型和概念数据模型中,包括表、索引、触发器、视图等。
需要使用powerdsigner做逆向工程获取数据库中创建表的相关联系。在使用,连接数据库时候出现如下错误:
第一次连接数据库,powerdsigner·会在数据库上建立以‘PM’开头的表和视图。第二次连接的时候出现
repository -> connect 连接时出现报错:
The repository does not contain all the required definitions. Only an administrator can update it.
点击 确定,出现错误:
The connection failed because the repository has not been installed on this database.
解决方法:
set echo off feed off heading off
spool /home/oracle/droppmtable.sql
select 'drop table '||tname||' purge;' from tab where tname like 'PM%';
spool off
之后执行产生出的脚本 ,删除数据库中的pm开头的表就解决问题了。
使用powerdsigner·的逆向工程必须先建立ODBC数据源。
1.打开或新建一个PhysicalDataModel文件(.pdm)
2.在菜单项 Database->Configure Connections ->System DSN ->Add ->选择Oracle ODBC Driver完成->输入Data Source Name(数据源名称,比如RAC),输入Service Name(就是你要连接的数据库的TNSNAMES.ORA 文件里的网络服务名) ,UserID(可以先不填) 点击 OK
3.Database->Connet->选择第一项Machine data source 选择刚才建好的数据源
RAC,在Login里输入UserID和Password,点击 Connect 。提示连接成功。
4.Database->Reverse Engineer Database ->选择 Using an ODBC data source项,下拉框中是刚才配好的数据源 ,点击确定->一个连接输入框输入User Name和Password点击OK
5.出现表格的列表,选择需要导出的表->点 OK,数据表比较多就需要等待一段时间。
6.将导好的pdm文件转成cdm文件Tools->Generate Conceptual Data Model -> Ceneral 项:默认的name和code可以自己改改,Detail项: 将 Check model 前面的勾去掉,->确定 cdm图生成。