在数据建模过程中,我们建立概念数据模型,通过正向工程生成物理数据模型,生成数据库建库脚本,最后将物理数据模型生成关系数据库,现在反过来,通过逆向工程将关系数据库,生成物理数据模型。
优点:
在丢失数据模型或者数据库模型同现有的数据库不一致,可以通过该方法生成使用中数据库的模型
缺点:
还原回的模型中,可能会没有中文注释,没有表外键对应关系(字段还有,索引关系没了)
前提:
1,确认要生成模型的数据库是最新的,并且可以使用
2,安装Powerdesigner软件(我的是12.0版本)
具体操作步骤:
一,建立ODBC数据源
1, 打开系统ODBC数据源,位置“控制面板--管理工具--数据源(ODBC),要是这一步不会的话,就不用往下看了,看了也是浪费时间。。。。
2,选择系统DSN,点击添加按钮,会弹出如下界面,选择与数据库相匹配的驱动程序
3,点击完成,弹出数据源名称(自定),和选择你要连接的数据库
4,选择确定后,该数据源建立成功,可以双击该数据源名称进行连接测试,只要看到弹出:connection successful 就可以了。
5,至此数据源建立完成,当然这些也可以不用在这里建立,在powerdesigner里也可以建立,建立方法为
选择repositroy->connect,,点击setup ..按钮,添加一行。显 示如下:在 repositroy Name 输入“new”;在 repositroy user 输入“heyxnew”,在 database user 输入 "数据库用户" ,第三个:data source name 配置点最右边的(注意找哦),会弹出:select an ODBC data source 框,有Machine data source:和file data source,而我们在上面早以配好了odbc,则直接选:Machine data source,在下拉框中选 择早以配好的,若是没有配好odbc,则点击add同样可以配只要配好就行了,进行连接测试,只要看到弹出:connection successful 就可以了。
二,在Powerdesigner中逆向生成
1,打开Powerdesigner工具,创建一个PDM文件,选择与之匹配的数据库类型“Oracle version 9i(这个是我的,我用的是oracle)”。创建方法为:右键点击左侧面板中的WorkSpace---->new------>physical data nodel ,在DBMS中选择你要的数据类型,选择好后点击确定,则新建立了一个工作空间。
2,选择Database菜单下的Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源“new”。
3,点击确定后,显示此数据库中所有表、视图、用户(这个选择一下该数据库的用户)。根据需要选择后,转换成pdm。图示如下
4,选择好后,点击OK,则生成模型(这个要花点时间生成的)。
三,利用脚本生成模型
如果你不光有个正在使有的数据库,你还有一下建立库的脚本,那你发财了!因为用.sql的脚本生成的模型,就不存在用数据库生成的缺点了,具体操作如下:
二、 通过SQL脚本逆向工程生成PDM
1、 数据库SQL脚本文件crebas.sql。下为脚本实例:
/*==============================================================*/
/* DBMS name: ORACLE Version 9i */
/* Created on: 2008-12-19 12:42:21 */
/*==============================================================*/
alter table SYSTEM.HELP
drop primary key cascade;
drop table SYSTEM.HELP cascade constraints;
drop user SYSTEM;
/*==============================================================*/
/* User: SYSTEM */
/*==============================================================*/
create user SYSTEM identified by '';
/*==============================================================*/
/* Table: HELP */
/*==============================================================*/
create table SYSTEM.HELP (
TOPIC VARCHAR2(50) not null,
SEQ NUMBER not null,
INFO VARCHAR2(80)
)
pctused 40
initrans 1
maxtrans 255
storage
(
initial 48K
minextents 1
maxextents unlimited
freelists 1
freelist groups 1
)
tablespace SYSTEM
logging
noparallel;
alter table SYSTEM.HELP
add constraint HELP_TOPIC_SEQ primary key (TOPIC, SEQ)
using index
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 16K
minextents 1
maxextents unlimited
freelists 1
freelist groups 1
)
tablespace SYSTEM
logging;
2、 还是创建一个pdm,选择Database--->Reverse Engineer Database,选择Using script files,在点OK。
3、 过一会你会看到由脚本自动生成相关的PDM。
四,生成模型后要导出数据库建库脚本
导好的模型,当然是用来修改和导出建库脚本的,操作方法如下
1,选择database--->generate database弹出如下窗口
在用户的none中选择数据库用户,同时可选要导出的表,最后点击确定,如果不能正常生成脚本提示模型错误,则在上图中的options中将check modle 的选项去掉,点击确定,生成sql脚本,如下:
/*==============================================================*/
/* DBMS name: ORACLE Version 9i */
/* Created on: 2008-12-19 13:26:22 */
/*==============================================================*/
alter table STUDENT
drop constraint FK_STUDENT_REFERENCE_CLASS;
alter table CLASS
drop primary key cascade;
alter table STUDENT
drop primary key cascade;
drop table CLASS cascade constraints;
drop table STUDENT cascade constraints;
drop user SYSTEM;
/*==============================================================*/
/* User: SYSTEM */
/*==============================================================*/
create user SYSTEM identified by '';
/*==============================================================*/
/* Table: CLASS */
/*==============================================================*/
create table CLASS (
CLASSID NUMBER(2) not null,
CLASSNAME VARCHAR2(24)
);
alter table CLASS
add constraint PK_CLASS primary key (CLASSID);
/*==============================================================*/
/* Table: STUDENT */
/*==============================================================*/
create table STUDENT (
STUDENTID NUMBER(10) not null,
STUDENTNAME VARCHAR2(4),
CLASSID NUMBER(2)
);
alter table STUDENT
add constraint PK_STUDENT primary key (STUDENTID);
alter table STUDENT
add constraint FK_STUDENT_REFERENCE_CLASS foreign key (CLASSID)
references CLASS (CLASSID);
不行的话可以多试几次的哦!!!反正我的是一次就OK了。。。。。
分享到:
相关推荐
如何用PowerDesigner逆向工程导出ORACLE数据库表
PowerDesinger逆向工程 PD逆向工程 建立数据库
PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中
PowerDesigner反向生成PDM, PDM生成DOC
由数据库表生成物理模型 1.通过windows数据源管理,建立ODBC数据源。oracle客户端口可选择odbc 2.pd 选择database>connect选择好建立的odbc数据源.输入用户,密码 3.选择database>reverse engineer database ,db15不...
从数据库将数据导出到PD里。
纯图版,ORACLE转PDM,PD16版
用PD生成sql建立数据库和PowerDesigner反向生成数据字典PPT课件.pptx
数据库设计PD 破解工具,免费解压可用。
从DBMS下拉列表中选择要生成PDM的DBMS,Name文本框中给出了默认的PDM文件名,与CDM文件名相同,但扩展名变为PDM。 打开“Selection”选项页,可以看到CDM中所有的对象。默认选择为所有对象。 单击“确定”按钮,在...
本文档是PD反向生成物理数据模型步骤,逆向工程生成数据屋里模型
数据库设计pd建模讲义,讲述了数据库建模,数据视图属性。创建数据库生成脚本(SQL 脚本)
选择数据库-》EditCurrent Dbms-》Script-》Objects-》Column-》ColumnComment。将下面代码粘贴到右边Value里面
PostgreSQL数据库内核分析.pdPostgreSQL数据库内核分析.pdPostgreSQL数据库内核分析.pdPostgreSQL数据库内核分析.pdPostgreSQL数据库内核分析.pdPostgreSQL数据库内核分析.pdPostgreSQL数据库内核分析.pd
用简洁明快的语言讲述了如何用PowerDesinger9.5的业务流程分析、实体关系模型设计、面向对象和数据库建模的集成等功能模块进行项目需求分析、结构规划、生成框架代码,以及如何从现有系统逆向转出工程代码、生成所需...
器、制作存储过程和函数,对数据库和数据库生成脚本进行逆向工程产生物理 数据模型,建立子模型的方法,使用MetaWorks 进行团队控制的方法,使用 MetaBrowser 查询MetaWorks 字典的方法。 本书可以作为高等院校...
NULL 博文链接:https://mandy-yanzi.iteye.com/blog/2017094
全书包括数据库基础、数据库系统、数据库设计、数据库应用和数据库新技术等内容,共分16章,具体内容主要包括:数据库的基本概念、数据模型、关系数据库、关系数据库系统、关系数据库标准语言SQL、数据完整性、...
兼容所有的数据库设计,市面上最强大的数据库设计软件