PowerDesigner讲义
- 格式:doc
- 大小:836.00 KB
- 文档页数:52
第一讲PowerDesigner概述【知识要点】1.PowerDesigner简介2.PowerDesigner功能模块组成3.PowerDesigner提供的模型支持4.PowerDesigner界面说明5.PowerDesigner操作方式【逐点讲解】一、PowerDesigner简介Sybase PowerDesigner是Gartner评出的2004年全球排名第一的数据库建模工具,是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。
目前PowerDesigner支持60多种数据库及其不同版本,主要的数据仓库以及数据分析工具(OLAP)等。
利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制PowerDesigner融合了几种标准建模技术:传统数据库建模、使用UML的应用程序建模和业务流程建模,而且支持主流应用程序开发平台(如Java J2EE、Mocriosoft .NET、Web Services和PowerBuilder、Eclipse等)以及流程执行语言(如ebXML和BPEL4WS),它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB 等相配合使用来缩短开发时间和使系统设计更优化。
目前各主要的建模工具厂商如Sybse PowerDesigner, IBM Rational Rose, Computer Associates的ERWin等都在加强各自建模工具的融合与集成。
PowerDesigner经过近20年的发展,已经在原有的数据建模的基础上,形成一套完整的集成化企业级建模解决方案。
二、PowerDesigner功能模块组成PowerDesigner 主要包括以下几个功能部分:1.DataArchitect这是一个强大的数据库设计工具,使用DataArchitect 可利用实体-关系图为一个信息系统创建"概念数据模型"-CDM(Conceptual Data Model)。
PowerDesignerPowerDesigner是Sybase公司推出的一个集成了UML(统一建模语言)和数据建模的CASE(计算器辅助软件工程)工具. 它不仅可以用于系统设计和开发的不同阶段(即商业流程分析、对象分析、对象设计以及开发阶段), 而且可以满足管理、系统设计、开发等相关人员的使用. 是业界第一个同时提供数据库设计开发和应用开发的建模软件. 至今为止, PowerDesigner已推出V12. 利用PowerDesigner 工具:<1> Design models of different types;<2> Share objects between models;<3> Compare and merge models or resources of the same type;<4> Edit and print reports in different languages based on the designed modelsusing the Report Editor;<5> Customize a local environment using the workspace concept;<6> Interchange models using the XMI format;<7> Automate manual PowerDesigner functions with VBScript;<8> Define and generate transformations, and apply them in a model.PowerDesigner11包含8个模块, 即Business Process Model (BPM) 、Conceptual Data Model (CDM) 、Physical Data Model (PDM) 、Object-Oriented Model (OOM) 、Free Model(FEM)、Information Liquidity Model(ILM)、Requirements Model(RQM)和XML Model(XSM). 其中前四个模块覆盖了软件开发生命周期的各个阶段, 图1-1表明了各个模块的相互关系及作用.-------------------------------------------------------------------------------------------------------图1-1 PowerDesigner各个模块的相互关系和作用下面简单介绍前四种模型及其应用操作.业务处理模型简介业务处理模型是从业务人员的角度对业务逻辑和规则进行详细描述的概念模型, 并使用流程图表示从一个或多个起点到终点间的处理过程、流程、消息和协作协议. 通过BPM 可以描述系统的行为和需求, 可以使用图形表示对象的概念组织结构, 然后生成所需要的文檔. 作为一个概念层次的模块, BPM 适用于应用系统的系统分析阶段, 完成系统需求分析和逻辑设计.使用BPM创建BPM<1> 选择File →New 菜单项, 弹出新建窗口;<2> 在窗口中选择要建立的模型类型------Business Process Model, 并单击”OK”按钮, 打开如图2-1所示的默认BPM 工作窗口.图2-1 BPM 工作窗口打开已有BPM<1> 选择File →Open 菜单项, 弹出打开文件窗口;<2> 选择所需打开的BPM文件(文件扩展名为.BPM). 单击”打开”按钮,打开BPM文件.从工作区中删除BPM从工作区中删除BPM时, 需要在Browser窗口中移除该模型节点, 此模型将不再在此工作区中存在, 但BPM文件并不会从计算器中删除. 要删除BPM, 需要在Browser窗口中将要删除的BPM节点上右击鼠标, 从菜单中选择”Detach From Workspace”.设置BPM编辑选项<1> 选择Tools→Model菜单项, 或在流程图窗口中的任何空白处右击并从弹出菜单中选择”Model Options”;<2> 在模型页面中显示模型选项, 可以设置默认消息格式.修改BPM属性<1> 选择Model→Model Properties菜单项, 或在流程图窗口中的任何空白处右击并从弹出菜单中选择”P roperties”;<2> 根据需要修改模型的属性.<3> 修改完毕后, 单击”确定”按钮返回到BPM工作窗口, 保存即可. 创建包<1> 选择Model→Packages菜单项, 弹出包列表窗口;<2> 单击空行或单击新增工具栏按钮(), 在新增包的行首会出现一个箭头, 给出包名和代码的初始值, 将包名和代码设置为需要的值, 双击行首(灰色, 标签为箭头)或单击属性工具栏按钮(), 可打工包属性定义窗口. 单击”OK”按钮保存所做修改. 将会发现在流程图中新增加了一个包. 也可以在流程图窗口中双击需要修改的包打开属性窗口.使用业务规则创建业务规则<1> 选择Model→Business Rules菜单项, 打开业务规则列表窗口;<2>单击空行或单击新增工具栏按钮(), 在业务规则列表中将新增一行, 修改Name和Code, 单击”Apply”按钮保存所做修改. 双击行首或单击属性工具栏按钮(), 可找开业务规则属性窗口.应用业务规则创建业务规则后可以将业务规则应用到BPM中的对象. 具体方法如下:<1> 在流程图中选择需要应用业务规则的对象, 双击后打开对象属性窗口, 选择Rules属性页. 单击工具栏按钮打开选择业务规则窗口;<2> 选择需要应用的业务规则, 单击”OK”按钮返回对象属性窗口. 业务规则将被应用到对象, 关在对象业务规则属性列表中显示.建立BPM定义业务处理流程图业务处理流程图(Business Process Diagram, 简称BPD)表示了业务处理过程间的关系, 注重的是处理过程中的数据流程. 在一个模型或包中可以定义多个业务处理流程图, 各个流程图相互独立地设计一个业务处理. 定义业务处理流程图的具体方法如下:<1> 选择View→Diagram→New Diagram菜单项, 打开新建流程图属性窗口;<2> 在Name中输入流程图名称”NewBPD”后单击”OK”按钮, 将在Workspace下的BPM下新增加了”NewBPD”节点, 右侧工作区中打开了一个新的BPD.定义起点1. 起点(Start)是BPD所表达的整个处理过程的起点, 表示的是处理过程和处理过程外部的入口. 创建起点有两种方法:方法一: 从BPD创建起点<1> 在工具栏中选择起点, 在BPM工作区中单击鼠标, 在单击处会增加起点图标;<2> 在工具栏中选择光标或在流程图中右击鼠标后取消选择起点工具.双击起点图标后打开起点属性窗口;<3> 在起点属性窗口的General标签页中输入起点的名称(Name) 、代码(Code) 、注释(Comment)等属性;<4> 单击”确定”按钮保存所做的修改.方法二: 从起点列表创建起点<1> 选择Model→Starts菜单项, 打开起点列表窗口;<2> 单击空行或单击新增工具栏按钮, 在起点列表中将新增一行;<3> 单击属性工具栏按钮, 弹出应用对象创建提示窗口, 选择”是”应用修改后系统打开起点属性窗口;<4> 输入起点的名称、代码和说明后, 单击”确定”按钮保存所做的修改;<5> 在BPM工作区中会出现起点图标.2. 修改起点的属性有以下两种方式:方法一: 从起点属性窗口修改<1> 在BPM工作区中双击起点图标, 打开起点属性窗口;<2> 根据需要修改起点的属性;<3> 单击”确定”按钮保存所做的修改.方法二: 从起点列表修改<1> 选择Model→Starts菜单项, 打开起点列表;<2> 选择所要修改属性的起点;<3> 直接修改所选起点的属性或单击属性工具栏按钮打开属性页后修改起点属性;<4> 单击”OK”按钮保存所做的修改.3. 显示BPM中起点的名称<1> 选择Tools→Display Preferences菜单项, 打开显示参数窗口;<2> 在左侧Category目录树中选择Object View→Start & End, 打开Start_End参数窗口. 选择Show name靠选项;<3> 单击”OK”按钮返回流程图, 就会发现在起点的下方会显示出起点的名称.定义处理过程处理过程可以认为是为了达到某个目标而执行的动作. 每个处理过程都至少有一个输入流和一个输出流.1.创建处理过程, 有两种方法方法一: 从BPD创建处理过程<1> 在工具栏中选择处理过程工具, 在BPM工作区中单击鼠标, 所单击位置会增加一个处理过程的图标, 新增处理过程的默认名称为”Process_X”, 其中X为处理过程序号;<2> 在工具栏中选择指针工具或右击鼠标, 取消选择处理过程工具;<3> 双击处理过程图标打开处理过程属性窗口, 设置其属性;<4> 修改完毕后单击”确定”按钮保存所做修改.方法二: 从处理过程列表创建<1> 选择Model→Processes菜单项, 打开处理过程列表;<2> 单击空行或单击新增工具按钮, 新增处理过程;<3> 输入新增处理过程的名称和代码;<4> 单击”OK”按钮保存. 新增处理过程的图标会增加到BPM中.2.处理过程的属性处理过程具有的属性包括名称(Name)、代码(Code)、说明(Comment)、版型(Stereotype)、组织单元(Organization unit)、复合处理过程(Composite)、显示模型中的执行过程(Implemented by)和动作(Action)等属性.定义组织单元组织单元是指为处理过程负责的组织, 可以是公司、系统、服务、组织、用户或者角色, 也可以认为是使用更高级处理过程的业务伙伴.1.创建组织单元, 有两种方法方法一: 从BPD创建组织单元<1> 在工具栏中选择组织单元工具图标;<2> 在流程图中单击鼠标, 单击位置会增加一个组织单元的图标, 新增组织单元的默认名称为”OrganizationUnit_X”.<3> 在工具栏中选择指针工具或右击鼠标, 取消选择组织单元工具.双击组织单元图标打开组织单元属性窗口.方法二: 从组织单元列表创建<1> 选择Model→Organization Units菜单项, 打开组织单元列表;<2> 单击空行或单击新增工具按钮, 新增组织单元;<3> 输入新增组织单元的名称和代码;<4> 单击”OK”保存修改. 新增组织单元的图标会增加到BPM中.2.组织单元的属性组织单元具有的属性包括名称(Name)、代码(Code)、说明(Comment)、版型(Stereotype)、父级组织单元(Parent)等.定义流程流程表示存在或可能存在数据交互的两个对象间的交互关系.1.创建流程, 有两种方法方法一: 从BPD创建流程<1> 在工具栏中选择流程/资源流程工具;<2> 在流程图中起始处理过程内单击鼠标并拖动鼠标至第二个处理过程. 两个处理过程间会增加一个流程的图标, 新流程的默认名称为”Flow_X”;<3> 在工具栏中选择指针工具或右击鼠标, 取消选择流程工具. 双击流程图标打开流程属性窗口, 设置其属性.方法二: 从流程列表创建<1> 选择Model→Flows菜单项, 打开流程列表;<2> 单击空行或单击新增工具按钮, 新增流程;<3> 选择流程起始和终止对象, 你也可以选择消息格式. 单击属性工具栏按钮打开流程属性窗口. 输入新增流程的名称和代码;<4> 单击”OK”保存修改. 新增组织单元的图标会增加到BPM中.2.流程的属性流程包含名称(Name)、代码(Code)、说明(Comment)、流程的起始对象(Source) 、流程的终止对象(Destination) 、版型(Stereotype) 、数据流的传输方式(Transport) 、流程类型(Flow type)和处理过程间的数据交互格式(Message format)等属性.定义消息格式消息格式定义了流程间的两个对象所要交互数据的数据格式. 如果没有数据交互, 可以不用定义任何消息格式.1.创建消息格式, 有两种方法方法一: 从流程属性页面创建消息格式<1> 在流程图中双击流程图标, 打开流程属性窗口;<2> 单击消息格式下拉列表旁的创建工具, 确定提交对象创建, 打开消息格式属性窗口;<3> 输入/选择消息格式属性;<4> 单击”确定”按钮保存修改.方法二: 从消息格式栏表创建<1> 选择Model Messages Formats菜单项, 打开消息格式栏表;<2> 单击空行或单击新增工具按钮, 新增消息格式;<3> 输入新增消息格式的名称和代码;<4> 单击”确定”按钮保存修改;<5> 选择需要设置消息格式的流程, 打开其属性窗口, 从消息格式下拉列表中选择新增加的消息格式;<6> 新增消息格式的图标会增加到其所关联的流程上.2.消息格式的属性消息格式包含名称(Name)、代码(Code)、说明(Comment)、版型(Stereotype)和类型(Message format type)等属性.定义资源资源类似数据存储, 可以是数据、文文件)、数据库)、组件等处理过程, 可以用于特殊事务.1.创建资源, 有两种方法方法一: 从BPD创建资源<1> 在工具栏中选择资源工具, 在流程图中单击鼠标, 在单击处会增加资源图标;<2> 在工具栏中选择光标或在流程图中右击鼠标后取消选择资源工具. 双击资源图标后打开资源属性窗口;<3> 输入资源的名称和代码;<4> 单击”确定”按钮保存所做修改.方法二: 从资源列表创建<1> 选择Model→Resources菜单项, 打开资源列表;<2> 单击空行或单击新增工具按钮, 新增资源;<3> 输入新增资源的名称和代码;<4> 单击”OK”按钮保存修改. 新增资源的图标会增加到BPM中.2.资源的属性资源包含名称(Name)、代码(Code)、说明(Comment)、版型(Stereotype)等属性.定义资源流程1.创建资源流程, 有两种方法方法一: 从BPD创建资源流程<1> 在工具栏中选择流程/资源流程工具;<2> 在流程图中起始处理过程内单击鼠标并拖动鼠标至资源. 两者间会增加一个资源流程的图标, 新流程的默认名称为”Resource Flow_X”;<3> 在工具栏中选择指针工具或右击鼠标, 取消选择资源流程工具. 双击资源流程图标, 打开资源流程属性窗口;<4> 定义完毕后, 单击”确定”按钮保存修改.方法二: 从资源流程列表创建资源流程<1> 选择Model→Resource Flows菜单项, 打开资源流程列表;<2> 单击空行或单击新增工具按钮, 新增资源流程;<3> 选择资源流程起始和终止对象, 也可以选择消息格式和访问方式. 单击属性工具栏按钮打开资源流程属性窗口. 输入新增流程的名称和代码;<4> 单击”确定”按钮保存修改. 新增资源流程的图标会增加到BPM中.2.资源流程的属性资源流程的属性包含名称(Name)、代码(Code)、说明(Comment)、资源流程的处理过程端(Process) 、资源流程的资源端(Resource) 、版型(Stereotype) 、消息格式(Message format)和访问方式(Access mode)等属性.定义终点终点是业务流程图中处理过程的终止点. 因为在一个模型或包中可以使用多个业务处理过程, 因此在一个包或模型中允许定义多个终点. 1.创建终点, 有两种方法方法一: 从BPD创建终点<1> 在工具栏中选择终点工具, 在流程图中单击图标, 在单击处会增加终点图标;<2> 在工具栏中选择指针或在流血图中右击鼠标后取消选择终点工具. 双击终点图标后打开终点属性窗口;<3> 输入终点的名称和代码;<4> 单击”确定”按钮保存所做的修改.方法二: 从终点列表创建终点<1> 选择Model→Ends菜单项, 打开终点列表窗口;<2> 单击空行或单击新增工具栏按钮, 在终点列表中将新增一行;<3> 单击属性工具栏按钮, 弹出应用对象创建提示窗口, 选择”是”应用修改后系统打开终点属性图标;<4> 输入终点的名称、代码和说明后单击”确定”按钮保存所作的修改.在BPM中会出现终点图标.2.终点的属性终点的属性包含名称(Name)、代码(Code)、说明(Comment)、版型(Stereotype)和类型(Type)等属性.概念数据模型简介在实际工作中, 数据库的设计通常都是从概念结构设计开始的. 在这个层次上, 不需要考虑实际物理实现的细节, 只需要考虑实体和实体之间的联系, 这样便于分析和理解.CDM表达的是数据库的整体逻辑结构, 该结构独立于任何软件和数据存储结构, 即它只是系统分析人员、应用程序设计人员、维护人员和用户之间相互理解的共同语言, 并不针对具体的数据库平台(如Oracle或SQL Server)和工具(PowerBuilder). CDM所包含的对象通常并没有在物理数据库中实现.它仅仅给出了商业或业务活动中所需要数据的形式化的表示.通过建立CDM可以完成以下工作:◆数据图形化、形象化;◆数据表设计的合法性校验;◆转化为PDM;◆生成OOM的类图.基本概念实体及属性、联系、域、业务规则联系可分为: 一对一联系(One to One)、一对多联系(One to Many)、多对多联系(Many to Many)、递归联系(Recursive Relationship)以及标识联系(Identify Relationship, 也称依赖关系)等.业务规则反映信息系统所描述对象的特殊的数据完整性约束. 一个业务规则可以是一个行业标准, 一个客户需求或者一本软件开发规范手册.建立CDM建立实体和属性<1> 选择File New 菜单项, 在弹出的菜单中选择要建立的模型------Conceptual Data Model(概念模型);<2> 单击”OK”按钮,CDM 工作区, 可以利用工具窗图3-1 CDM 工作窗口.<3> 选择工具窗口中的实体图标, 光标变为该图标形状, 在设计窗口的适当位置单击鼠标, 在单击的位置上出现一个实体符号;<4> 在设计窗口的空白区域, 单击右键使得光标变为箭头形状, 然后选中该实体并双击, 打开实体属性窗口;<5> 在Name栏中输入实体名称”作者”, 在Code栏中输入实体代码”AUTHOR”, 单击Attributes, 在该页中定义实体的属性.建立实体之间的关系<1> 选择工具窗口中的(Relationship)图标, 光标变为形状, 单击第一个实体”作者”, 保持左键按下的同时把光标拖拽到第二个实体”作品”上然后释放左键, 一个默认联系就建立了;<2> 选中定义的联系, 双击将打开联系属性对话框. 在General页中定义联系的常规属性. 两个实体具体有什么类型在Detail页中定义.定义概念模型的属性<1> 打开所建立的CDM模型, 选择Model→Model Properties菜单项, 打开该模型的模型属性窗口, 分别输入相应属性;<2> 选择File→Save菜单项, 保存模型.定义概念模型的显示参数和选项定义模型的显示参数定义CDM显示参数的具体方法如下:<1> 打开CDM模型, 选择Tools→Display Preferences菜单项, 打开模型显示参数窗口, 在General节点中设置模型窗口的基本显示参数;<2> 在模型显示参数窗口中, 单击Object View属性页, 在窗口右侧中可以定义CDM所有对象的名称长度属性;<3> 还可以进一步定义CDM中实体, 关联等属性;<4> 在Format节点中还可以定义显示格式, 相关属性见显示对话框;<5> 单击窗口右侧的”Modify…”按钮, 打开图形符号格式(SymbolFormal)窗口. 可以修改实体图形符号的宽度和高度;<6> 定义完毕后, 单击”OK”按钮, 返回到主窗口, 保存即可.定义模型的选项CDM模型选择包括Model和Naming Convention两类. Model用来设置整个模型的选项, Naming Convention用来设置每种对象的命名约定. 具体方法如下:<1> 打开CDM模型, 选择Tools→Model Options菜单项打开模型选项窗口;<2> 单击Naming Convention节点, 显示模型选项设置窗口. 在窗口右侧选择Name单选按钮, 所有对象的图形符号显示其名称; 若选择Code 单选按钮, 则显示其代码;<3> 单击”OK”按钮, 返回到主窗口, 保存即可.创建CDM域创建域创建域的具体方法如下:<1> 选择Model→Domains菜单项, 弹出域列表(List of Domains)窗口;<2> 单击该表中的一个空行, 或者单击Add a Row工具, 在第一个空白行行首会出现一个右箭头. 输入名称和代码;<3> 为域选择数据类型;<4> 定义完毕后, 单击”OK”按钮保存修改, 并返回到域属性定义窗口.在CDM中指定数据类型、长度和精度<略>定义数据项定义新数据项<1> 选择Model→Data Items菜单项, 打开数据项列表(List of DataItems)窗口;……设置数据项的代码和重用选项<1> 选择Tools→Model Options菜单项, 打开模型选项(Model Options)窗口;<2> 在左侧Category树中选择Model;<3> 在Data Item栏中选择/取消Unique code项;<4> 在Data Item栏中选择/取消Allow reuse项.将数据项连接到域将数据项连接到域的方法是:<1> 选择Model→Data Items菜单项, 打开List of Data Items窗口;<2> 单击所要定义的数据项, 该行行首会出现一个右箭头;<3> 单击Property工具或双击行首箭头, 弹出数据项属性窗口;<4> 在General页底部Domain下拉列表中选择所要连接的域并单击”OK”按钮.检查CDMCDM检查选项的设置CDM中对象的检查(包括: Package(包)、Domain(域)、DataItem(数据项)、Entity(实体)、Entity Attribute(实体属性)、Entity Identifier(实体标识符)、Relationship(联系)、Association(关联)、Inheritance(继承)和File Object(文件对象))由CDM生成PDMCDM生成PDM时, 其中的对象要转换成PDM中的对象, 即物理数据库中的对象.下面介绍CDM生成PDM的具体过程:<1> 打开CDM模型, 选择Tools Generate Physical Data Model, 打开如图3-2所示的生成PDM设置(PDM Generation Options)窗口, 在General页中选择生成PDM的方式及其参数. 选择Generate new Physical Data Model表示生成新的PDM, 选择Update existing Physical Data Model则与已经存在的PDM 合并生成新的PDM;图3-2 PDM Generation Options窗口<2> 选择Detail页, 进行细节选项设置, 如图3-3所示;图3-3 PDM Generation Options窗口<3> 选择Selection页, 选择要转换为PDM表的实体, 如图3-4所示;图3-4 PDM Generation Options窗口<4> 单击”确定”按钮, 开始生成PDM, 在Result List窗口中显示在处理过程中出现的警告、错误和提示信息, 如图3-5所示;图3-5 模型检查结果<5> 根据提示对出现的警告和错误进行修改.由CDM生成OOM当从CDM生成OOM时, PowerDesigner把CDM中的对象和数据类型转换成UML语言支持的OOM对象和数据类型.CDM的对象与OOM的对象之间的对应关系如表3-1所示.表3-1 CDM与OOM中对象之间的对照表CDM中的数据类型与OOM中的数据类型的对应关系如表3-2所示.表3-2 CDM与OOM中数据类型对照表CDM生成OOM的具体方法:<1> 打开CDM模型, 选择Tools Generate Object-Oriented Model菜单项, 打开如图3-6所示的生成OOM的选项设置(OOM Generation Options)窗口, 其各个选项含义见PowerDesigner介绍;图3-6 生成OOM的选项设置窗口<2> 选择Detail页, 进行其他选项设置, 如图3-7所示;图3-7 生成OOM的选项设置窗口<3> 选择Selection页, 可以选择CDM包和实体, 如图3-8所示;<4> 单击”确定”按钮, 开始生成OOM.物理数据模型简介物理数据模型是以常用的DBMS理论为基础, 将CDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本. 利用该SQL脚本在数据库中产生现实世界信息的存储结构(表、约束等), 并保证数据在数据库中的完整性和一致性.图4-1 PDM与DBMS的关系图PDM以PowerDesigner为每种数据库提供数据定义文件(扩展名为.xdb)作为语法模板来生成SQL语言脚本. 利用正向工程, 由PDM生成SQL脚本, 再通过SQL脚本在数据库中建立相应的数据存储结构. 反之, 也可以利用逆向工程, 通过数据库中已存在的数据存储结构导出对应的PDM.ODBC或专用数据库接口ODBC或专用数据库接口PDM中涉及到的基本概念表、列、视图、主键、候选键、外部键<1> 表是数据库中用来保存信息的一种数据结构.<2> 列是组成表的基本单元, 表由多个列组成, 每个列都有一个数据类型.<3> 视图是从一个或多个基本表或其他视图中导出的表, 它可以形象地被看做是一个活动窗口, 在数据库中通过它可以看到自己感兴趣的内容.<4> 主键是用来惟一标识表中一条记录的一个或多个列的集合.<5> 候选键也是用来惟一标识表中一条记录的一个或多个列的集合.<6> 外键是与其他连接的公共列, 这个列通常是其他表的主键.存储过程和触发器存储过程(Stored Procedure)是由SQL语句和控制流语句构成的集合. 存储过程的建立大大提高SQL的效率和灵活性. (存储过程是预编译好的;存储过程简化了安全机制等).触发器是一种特殊的存储过程, 它在某特定表的数据被添加、删除或更改时发挥作用. 其主要用途如下:<1> 能够对数据库多个有关表的内容进行级联修改, 即删除父表中的某些记录是可以将子表中相应的记录删除. 当违反参照完整性时, 触发器能撤回试图进行数据修改的事务;<2> 触发器能够实施比规则复杂得多的限制;<3> 触发器还能比较数据修改前后某表的状态, 并采取相应行动.默认和规则完整性检查约束(惟一性和主键、检查约束、限制空值和提供列的默认值)完整性是指数据库中数据的正确性和一致性. 通过对数据库中插入、删除和修改数据值进行限制和约束来实现数据的完整性, 数据库提供两种保持数据完整性的方法: 一是在定义表时定义完整性约束; 二是定义规则、约束、索引和触发器.索引(组合索引、惟一索引、聚簇索引和非聚簇索引)索引描述了数据在表中是如何组织的. 可以创建一个或多个索引来加快数据库的查询速度. 索引对用户是透明的, 数据库自动确定何时使用表的索引.创建PDM建立PDM的方法<1> 使用设计环境直接建立PDM;<2> 从现存数据库或数据库SQL脚本逆向工程建立PDM;<3> 从CDM采用内部模型生成的方法建立PDM;<4> 从面向对象模型(OOM)中的类图彩模型的内部生成方法建立PDM.使用设计环境直接建立PDM的方法如下:<1> 在PowerDesigner主窗口选择File New菜单项, 打开如图4-2所。
第2章PowerDesigner软件分析建模的基本概念PowerDesigner的首席架构师王晓昀,于1989年在法国SDP公司研制出的名为AMC*Designor1.0数据库建模工具,获得了良好的经济和社会效益。
1991年产品定名为S-Designor,并在美国开始销售。
1995年Powersoft公司收购了SDP公司,同年Sybase收购了Powersoft,此后该产品更名为PowerDesigner。
PowerDesigner经历了两个发展阶段。
第一阶段从1989年到1996年,版本从1.0发展到6.0,其主要目标是应用实体-联系(Entity-Relationship,简称E-R)理论解决数据建模问题;第二阶段从1996年至今,版本从6.0发展到15.0,其主要目标是完成业务流程建模、数据建模、应用程序建模和代码生成等工作。
目前,PowerDesigner几乎能够完成软件分析建模的全部工作,但在代码生成和集成开发环境(Integrated Develop Environment,简称IDE)的支持方面尚需进一步完善。
2.1 PowerDesigner概况长期以来,软件开发过程缺乏规划,并且没有详细的文档,这给软件的维护工作带来很多困难。
为了降低软件维护的难度,提高软件质量,使分析人员、开发人员、测试人员、数据库管理人员、用户之间能够通过设计文档进行有效的沟通,许多计算机软件厂商都在研制计算机辅助软件工程(Computer Aided Software Engineering,简称CASE)平台,用来完成软件的分析建模工作。
如Sybase、IBM、CA和Microsoft等,其中Sybase公司的PowerDesigner 就是最优秀的CASE平台之一,使用这个平台可以更好地完成软件的分析建模工作,为设计更优秀的软件产品提供了保证。
2.1.1软件分析建模需要安装的软件1.安装PowerDesigner12.5打开PowerDesigner12.5安装盘,双击Setup.exe文件,根据提示完成安装。
PowerDesignerPowerDesigner是Sybase公司推出的一個集成了UML(統一建模語言)和數據建模的CASE(計算機輔助軟件工程)工具. 它不僅可以用于系統設計和開發的不同階段(即商業流程分析、對象分析、對象設計以及開發階段), 而且可以滿足管理、系統設計、開發等相關人員的使用. 是業界第一個同時提供數據庫設計開發和應用開發的建模軟件. 至今為止, PowerDesigner已推出V12. 利用PowerDesigner 工具:<1> Design models of different types;<2> Share objects between models;<3> Compare and merge models or resources of the same type;<4> Edit and print reports in different languages based on the designed modelsusing the Report Editor;<5> Customize a local environment using the workspace concept;<6> Interchange models using the XMI format;<7> Automate manual PowerDesigner functions with VBScript;<8> Define and generate transformations, and apply them in a model.PowerDesigner11包含8個模塊, 即Business Process Model (BPM) 、Conceptual Data Model (CDM) 、Physical Data Model (PDM) 、Object-Oriented Model (OOM) 、Free Model(FEM)、Information Liquidity Model(ILM)、Requirements Model(RQM)和XML Model(XSM). 其中前四個模塊覆蓋了軟件開發生命周期的各個階段, 圖1-1表明了各個模塊的相互關系及作用.-------------------------------------------------------------------------------------------------------圖1-1 PowerDesigner各個模塊的相互關系和作用下面簡單介紹前四種模型及其應用操作.業務處理模型簡介業務處理模型是從業務人員的角度對業務邏輯和規則進行詳細描述的概念模型, 并使用流程圖表示從一個或多個起點到終點間的處理過程、流程、消息和協作協議. 通過BPM 可以描述系統的行為和需求, 可以使用圖形表示對象的概念組織結構, 然后生成所需要的文檔. 作為一個概念層次的模塊, BPM 適用于應用系統的系統分析階段, 完成系統需求分析和邏輯設計.使用BPM創建BPM<1> 選擇File →New 菜單項, 彈出新建窗口;<2> 在窗口中選擇要建立的模型類型------Business Process Model, 并單擊”OK ”按鈕, 打開如圖2-1所示的默認BPM 工作窗口.圖2-1 BPM 工作窗口打開已有BPM<1> 選擇File →Open 菜單項, 彈出打開文件窗口;<2> 選擇所需打開的BPM 文件(文件擴展名為.BPM). 單擊”打開”按鈕, 打開BPM 文件.從工作區中刪除BPM從工作區中刪除BPM時, 需要在Browser窗口中移除該模型節點, 此模型將不再在此工作區中存在, 但BPM文件并不會從計算機中刪除. 要刪除BPM, 需要在Browser窗口中將要刪除的BPM節點上右擊鼠標, 從菜單中選擇”Detach From Workspace”.設置BPM編輯選項<1> 選擇Tools→Model菜單項, 或在流程圖窗口中的任何空白處右擊并從彈出菜單中選擇”Model Options”;<2> 在模型頁面中顯示模型選項, 可以設置默認消息格式.修改BPM屬性<1> 選擇Model→Model Properties菜單項, 或在流程圖窗口中的任何空白處右擊并從彈出菜單中選擇”Properties”;<2> 根據需要修改模型的屬性.<3> 修改完畢后, 單擊”確定”按鈕返回到BPM工作窗口, 保存即可. 創建包<1> 選擇Model→Packages菜單項, 彈出包列表窗口;<2> 單擊空行或單擊新增工具欄按鈕(), 在新增包的行首會出現一個箭頭, 給出包名和代碼的初始值, 將包名和代碼設置為需要的值, 雙擊行首(灰色, 標簽為箭頭)或單擊屬性工具欄按鈕(), 可打工包屬性定義窗口. 單擊”OK”按鈕保存所做修改. 將會發現在流程圖中新增加了一個包. 也可以在流程圖窗口中雙擊需要修改的包打開屬性窗口.使用業務規則創建業務規則<1> 選擇Model→Business Rules菜單項, 打開業務規則列表窗口;<2>單擊空行或單擊新增工具欄按鈕(), 在業務規則列表中將新增一行, 修改Name和Code, 單擊”Apply”按鈕保存所做修改. 雙擊行首或單擊屬性工具欄按鈕(), 可找開業務規則屬性窗口.應用業務規則創建業務規則后可以將業務規則應用到BPM中的對象. 具體方法如下:<1> 在流程圖中選擇需要應用業務規則的對象, 雙擊后打開對象屬性窗口, 選擇Rules屬性頁. 單擊工具欄按鈕打開選擇業務規則窗口;<2> 選擇需要應用的業務規則, 單擊”OK”按鈕返回對象屬性窗口. 業務規則將被應用到對象, 關在對象業務規則屬性列表中顯示.建立BPM定義業務處理流程圖業務處理流程圖(Business Process Diagram, 簡稱BPD)表示了業務處理過程間的關系, 注重的是處理過程中的數據流程. 在一個模型或包中可以定義多個業務處理流程圖, 各個流程圖相互獨立地設計一個業務處理. 定義業務處理流程圖的具體方法如下:<1> 選擇View→Diagram→New Diagram菜單項, 打開新建流程圖屬性窗口;<2> 在Name中輸入流程圖名稱”NewBPD”后單擊”OK”按鈕, 將在Workspace下的BPM下新增加了”NewBPD”節點, 右側工作區中打開了一個新的BPD.定義起點1. 起點(Start)是BPD所表達的整個處理過程的起點, 表示的是處理過程和處理過程外部的入口. 創建起點有兩種方法:方法一: 從BPD創建起點<1> 在工具欄中選擇起點, 在BPM工作區中單擊鼠標, 在單擊處會增加起點圖標;<2> 在工具欄中選擇光標或在流程圖中右擊鼠標后取消選擇起點工具.雙擊起點圖標后打開起點屬性窗口;<3> 在起點屬性窗口的General標簽頁中輸入起點的名稱(Name) 、代碼(Code) 、注釋(Comment)等屬性;<4> 單擊”確定”按鈕保存所做的修改.方法二: 從起點列表創建起點<1> 選擇Model→Starts菜單項, 打開起點列表窗口;<2> 單擊空行或單擊新增工具欄按鈕, 在起點列表中將新增一行;<3> 單擊屬性工具欄按鈕, 彈出應用對象創建提示窗口, 選擇”是”應用修改后系統打開起點屬性窗口;<4> 輸入起點的名稱、代碼和說明后, 單擊”確定”按鈕保存所做的修改;<5> 在BPM工作區中會出現起點圖標.2. 修改起點的屬性有以下兩種方式:方法一: 從起點屬性窗口修改<1> 在BPM工作區中雙擊起點圖標, 打開起點屬性窗口;<2> 根據需要修改起點的屬性;<3> 單擊”確定”按鈕保存所做的修改.方法二: 從起點列表修改<1> 選擇Model→Starts菜單項, 打開起點列表;<2> 選擇所要修改屬性的起點;<3> 直接修改所選起點的屬性或單擊屬性工具欄按鈕打開屬性頁后修改起點屬性;<4> 單擊”OK”按鈕保存所做的修改.3. 顯示BPM中起點的名稱<1> 選擇Tools→Display Preferences菜單項, 打開顯示參數窗口;<2> 在左側Category目錄樹中選擇Object View→Start & End, 打開Start_End參數窗口. 選擇Show name靠選項;<3> 單擊”OK”按鈕返回流程圖, 就會發現在起點的下方會顯示出起點的名稱.定義處理過程處理過程可以認為是為了達到某個目標而執行的動作. 每個處理過程都至少有一個輸入流和一個輸出流.1.創建處理過程, 有兩種方法方法一: 從BPD創建處理過程<1> 在工具欄中選擇處理過程工具, 在BPM工作區中單擊鼠標, 所單擊位置會增加一個處理過程的圖標, 新增處理過程的默認名稱為”Process_X”, 其中X為處理過程序號;<2> 在工具欄中選擇指針工具或右擊鼠標, 取消選擇處理過程工具;<3> 雙擊處理過程圖標打開處理過程屬性窗口, 設置其屬性;<4> 修改完畢后單擊”確定”按鈕保存所做修改.方法二: 從處理過程列表創建<1> 選擇Model→Processes菜單項, 打開處理過程列表;<2> 單擊空行或單擊新增工具按鈕, 新增處理過程;<3> 輸入新增處理過程的名稱和代碼;<4> 單擊”OK”按鈕保存. 新增處理過程的圖標會增加到BPM中.2.處理過程的屬性處理過程具有的屬性包括名稱(Name)、代碼(Code)、說明(Comment)、版型(Stereotype)、組織單元(Organization unit)、復合處理過程(Composite)、顯示模型中的執行過程(Implemented by)和動作(Action)等屬性.定義組織單元組織單元是指為處理過程負責的組織, 可以是公司、系統、服務、組織、用戶或者角色, 也可以認為是使用更高級處理過程的業務伙伴.1.創建組織單元, 有兩種方法方法一: 從BPD創建組織單元<1> 在工具欄中選擇組織單元工具圖標;<2> 在流程圖中單擊鼠標, 單擊位置會增加一個組織單元的圖標, 新增組織單元的默認名稱為”OrganizationUnit_X”.<3> 在工具欄中選擇指針工具或右擊鼠標, 取消選擇組織單元工具.雙擊組織單元圖標打開組織單元屬性窗口.方法二: 從組織單元列表創建<1> 選擇Model→Organization Units菜單項, 打開組織單元列表;<2> 單擊空行或單擊新增工具按鈕, 新增組織單元;<3> 輸入新增組織單元的名稱和代碼;<4> 單擊”OK”保存修改. 新增組織單元的圖標會增加到BPM中.2.組織單元的屬性組織單元具有的屬性包括名稱(Name)、代碼(Code)、說明(Comment)、版型(Stereotype)、父級組織單元(Parent)等.定義流程流程表示存在或可能存在數據交互的兩個對象間的交互關系.1.創建流程, 有兩種方法方法一: 從BPD創建流程<1> 在工具欄中選擇流程/資源流程工具;<2> 在流程圖中起始處理過程內單擊鼠標并拖動鼠標至第二個處理過程. 兩個處理過程間會增加一個流程的圖標, 新流程的默認名稱為”Flow_X”;<3> 在工具欄中選擇指針工具或右擊鼠標, 取消選擇流程工具. 雙擊流程圖標打開流程屬性窗口, 設置其屬性.方法二: 從流程列表創建<1> 選擇Model→Flows菜單項, 打開流程列表;<2> 單擊空行或單擊新增工具按鈕, 新增流程;<3> 選擇流程起始和終止對象, 你也可以選擇消息格式. 單擊屬性工具欄按鈕打開流程屬性窗口. 輸入新增流程的名稱和代碼;<4> 單擊”OK”保存修改. 新增組織單元的圖標會增加到BPM中.2.流程的屬性流程包含名稱(Name)、代碼(Code)、說明(Comment)、流程的起始對象(Source) 、流程的終止對象(Destination) 、版型(Stereotype) 、數據流的傳輸方式(Transport) 、流程類型(Flow type)和處理過程間的數據交互格式(Message format)等屬性.定義消息格式消息格式定義了流程間的兩個對象所要交互數據的數據格式. 如果沒有數據交互, 可以不用定義任何消息格式.1.創建消息格式, 有兩種方法方法一: 從流程屬性頁面創建消息格式<1> 在流程圖中雙擊流程圖標, 打開流程屬性窗口;<2> 單擊消息格式下拉列表旁的創建工具, 確定提交對象創建, 打開消息格式屬性窗口;<3> 輸入/選擇消息格式屬性;<4> 單擊”確定”按鈕保存修改.方法二: 從消息格式列表創建<1> 選擇Model→Messages Formats菜單項, 打開消息格式列表;<2> 單擊空行或單擊新增工具按鈕, 新增消息格式;<3> 輸入新增消息格式的名稱和代碼;<4> 單擊”確定”按鈕保存修改;<5> 選擇需要設置消息格式的流程, 打開其屬性窗口, 從消息格式下拉列表中選擇新增加的消息格式;<6> 新增消息格式的圖標會增加到其所關聯的流程上.2.消息格式的屬性消息格式包含名稱(Name)、代碼(Code)、說明(Comment)、版型(Stereotype)和類型(Message format type)等屬性.定義資源資源類似數據存儲, 可以是數據、文檔)、數據庫)、組件等處理過程, 可以用于特殊事務.1.創建資源, 有兩種方法方法一: 從BPD創建資源<1> 在工具欄中選擇資源工具, 在流程圖中單擊鼠標, 在單擊處會增加資源圖標;<2> 在工具欄中選擇光標或在流程圖中右擊鼠標后取消選擇資源工具. 雙擊資源圖標后打開資源屬性窗口;<3> 輸入資源的名稱和代碼;<4> 單擊”確定”按鈕保存所做修改.方法二: 從資源列表創建<1> 選擇Model→Resources菜單項, 打開資源列表;<2> 單擊空行或單擊新增工具按鈕, 新增資源;<3> 輸入新增資源的名稱和代碼;<4> 單擊”OK”按鈕保存修改. 新增資源的圖標會增加到BPM中.2.資源的屬性資源包含名稱(Name)、代碼(Code)、說明(Comment)、版型(Stereotype)等屬性.定義資源流程1.創建資源流程, 有兩種方法方法一: 從BPD創建資源流程<1> 在工具欄中選擇流程/資源流程工具;<2> 在流程圖中起始處理過程內單擊鼠標并拖動鼠標至資源. 兩者間會增加一個資源流程的圖標, 新流程的默認名稱為”Resource Flow_X”;<3> 在工具欄中選擇指針工具或右擊鼠標, 取消選擇資源流程工具. 雙擊資源流程圖標, 打開資源流程屬性窗口;<4> 定義完畢后, 單擊”確定”按鈕保存修改.方法二: 從資源流程列表創建資源流程<1> 選擇Model Resource Flows菜單項, 打開資源流程列表;<2> 單擊空行或單擊新增工具按鈕, 新增資源流程;<3> 選擇資源流程起始和終止對象, 也可以選擇消息格式和訪問方式. 單擊屬性工具欄按鈕打開資源流程屬性窗口. 輸入新增流程的名稱和代碼;<4> 單擊”確定”按鈕保存修改. 新增資源流程的圖標會增加到BPM中.2.資源流程的屬性資源流程的屬性包含名稱(Name)、代碼(Code)、說明(Comment)、資源流程的處理過程端(Process) 、資源流程的資源端(Resource) 、版型(Stereotype) 、消息格式(Message format)和訪問方式(Access mode)等屬性.定義終點終點是業務流程圖中處理過程的終止點. 因為在一個模型或包中可以使用多個業務處理過程, 因此在一個包或模型中允許定義多個終點. 1.創建終點, 有兩種方法方法一: 從BPD創建終點<1> 在工具欄中選擇終點工具, 在流程圖中單擊圖標, 在單擊處會增加終點圖標;<2> 在工具欄中選擇指針或在流血圖中右擊鼠標后取消選擇終點工具. 雙擊終點圖標后打開終點屬性窗口;<3> 輸入終點的名稱和代碼;<4> 單擊”確定”按鈕保存所做的修改.方法二: 從終點列表創建終點<1> 選擇Model→Ends菜單項, 打開終點列表窗口;<2> 單擊空行或單擊新增工具欄按鈕, 在終點列表中將新增一行;<3> 單擊屬性工具欄按鈕, 彈出應用對象創建提示窗口, 選擇”是”應用修改后系統打開終點屬性圖標;<4> 輸入終點的名稱、代碼和說明后單擊”確定”按鈕保存所作的修改.在BPM中會出現終點圖標.2.終點的屬性終點的屬性包含名稱(Name)、代碼(Code)、說明(Comment)、版型(Stereotype)和類型(Type)等屬性.概念數據模型簡介在實際工作中, 數據庫的設計通常都是從概念結構設計開始的. 在這個層次上, 不需要考慮實際物理實現的細節, 只需要考慮實體和實體之間的聯系, 這樣便于分析和理解.CDM表達的是數據庫的整體邏輯結構, 該結構獨立于任何軟件和數據存儲結構, 即它只是系統分析人員、應用程序設計人員、維護人員和用戶之間相互理解的共同語言, 并不針對具體的數據庫平台(如Oracle或SQL Server)和工具(PowerBuilder). CDM所包含的對象通常并沒有在物理數據庫中實現.它僅僅給出了商業或業務活動中所需要數據的形式化的表示.通過建立CDM可以完成以下工作:◆數據圖形化、形象化;◆數據表設計的合法性校驗;◆轉化為PDM;◆生成OOM的類圖.基本概念實體及屬性、聯系、域、業務規則聯系可分為: 一對一聯系(One to One)、一對多聯系(One to Many)、多對多聯系(Many to Many)、遞歸聯系(Recursive Relationship)以及標識聯系(Identify Relationship, 也稱依賴關系)等.業務規則反映信息系統所描述對象的特殊的數據完整性約束. 一個業務規則可以是一個行業標准, 一個客戶需求或者一本軟件開發規范手冊.建立CDM建立實體和屬性<1> 選擇File New 菜單項, 在彈出的菜單中選擇要建立的模型------Conceptual Data Model(概念模型);<2> 單擊”OK ”按鈕,CDM 工作區, 可以利用工具窗圖3-1 CDM 工作窗口.<3> 選擇工具窗口中的實體圖標, 光標變為該圖標形狀, 在設計窗口的適當位置單擊鼠標, 在單擊的位置上出現一個實體符號;<4> 在設計窗口的空白區域, 單擊右鍵使得光標變為箭頭形狀, 然后選中該實體并雙擊, 打開實體屬性窗口;<5> 在Name 欄中輸入實體名稱”作者”, 在Code 欄中輸入實體代碼”AUTHOR”, 單擊Attributes, 在該頁中定義實體的屬性.建立實體之間的關系<1> 選擇工具窗口中的(Relationship)圖標, 光標變為形狀, 單擊第一個實體”作者”, 保持左鍵按下的同時把光標拖拽到第二個實體”作品”上然后釋放左鍵, 一個默認聯系就建立了;<2> 選中定義的聯系, 雙擊將打開聯系屬性對話框. 在General頁中定義聯系的常規屬性. 兩個實體具體有什么類型在Detail頁中定義.定義概念模型的屬性<1> 打開所建立的CDM模型, 選擇Model→Model Properties菜單項, 打開該模型的模型屬性窗口, 分別輸入相應屬性;<2> 選擇File→Save菜單項, 保存模型.定義概念模型的顯示參數和選項定義模型的顯示參數定義CDM顯示參數的具體方法如下:<1> 打開CDM模型, 選擇Tools→Display Preferences菜單項, 打開模型顯示參數窗口, 在General節點中設置模型窗口的基本顯示參數;<2> 在模型顯示參數窗口中, 單擊Object View屬性頁, 在窗口右側中可以定義CDM所有對象的名稱長度屬性;<3> 還可以進一步定義CDM中實體, 關聯等屬性;<4> 在Format節點中還可以定義顯示格式, 相關屬性見顯示對話框;<5> 單擊窗口右側的”Modify…”按鈕, 打開圖形符號格式(SymbolFormal)窗口. 可以修改實體圖形符號的寬度和高度;<6> 定義完畢后, 單擊”OK”按鈕, 返回到主窗口, 保存即可.定義模型的選項CDM模型選擇包括Model和Naming Convention兩類. Model用來設置整個模型的選項, Naming Convention用來設置每種對象的命名約定. 具體方法如下:<1> 打開CDM模型, 選擇Tools→Model Options菜單項打開模型選項窗口;<2> 單擊Naming Convention節點, 顯示模型選項設置窗口. 在窗口右側選擇Name單選按鈕, 所有對象的圖形符號顯示其名稱; 若選擇Code 單選按鈕, 則顯示其代碼;<3> 單擊”OK”按鈕, 返回到主窗口, 保存即可.創建CDM域創建域創建域的具體方法如下:<1> 選擇Model→Domains菜單項, 彈出域列表(List of Domains)窗口;<2> 單擊該表中的一個空行, 或者單擊Add a Row工具, 在第一個空白行行首會出現一個右箭頭. 輸入名稱和代碼;<3> 為域選擇數據類型;<4> 定義完畢后, 單擊”OK”按鈕保存修改, 并返回到域屬性定義窗口.在CDM中指定數據類型、長度和精度<略>定義數據項定義新數據項<1> 選擇Model→Data Items菜單項, 打開數據項列表(List of DataItems)窗口;……設置數據項的代碼和重用選項<1> 選擇Tools→Model Options菜單項, 打開模型選項(Model Options)窗口;<2> 在左側Category樹中選擇Model;<3> 在Data Item欄中選擇/取消Unique code項;<4> 在Data Item欄中選擇/取消Allow reuse項.將數據項連接到域將數據項連接到域的方法是:<1> 選擇Model→Data Items菜單項, 打開List of Data Items窗口;<2> 單擊所要定義的數據項, 該行行首會出現一個右箭頭;<3> 單擊Property工具或雙擊行首箭頭, 彈出數據項屬性窗口;<4> 在General頁底部Domain下拉列表中選擇所要連接的域并單擊”OK”按鈕.檢查CDMCDM檢查選項的設置CDM中對象的檢查(包括: Package(包)、Domain(域)、DataItem(數據項)、Entity(實體)、Entity Attribute(實體屬性)、Entity Identifier(實體標識符)、Relationship(聯系)、Association(關聯)、Inheritance(繼承)和File Object(文件對象))由CDM生成PDMCDM生成PDM時, 其中的對象要轉換成PDM中的對象, 即物理數據庫中的對象.下面介紹CDM生成PDM的具體過程:<1> 打開CDM模型, 選擇Tools Generate Physical Data Model, 打開如圖3-2所示的生成PDM設置(PDM Generation Options)窗口, 在General頁中選擇生成PDM的方式及其參數. 選擇Generate new Physical Data Model表示生成新的PDM, 選擇Update existing Physical Data Model則與已經存在的PDM 合并生成新的PDM;圖3-2 PDM Generation Options窗口<2> 選擇Detail頁, 進行細節選項設置, 如圖3-3所示;圖3-3 PDM Generation Options窗口<3> 選擇Selection頁, 選擇要轉換為PDM表的實體, 如圖3-4所示;圖3-4 PDM Generation Options窗口<4> 單擊”確定”按鈕, 開始生成PDM, 在Result List窗口中顯示在處理過程中出現的警告、錯誤和提示信息, 如圖3-5所示;圖3-5 模型檢查結果<5> 根據提示對出現的警告和錯誤進行修改.由CDM生成OOM當從CDM生成OOM時, PowerDesigner把CDM中的對象和數據類型轉換成UML語言支持的OOM對象和數據類型.CDM的對象與OOM的對象之間的對應關系如表3-1所示.表3-1 CDM與OOM中對象之間的對照表CDM中的數據類型與OOM中的數據類型的對應關系如表3-2所示.表3-2 CDM與OOM中數據類型對照表CDM生成OOM的具體方法:<1> 打開CDM模型, 選擇Tools Generate Object-Oriented Model菜單項, 打開如圖3-6所示的生成OOM的選項設置(OOM Generation Options)窗口, 其各個選項含義見PowerDesigner介紹;圖3-6 生成OOM的選項設置窗口<2> 選擇Detail頁, 進行其他選項設置, 如圖3-7所示;圖3-7 生成OOM的選項設置窗口<3> 選擇Selection頁, 可以選擇CDM包和實體, 如圖3-8所示;<4> 單擊”確定”按鈕, 開始生成OOM.物理數據模型簡介物理數據模型是以常用的DBMS理論為基礎, 將CDM中所建立的現實世界模型生成相應的DBMS的SQL語言腳本. 利用該SQL腳本在數據庫中產生現實世界信息的存儲結構(表、約束等), 并保証數據在數據庫中的完整性和一致性.圖4-1 PDM與DBMS的關系圖PDM以PowerDesigner為每種數據庫提供數據定義文件(擴展名為.xdb)作為語法模板來生成SQL語言腳本. 利用正向工程, 由PDM生成SQL腳本, 再通過SQL腳本在數據庫中建立相應的數據存儲結構. 反之, 也可以利用逆向工程, 通過數據庫中已存在的數據存儲結構導出對應的PDM.ODBC或專用數據庫接口ODBC或專用數據庫接口PDM中涉及到的基本概念表、列、視圖、主鍵、候選鍵、外部鍵<1> 表是數據庫中用來保存信息的一種數據結構.<2> 列是組成表的基本單元, 表由多個列組成, 每個列都有一個數據類型.<3> 視圖是從一個或多個基本表或其他視圖中導出的表, 它可以形象地被看做是一個活動窗口, 在數據庫中通過它可以看到自己感興趣的內容.<4> 主鍵是用來惟一標識表中一條記錄的一個或多個列的集合.<5> 候選鍵也是用來惟一標識表中一條記錄的一個或多個列的集合.<6> 外鍵是與其他連接的公共列, 這個列通常是其他表的主鍵.存儲過程和觸發器存儲過程(Stored Procedure)是由SQL語句和控制流語句構成的集合. 存儲過程的建立大大提高SQL的效率和靈活性. (存儲過程是預編譯好的;存儲過程簡化了安全機制等).觸發器是一種特殊的存儲過程, 它在某特定表的數據被添加、刪除或更改時發揮作用. 其主要用途如下:<1> 能夠對數據庫多個有關表的內容進行級聯修改, 即刪除父表中的某些記錄是可以將子表中相應的記錄刪除. 當違反參照完整性時, 觸發器能撤回試圖進行數據修改的事務;<2> 觸發器能夠實施比規則復雜得多的限制;<3> 觸發器還能比較數據修改前后某表的狀態, 并采取相應行動.默認和規則完整性檢查約束(惟一性和主鍵、檢查約束、限制空值和提供列的默認值)完整性是指數據庫中數據的正確性和一致性. 通過對數據庫中插入、刪除和修改數據值進行限制和約束來實現數據的完整性, 數據庫提供兩種保持數據完整性的方法: 一是在定義表時定義完整性約束; 二是定義規則、約束、索引和觸發器.索引(組合索引、惟一索引、聚簇索引和非聚簇索引)索引描述了數據在表中是如何組織的. 可以創建一個或多個索引來加快數據庫的查詢速度. 索引對用戶是透明的, 數據庫自動確定何時使用表的索引.創建PDM建立PDM的方法<1> 使用設計環境直接建立PDM;<2> 從現存數據庫或數據庫SQL腳本逆向工程建立PDM;<3> 從CDM采用內部模型生成的方法建立PDM;<4> 從面向對象模型(OOM)中的類圖彩模型的內部生成方法建立PDM.使用設計環境直接建立PDM的方法如下:<1> 在PowerDesigner主窗口選擇File New菜單項, 打開如圖4-2所。