注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风之泪

风过雨过,花开花落。。。

 
 
 

日志

 
 

Powerdesigner逆向工程从现有数据库生成PDM  

2010-07-05 17:27:07|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Powerdesigner逆向工程从现有数据库生成PDM

        在数据建模过程中,我们建立概念数据模型,通过正向工程生成物理数据模型,生成数据库建库脚本,最后将物理数据模型生成关系数据库,现在反过来,通过逆向 工程将关系数据库,生成物理数据模型。

优点:

         在丢失数据模型或者数据库模型同现有的数据库不一致,可以通过该方法生成使用中数据库的模型

缺点:

         还原回的模型中,可能会没有中文注释,没有表外键对应关系(字段还有,索引关系没了)

前提:

        1,确认要生成模型的数据库是最新的,并且可以使用

        2,安装Powerdesigner软件

具体操作步骤:

一,建立ODBC数据源

        1, 打开系统ODBC数据源,位置“控制面板--管理工具--数据源(ODBC)

        2,选择系统DSN,点击添加按钮,会弹出如下界面,选择与数据库相匹配的驱动程序

3,点击完成,弹出数据源名称(自定),和选择你要连接的数据库,如下图所示

  

4,选择确定后,该数据源建立成功,可以双击该数据源名称进行连接测试,如下图所示

5,至此数据源建立完成,当然这些也可以不用在这里建立,在powerdesigner里 也可以建立,建立方法为

选择Database->configure connections,转到system dsn标签,点击Add按钮,选数据库类型DB2,点击完成。显 示如下:输入DataSource Name“PDMTest”;输入ServerName“Database”, 配置完成。如下所示:

        

二,在Powerdesigner中逆向生成

      1,打开Powerdesigner工具,创建一个PDM文件,选择与之匹配的数据库类型“ibm db2 udb 8.x common server”。创建方法为:右键点击左侧面板中的WorkSpace---->new------>physical data nodel ,在DBMS中选择你要的数据类型,选择好后点击确定,则新建立了一个工作空间。

      2,选择Database菜单下的Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源“s2ms”,如下图所示:

3,点击确定后,显示此数据库中所有表、视图、用户(这个选择一下该数据库的用户)。根据 需要选择后,转换成pdm。图示如下

4,选择好后,点击OK,则生成模型。

三,利用脚本生成模型

       如果你不光有个正在使有的数据库,你还有一下建立库的脚本,那你发财了!因为用.sql的脚本生成的模型,就不存在用数据库生成的缺点了,具体操作如下:

二、 通过SQL脚本逆向工程生成PDM

1、 数据库SQL脚本文件crebas.sql。下为脚本实例:
/*==============================================================*/
/* Database name: PhysicalDataModel_1 */
/* DBMS name: ORACLE Version 9i */
/* Created on: 2003-07-13 10:49:08 */
/*==============================================================*/
/*==============================================================*/
/* Table: "class" */
/*==============================================================*/
create table "class" (
"classID" NUMBER(2) not null,
"className" VARCHAR2(24),
constraint PK_CLASS primary key ("classID")
)
/
/*==============================================================*/
/* Table: "student" */
/*==============================================================*/
create table "student" (
"studentID" NUMBER(10) not null,
"studentName" VARCHAR2(4),
"classID" NUMBER(2),
constraint PK_STUDENT primary key ("studentID")
)
/
alter table "student"
add constraint FK_STUDENT_REFERENCE_CLASS foreign key ("classID")
references "class" ("classID")
/

2、 还是创建一个pdm,选择Database--->Reverse Engineer Database,选择Using script files。

3、 看到由脚本自动生成相关的PDM如下所示:

   

四,生成模型后要导出数据库建库脚本

    导好的模型,当然是用来修改和导出建库脚本的,操作方法如下

      1,选择database--->generate database弹出如下窗口

   

在用户的none中选择数据库用户,同时可选要导出的表,最后点击确定,如果不能正常生成 脚本提示模型错误,则在上图中的options中将check modle 的选项去掉,点击确定,生成sql脚本,

这时生成的脚本不要着急去用,因为可能是有问题,用记事本或其它工具打开这个脚本,你会发 现在所属名上也就是s2ms上都会加上""号,用Ctrl+H,将所有"替换为空,就大功告成了!

例子

一项目拿到数据库后,涉及到的表太多,领导要求做pdm图,只能用Powerdesigner的逆向工程来生成了。


环境:vs2005+sqlserver2005+PowerDesigner 12
打开PowerDesigner 12(以下简称pd),新建pdm工程,如图所示:
Powerdesigner逆向工程从现有数据库生成PDM - 风 - 风之泪
注:dbms选择您目前需要转换的类别,我用的是sqlserver2005。
然后选择菜单《数据库》《系统DSN》,选择或者添加您需要的数据库,我这里选择的是sql server。如图所示:
Powerdesigner逆向工程从现有数据库生成PDM - 风 - 风之泪
建好数据源后,我们就用pd来连接,依次选择菜单《数据库》《连接》,打开连接配置窗口,选择我们刚才建立的数据源, 并设置登陆的用户名密码,如图所示:
Powerdesigner逆向工程从现有数据库生成PDM - 风 - 风之泪
OK,配置好连接后,我们就可以生成pdm或者cdm了:依次选择菜单《数据库》《数据库逆向工程》,选择逆向操作的 数据源,如图所示:
Powerdesigner逆向工程从现有数据库生成PDM - 风 - 风之泪
单击确定后,选择您要生成的表及相关属性设置,如图所示:
Powerdesigner逆向工程从现有数据库生成PDM - 风 - 风之泪
OK,大功告成啦,稍等几秒,就可以看到生成的pdm图了:
Powerdesigner逆向工程从现有数据库生成PDM - 风 - 风之泪


  评论这张
 
阅读(888)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017