求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
 
Powerdesigner逆向工程从现有数据库生成PDM
 

2011-1-26 来源:网络

 

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

优点:
      在丢失数据模型或者数据库模型同现有的数据库不一致,可以通过该方法生成使用中数据库的模型
缺点:
     还原回的模型中,可能会没有中文注释,没有表外键对应关系(字段还有,索引关系没了)
前提:
     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工程,如图所示:

  注:dbms选择您目前需要转换的类别,我用的是sqlserver2005。然后选择菜单《数据库》《系统DSN》,选择或者添加您需要的数据库,我这里选择的是sql server。如图所示:

  注:dbms选择您目前需要转换的类别,我用的是sqlserver2005。然后选择菜单《数据库》《系统DSN》,选择或者添加您需要的数据库,我这里选择的是sql server。如图所示:

  OK,配置好连接后,我们就可以生成pdm或者cdm了:依次选择菜单《数据库》《数据库逆向工程》,选择逆向操作的数据源,如图所示:

  单击确定后,选择您要生成的表及相关属性设置,如图所示:

  OK,大功告成啦,稍等几秒,就可以看到生成的pdm图了:



MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...