此文转自 http://lious.iteye.com/blog/551197
目标:
1: 使用powerdesigner 反向生成PDM.
2: 根据数据库注释,将英文的name替换为commit的汉字内容.
使用Powerdesigner的逆向工程生成PDM
来源: 51CMM.COM 作者: 徐异婕
在数据建模过程中,我们建立概念数据模型,通过正向工程生成物理数据模型,生成数据库建库脚本,最后将物理数据模型生成关系数据库。系统数据库设计人员希望能够将数据库设计和关系数据库生成无缝地集成起来,如何保证物理数据模型与其对应数据库之间的双向同步成为数据建模非常关键的一点。
Powerdesigner作为强大的Case工具,为我们提供了方便的逆向工程特性。可以将目前所有流行的后端数据库(包括Sybase、 DB2、Oracle等)的结构信息通过逆向工程加入到PowerDesigner的物理数据模型和概念数据模型中,包括表、索引、触发器、视图等。
本文介绍的内容仅涉及PDM(物理数据模型)的逆向工程。
PDM中的逆向工程是指从现有DBMS的用户数据库或现有数据库SQL脚本中生成PDM的过程。逆向工程有两种对象:1)通过ODBC数据源连接数据库 2) 现有数据库sql脚本。
本文示例的系统环境如下:
1、 数据库已创建完毕,访问用户和密码设置完成。数据库为Oracle9i。
2、 ODBC数据源已由oracle 的Net Configuration Assistant 创建,本地网络命名服务“Database”。
3、 sql脚本示例crebas.sql。
4、 Powerdesigner9.5已安装完成。 一、 通过数据源连接数据库逆向工程生成PDM
1、 配置用户数据库连接参数
选择Database->configure connections,转到system dsn标签,
点击Add按钮,选数据库类型Oracle,点击完成。显示如下:输入DataSource Name“PDMTest”;输入ServerName“Database”, 配置完成。
点击“Test Connect”输入ServerName“Database”,用户名和密码,若连接成功,显示如下:
以后每次连接,选择Database?connect,选择odbc数据源,输入ServerName“Database”,用户名和密码。若无提示,则说明连接成功。同时,可以通过Database?Connection Information 查看连接信息。
2、 设置逆向工程选项,生成pdm
创建一个PDM文件,选择与之匹配的数据库类型“oracle9i”。
选择Database?Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源“PDMTest”
点击确定后,显示此数据库中所有表、视图、用户。根据需要选择后,转换成pdm。
3、 查看数据
对于生成好的PDM,选择一个表图形符号,点击右键,选择View Data,就可以访问表中的数据了。
二、 通过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如下所示:
下面是表名的中文及字段的name和comment的替换问题
PowerDesigner中name和comment互換
1 PowerDesigner中批量根据对象的name生成comment的脚本
执行方法:Open PDM -- Tools -- Execute Commands -- Run Script
Vb script代码
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl 'the current model
'get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessFolder mdl
End If
'This routine copy name into code for each table, each column and each view
'of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col 'running column
for each col in tab.columns
col.comment= col.name
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next
'go into the sub-packages
Dim f 'running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl 'the current model
'get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessFolder mdl
End If
'This routine copy name into code for each table, each column and each view
'of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col 'running column
for each col in tab.columns
col.comment= col.name
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next
'go into the sub-packages
Dim f 'running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
2 PowerDesigner中逆向工程将数据库中comment脚本赋值到PDM的name
执行方法:Open PDM -- Tools -- Execute Commands -- Run Script
Vb script代码
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl 'the current model
'get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessFolder mdl
End If
'This routine copy name into code for each table, each column and each view
'of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
if len(tab.comment) <> 0 then
tab.name = tab.comment
end if
On Error Resume Next
Dim col 'running column
for each col in tab.columns
if len(col.comment) <>0 then
col.name =col.comment
end if
On Error Resume Next
next
end if
next
end sub
分享到:
相关推荐
powerdesigner逆向工程导入mysql脚本生成PDM带全注释
通过这个脚本,PowerDesigner将自动为每个表、列和视图的name属性生成对应的comment,使得在生成SQL脚本后,当这些对象被创建到数据库时,其comment属性将被正确设置,从而提高了数据库的可读性。 在实际应用中,这...
通过上述步骤,我们可以利用PowerDesigner进行逆向工程来生成PDM,并且能够灵活地处理中文列名和表名,将其转换为更符合规范的注释形式。这对于维护已有数据库系统、迁移数据库或是理解现有系统的数据结构都非常有...
PowerDesigner的反向生成ER图功能为数据库管理员和开发人员提供了一种高效的方式,来理解和分析现有数据库的结构。通过这一过程,不仅可以快速获取数据库的物理模型,还可以在此基础上进行更深入的设计和优化工作,...
PowerDesigner 生成 PDM 模型 PowerDesigner 是一款功能强大的数据建模和设计工具,能够生成高质量的数据模型,特别是在企业信息系统中扮演着重要角色。在本文中,我们将详细讲解如何使用 PowerDesigner 生成 PDM ...
使用PowerDesigner进行反向工程生成E-R图 PowerDesigner是一款功能强大且灵活的数据建模...本文档提供了使用PowerDesigner进行反向工程生成E-R图的详细步骤,帮助数据管理员和开发人员快速掌握PowerDesigner的使用。
在IT行业中,数据库设计是软件开发过程中的关键环节,PowerDesigner是一款强大的数据库设计工具,它提供了数据建模、数据库设计和数据库反向工程等功能。本文将深入探讨如何使用PowerDesigner进行MySQL数据库的逆向...
PowerDesigner 添加数据源、反向工程、表显示注释 PowerDesigner 是一款功能强大的数据建模工具,能够帮助用户设计、开发和维护复杂的数据系统。下面是关于 PowerDesigner 添加数据源、反向工程、表显示注释的知识...
PowerDesigner是一款强大的数据库设计工具,它允许用户进行概念数据模型(CDM)、物理数据模型(PDM)以及数据库逆向工程等多种操作。在数据库建模过程中,为表、字段等对象添加注释(Comment)是十分重要的,因为它...
标题和描述均提到了“PowerDesigner生成数据字典(包含反向工程生成方法)”,这表明文章主要聚焦于如何利用PowerDesigner这一强大的建模工具来生成数据字典,并特别强调了反向工程作为生成数据字典的一种方法。...
使用PowerDeSigner逆向生成Mysql数据库PDM图(带中文注释)-附件资源
在IT行业中,数据库设计是至关重要的一步,而PowerDesigner是一款强大的数据库建模工具,它能够帮助我们进行概念数据模型(CDM)、逻辑数据模型(LDM)和物理数据模型(PDM)的设计。在数据库开发过程中,反向工程是...
标题中提到的问题,即"PowerDesigner逆向工程时,将表字段的comment转换为PDM的name",可以通过编写和执行自定义脚本来实现。以下是这个过程的详细步骤: 1. 打开PowerDesigner中的PDM模型。 2. 进入"Tools"菜单,...
7. 生成PDM:在反向工程完成后,PowerDesigner会自动生成PDM模型,显示数据库的物理结构。你可以在此基础上进行调整,例如添加索引、修改字段属性或优化表关系。 8. 保存和导出PDM:最后,记得保存你的PDM模型,并...
### PowerDesigner将PDM导出生成WORD文档的方法详解 #### 一、PowerDesigner简介与应用场景 PowerDesigner是一款功能强大的数据库设计工具,它可以帮助用户轻松地进行数据建模、概念设计和物理设计等任务。...
标题中的"powerdesigner生成含注释的sql"指的是使用PowerDesigner这款强大的数据库设计工具来创建包含注释的SQL脚本。PowerDesigner是一款流行的数据建模工具,它可以帮助IT专业人员进行概念数据模型(CDM)、物理...
PowerDesigner反向生成数据库模型
当PowerDesigner连接好数据库,并生成模型后,在PowerDesigner用Ctrl+Shift+x快捷键打开,然后将脚本内容粘贴运行,就可以开始生成数据库中存在的注释了
当我们处理复杂的数据模型时,我们可能需要将模型中对象的name(名称)和comment(注释)字段进行互换,以满足不同的管理需求和文档的标准化。 在PowerDesigner中,通常可以通过内置的脚本功能来实现这种需求。工具...