软件:PowerDesginer16.5
首先说一下对应的模型
New Model ---> Model Type
作为一个英语渣,实在是压力颇大,然而汉化经常会导致无故的BUG,所以简单翻译一下。
- Business Process Model(业务流程模型):
业务流程模型(BPM)帮助您识别,描述和分解业务流程。您可以在不同层次的细节分析系统,还或者专注于控制流(执行顺序)或数据流(数据交换)。
您可以建模,逆向工程,并生成BPEL,BPMN,和其他许多流程语言。
- Conceptual Data Model(概念数据模型):
概念数据模型(CDM)的帮助您分析信息系统的概念结构,以确定要表示的主要实体,它们的属性,以及它们之间的关系。清洁发展机制是不是合理的(LDM)或物理(PDM)数据模型更为抽象。
- Data Movement Model(数据移动模型):
数据移动模型(DMM)提供的信息,在您的组织运动的全局视图。您可以分析并记录在您的数据来源于,它移动到,它是如何改变的方式,包括复制和ETL。
- Enterprise Architecture Model(企业架构模型):
企业架构模型(EAM)可以帮助您分析和记录你的组织和它的商务功能,在应用程序和支持他们的系统和它们所实现的物理体系结构一起。
- Free Model(自由模型):
一个自由的模型(FEM)为模拟任何物体或系统的上下文环境。它通常与一组扩展,它允许你定义自己的概念和图形符号相关联。
- Logical Data Model(逻辑数据模型):
逻辑数据模型(LDM)可帮助您分析信息系统的结构,独立于任何特定的物理数据库实现的。和LDM已经迁移实体标识符和比概念数据模型(CDM)的较少抽象的,但不允许进行建模视图,索引和在更具体的物理数据模型(PDM)可用其他元素。
- Object-Oriented Model(面向对象模型):
一个面向对象模型(OOM)可以帮助您通过用例,结构和行为的分析,并在部署方面分析的信息系统,使用统一建模语言(UML)。您可以建模,逆向工程,并生成的Java,.NET等语言。
- Physical Data Model(物理数据模型):
物理数据模型(PDM)可以帮助你分析表,视图和其他对象在数据库中,包括多维对象必须为数据仓库。一个PDM比的概念(CDM)或逻辑(LDM)数据模型更加具体。您可以建模,逆向工程,并为所有最流行的DBMS。
- Requirements Model(需求模型):
一个需求模型(RQM)可以帮助您分析任何形式的书面要求和谁将会实现它们的用户和组,并与其他车型的设计对象链接它们。
您可以使用RQM表示任何结构化文档(例如功能规范,测试计划,企业目标等)的要求,MS Word文档导入和导出层次结构。
- XML Model:
一个XML模型(VSM)可帮助您分析XML架构定义(.XSD),文档类型定义(.DTD)或XML数据缩减(.XDR)文件。您可以建模,逆向工程,并生成每个这些文件格式。
Physical Data Model
与数据库相关的模型,一般都使用物理数据模型
输入名字,选择DBMS数据库。
首先配置本地数据源:Database-->Configure Conections -->Add Data Source --> 系统数据源
然后主要就是Database里面的东西,先看一下Database的目录
Change Current DBMS:更改当前数据库
Edit Current DBMS:修改当前数据库
Default Physical Options:默认物理选项
Generate Database:生成数据库(SQL)
Apply Model Changes to Database:更新模型到数据库,正向工程
Update Model from Database:更新数据库到模型,逆向工程
Estimate Database Size:估计数据库大小
Generate Test Data:生成测试数据库
Generate Extraction Scripts:生成提取脚本
Execute SQL:执行SQL
Configure Connections:设置连接
Connect:连接
只是用PD的正向工程与反向工程是远远不够的。
如果需要,修改某一个字段,到数据库中,怎么办呢?
修改某一个字段,同步到数据库修改
首先把未修改的PD文件,同步到数据库。
接着我们另存为一个,File --> Save As --> 类型选择Archived PDM(xml)(*.apm)
然后我们修改需要的字段。
修改完毕后,Database --> Apply Model ... --> 配置图如下
点击确定按钮,会稍微慢一点,耐心等待。然后标红的就是需要修改的字段,接下来直接Run,就OK了
记得,Run以后,会提示你再次保存 apm 文件,直接覆盖即可
反向工程名称注释互换
在数据库反向工程时,有时会碰到名称与注释不符,那么我们可以通过执行脚本来让他同步
如果不想让Name=Code,可以在以下地方设置
Tools-Display Preferences-Content-Table。右边面板Columns勾选StereoType
如果想交换位置,可以在以下地方设置
Tools-Execute Commands-Edit/Run Script
将NAME内容保存到Comment中
'把pd中那么name想自动添加到comment里面 '如果comment为空,则填入name;如果不为空,则保留不变,这样可以避免已有的注释丢失. 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 comment 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 trim(tab.comment)="" then'如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面. tab.comment = tab.name end if Dim col ' running column for each col in tab.columns if trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失. col.comment= col.name end if next end if next Dim view 'running view for each view in folder.Views if not view.isShortcut and trim(view.comment)="" 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
将Comment内容保存到NAME中
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 Private sub ProcessFolder(folder) On Error Resume Next Dim Tab 'running table for each Tab in folder.tables if not tab.isShortcut then tab.name = tab.comment Dim col ' running column for each col in tab.columns if col.comment="" then else col.name= col.comment end if next end if next Dim view 'running view for each view in folder.Views if not view.isShortcut then view.name = view.comment 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
By~