一、PDM概述

  PDM(物理数据模型),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库。

  PDM中涉及到的基本概念包括:

  • 表;
  • 列;
  • 视图;
  • 主键;
  • 候选键;
  • 外键;
  • 存储过程;
  • 触发器;
  • 索引;
  • 完整性检查约束;

  以上这些都是数据库的概念,不适合在PowerDesigner里面表述。

二、创建PDM

  创建PDM有4中方法:

  • 使用设计环境直接创建PDM;
  • 从现有数据库或通过SQL脚本逆向工程创建PDM;
  • 从CDM采用内部模型生成方法建立PDM;
  • 从OOM中的类图采用模型的内部生成方法建立PDM;

  利用CDM生成PDM是最符合设计思路的方法,但在很多企业开发过程中,都是在设计环境中直接建立PDM,因为大部分企业没钱发那么多工资你设计那么多图。

  1、在设计环境直接建立PDM

  在设计环境直接建立PDM的步骤如下:

  1、在PowerDesigner主窗口选择File->New Model,在打开的创建左侧选择Physical Data Model选项

  

  2、右侧选项的意义

  • Model name:模型名称;
  • DBMS:数据库类型,也可以单击后面的文件夹按钮,选择“浏览文件夹”,选择xml文件作为目标(CDM转PDM);
  • Share the DBMS definition:共享数据库定义;
  • Copy the DBMS definition in model:从数据库定义中拷贝,用于CDM转PDM;
  • First Diagram:创建一个PDM,默认会有一个Diagram,这里是选择这个Diagram的类型;

  3、Extended Model Definitions选项卡的意义

  当通过PowerBuilder来开发时,若选中PowerBuilder则生成的PDM可以从Catalog表中获取表和列的扩展属性。

  

  4、点击“确定”按钮,打开新建的PDM设计窗口

  

  工作区包括左侧的浏览窗口、右侧的设计窗口、下侧的输出窗口和浮动的工具窗口,可以利用工具窗口中的图标在设计窗口中设计PDM。

  5、各种图标的作用

  

  在建立PDM之前,可以定义PDM的显示参数,以满足PDM的显示需求。

  2、定义PDM的显示参数

  1、Tools->Display Preferences打开设置窗口,在General节点中设置整个模型的显示参数。

  

  各个选项含义如下:

  • Window color:窗口颜色;
  • Unit:长度度量单位。Inch(英尺)、Millineter(毫米)和Pixel(像素);
  • Grid:网格线;
  • Diagram:
  • Show page delimiter:显示分页线;
  • Constrain Labels:是否需要限定选项卡和连接对象的距离;
  • Content节点:设置在图形窗口PDM中每类对象的显示样式的参数。
  • Format节点:设置每类对象的显示格式,如大小、变现颜色、填充颜色、阴影、字体等;
  • Modify:按钮可以进行更详细的设置;

  3、定义PDM的模型属性

  在Model Properties(模型属性)窗口中修改模型属性的方法如下:

  1、选择Model->Model Propertise命令或右击图形窗口的背景,在弹出的快捷菜单中选择Properties命令

  

  各个选项的含义如下:

  • Name:名称;
  • Code:代码;
  • Comment:注释;
  • File name:文件名;
  • Author:作者;
  • Version:版本;
  • DBMS:数据库管理系统
  • Database:数据库名称
  • Default diagram:打开模型时默认显示的图;

  2、单击Database后面的Create图标,进入Database Propertise窗口。在窗口中可以配置创建数据库选项

  • General:通用属性;
  • Name:数据库的名称;
  • Code:数据库的代码;
  • DBMS:数据库的类型;
  • Rules:规则;
  • Script:插入到数据库SQL脚本开始和结束为止的脚本;
  • Physical Options:数据库可利用的物理选项;

三、创建表

  创建表的方式,只点击工具栏的Table图标就可以了。

  其他属性页的意义分别为:

  Column(列)、Trigger(触发器)、Keys(键)、Procedure(存储过程)、Rules(规则)、Indexes(索引)和Check(约束);

  

四、创建列

  1、创建列

  1、列的基本属性

  列的基本属性如下:

  • Name:列名;
  • Code:列的代码;
  • Data Type:数据类型;
  • Domain:以域作为数据类型;
  • Comment:注释;
  • M:非空;
  • P:主键;
  • D:在图形窗口显示;

  

  

  选中某一列,单击Propertise图标(或双击列),打开Column Properties窗口,在其中可以定义列的其他属性。

  

  General选项卡属性如下:

  • Displayed:是否在图形符号中显示;
  • Foreign Key:外部键;
  • Computed:计算列;
  • Mandatory:非空;
  • Identiry:自增;

  Detail选项卡可以定义的属性如下:

  • Column fill parameters:Null values(允许空值列个数的百分比)、Distince values(允许不同值列个数的百分比)和Average length(列值的平均长度);
  • Test data parameters:Profile(测试数据的取值)。单击右面的List按钮,可以进一步定义测试的取值方式,可以是字符型、数值型或日期/时间型;
  • Computed expression:定义计算列表达式;

  2、创建计算列

  计算列是通过表达式对其他列的值进行运算后得到的结果。

  (1)、在列的通用的数据约束定义窗口中,单击Computed expression列表框右面的Edit With SQL Editor按钮,弹出计算列表达式定义窗口:

  

  

  当数据库选择的是MySQL时,是没有这个框的(因为是MySQL没有计算列这个概念)。

  3、约束

  Standard Checks选项卡,用于在其中定义约束。

  • Values:Minimum(最小值)、Maximum(最大值)和Default(默认值)。
  • Characteristics:Format(显示格式)、Unit(单位)、Uppercase(大写字母)、Lowercase(小写字母)和Cannot modify(不允许修改)。
  • List of values:定义取值列表。

  

  4、命名约束

  Additional Checks选项卡专门用于定义命名约束

  

  5、创建序列

  双击列,进入列属性

  

  

  • Start with:起始数字
  • Min value:最小值;
  • Max value:最大值;
  • Incremented by:增量值;

五、创建参照及参照完整性

  参照是父表和子表之间的连接,它定义了两个表中对应列之间的参照完整性约束。

  1、参照模型设置

  模型选项决定了参照的特性,可以通过Tools->Model Options打开模型选项(Model Options)窗口。

  

  建议那两个Auto什么的属性还是的勾去掉吧,手动搞,好像有点难看的明白这两个选项的意思。

  模型项与连接的关系

  

  选项意义:

  • Unique code:表示模型中的参照代码唯一;
  • Auto-reuse columns:表示同父表主键拥有相同的代码列或子表列不是其他表的外键,则该列被当做子表的外部键;
  • Auto-migrate columns:表示产生参照时,父表的主键将迁移到子表中成为外部键;
  • Domain:表示如果选中Auto-migrate columns和Domain复选框,在建立参照时,主键的域将迁移到外部键上;
  • Check:表示如果选中Auto-migrate columns和Check复选框,在建立参照时,主键的检查参数将迁移到外部键上;
  • Rules:表示如果选中Auto-migrate columns和Rules复选框,在建立参照时,主键的业务规则将迁移到外部键上;
  • Primary Key:表示参照连接主键列到外部键列;
  • User-defined:表示参照不产生连接;

  Auto两个复选框的意义:

  

  2、创建参照及定义相关属性

  创建参照的具体方法:

  1.在PDM模型的Palette工具栏中单击Reference图标;

  

  2.双击新建立的连接,打开Reference Properties窗口,在其中可以修改参照的各个属性:

  

  • Name:参照名;
  • Code:参照代码;
  • Comment:注释;
  • Parent table:参照的父表;
  • Child table:参照的子表;
  • Generate:是否在数据库中生成参照;
  • Joins选项卡可以定义表与表之间的连接;

  3.Join(连接)可以用来连接主键、候选键和外部键,或在用户指定的列之间建立连接;

  

  4.连接可以通过上节的模型选项自动建立,也可以手工建立;如果手工指定,也可以利用Reuse Columns图标、Migrate Columns图标和Cancel Migration图标实现列重用或迁移。

  • Reuse Columns:重用子表中存在并与父表相同的列;
  • Migrate Columns:表示将父表的主键迁移到子表中作为外部键;
  • Cancel Migration:表示删除从父表中迁移到子表的所有列;

  5.Integrity选项卡用来定义参照完整性。主要用于设置父表中修改或删除参照列的数据对子表的影响。

  

  • Constraint name:约束名,生成SQL脚本时使用此名称。
  • Implementation:实现方式;

  选项意义:
  Declarative:声明式,吧参照完整性约束定义为一种特殊引用。
  Trigger:通过触发器在相应DBMS中维护数据的有效性;

  • Cardinality:基数。表示父表中的每个实例,子表中可能拥有的实例的最少和最多数。
  • Update/Delete constraint:表示修改父表列值后子表列值如何修改:

  None:修改或删除父表,对子表无影响;
  Restrict:如果子表中存在一个或多个对应值,不能修改或删除父表中的值;
  Cascade:修改或删除父表中值的同事将子表中对应的值也修改或删除;
  Set null:修改或删除父表中值的同时将子表中对应的值置为NULL;
  Set Default:修改或删除父表中值的同事将子表中对应的值置为默认值;

  • Mandatory parent:是否强制子表中的外部键列值都必须在父表中有相应的列值;
  • Check on commit:是否在提交时验证参照完整性;
  • Change parent allowed:是否允许修改父表中参照列的值;

  6.此外,还可以修改参照图符号上显示的文本信息,以满足不同系统的需求。

  此PDM模型窗口中选择Tools->Display Preferences命令,打开Display Preferences窗口,单击Object View->Reference节点。

  

  • Name:参照的名称;
  • Constraint name:参照完整性约束的名称;
  • Join:两个表相同列的连接名称;
  • Rederential integrity:参照完整性;
  • Cardinality:基数;
  • Implementation:参照完整性实现的方式;

  设置参照完整性后的例子如下:

  

六、创建域

  在PDM中,使用域有助于识别信息的类型,易于使不同表中列的数据特征标准化。域为列定义了一组有效的值,可以把Data Type、Check、Rule、Mandatory等信息关联到域上。

  1、创建域

  1、打开PDM模型,选择Model->Domains命令,在空白行单击,可以增加一行。分别在Name、Code和DataType栏中输入名称、代码和数据类型;

  
  2、单击空白行可以增加一行;
  3、双击行前面的箭头,可以进入属性设置:

  

  其中General选项卡主要意思如下:

  • Name:名称;
  • Code:代码;
  • Comment:注释;
  • Data type:数据类型;
  • Length:长度;
  • Profile:测试数据定义文件;

  其他选项卡与前面的类似。

  2、使用抽象数据类型

  在为域选择数据类型时,可以指定抽象数据类型。抽象数据类型是用户自定义的数据类型。ADT数据类型因数据库系统而存在差异,在PowerDesigner系统中允许使用的ADT数据类型如下表:

类型 描述 示例
Array 固定长度元素的集合 Varray Oracle8
List 不固定长度对象的集合 Table Oracle8
Java Java类 Java Adaptive Server Anywhere
Object 包含属性列表的对象 OBJECT Oracle8
Structured 包含属性列表的结构体 NAMED ROW TYPEDB2
CLR .Net通用语言运行时 Microsoft SQL Server 2005

    

  1、普通的抽象数据类型

  打开PDM模型,选择Model->Abstract Data Types命令。

  

  双击行进入

  

  2、OBJECT类型的抽象数据类型

  如果在Type下拉列表框中选择OBJECT选项,即可建立一个抽象数据类型对象。

  

  选择Attributes选项卡,在Name、Code和Data Type栏中分别输入。

  

七、创建表中的键

  键是表中可以唯一识别一条记录的一个或多个列的集合。PDM支持两种类型的键:主键、候选键。

  1、主键

  定义主键很简单,选中作为主键列的P复选框即可。

  

  如果利用了逆向工程,从已经存在的数据库逆向到PDM模型,可能无法生成主键或者在你想工程数据库时没有选择重建主键选项,此时需要重建主键。

  重建主键的方法:

  1、选择Tools->Rebuild Objects->Rebuild Primary Keys命令。
  2、打开Primary Key Rebuild窗口;
  3、选择要重建主键表前的复选框,确定;

  

  2、候选键

  候选键(Alternate Key)指一列或多列,表中每条记录的列值都是唯一的。每个候选键都在数据库中生成唯一索引或唯一约束。

  1、打开表的Keys选项卡,在Name或Code栏中单击,系统自动增加一个新键。设置键的名称和代码;

  2、双击新键行的行首箭头,在打开的Key Properties(键属性)窗口中选择Columns选项卡,该选项卡列出了键包含的所有列;

  3、单击Add Columns图标,在窗口中列出了表中包含的所有列,选择一个或几个需要的列;

  

  3、键的约束名

  利用PDM生成数据库脚本时,键也包含在其中,为了方别识别和修改,需要为其定义统一的约束名。如果不指定,系统会自动建立一个默认的。

  选择定义了主键的表,双击鼠标打开表属性,选择Keys选项卡,显示所有的主键和候选键,选中其中一个,单击其中的Properties,在Constraint name文本框中输入键的名称。

  

八、创建索引

  1、创建索引

  建立索引的具体方法如下:

  1、在表属性窗口,选择Indexes选项卡,空白行单击,系统会自动给出索引的名称和代码,可以根据需要进行修改。
  2、单击Properties图标,打开Index Properties,General选项卡的条目含义为:

  • Name:索引名称;
  • Code:索引代码;
  • Comment:索引注释;
  • Table:包含索引的表;
  • Type:索引的类型,普通索引、全文索引、Xml索引
  • Unique:唯一索引;
  • Cluster:聚集索引;

  3、选择Columns选项卡,可以选择索引包含的列;

  

  2、重建索引

  重建索引具体方法如下:

  Tools->Rebuild Objects->Rebuild Indexes命令,打开Index Rebuild(重建索引);

  

  各选项含义如下:

  • Primary key:重建主键索引;右边输入为主键索引名称:%TABLE%_PK
  • Other keys:重建候选键索引,右边输入为默认的候选键索引名称:%TABLE%_AK
  • Foreign key indexes:重建外部键索引,右边输入为%REFR%_FK
  • Foreign key threshold:建立外部键索引所需的表最小记录数
  • Delete and Rebuild:重建索引之前删除已存在的索引
  • Add missing indexed:只增加缺少的索引

  在Selection选项卡中选择需要重建索引的表;

  

九、创建视图

  创建视图有两种方法:

  1、选择表,Tools->Create View命令,建立包含所选表全部字段的视图;
  2、建一个空视图,然后选择表或直接定义SQL语句。

  第二种方式操作如下:

  用工具栏的View图标,创建一个视图,双击进入视图View Properties(视图属性)窗口。

  

  其General选项卡的基本属性含义如下:

  • Name:视图的名称;
  • Code:视图的代码;
  • Comment:视图的用途;
  • Usage:视图的用途;
  • query only:只用于查询;
  • Updateable:用于查询和修改;
  • With check option:在视图插入数据时要收到表中已定义约束的限制;
  • Dimensional Type:维度类型;
  • Generate:是否在数据库中生成视图;
  • User-defined:在用户自定义视图时是否访问查询编辑器;

  选择SQL Query选项卡,为视图定义对应的SQL语句。

  点击Edit With SQL Editor进入SQL编辑器能够非常方便地书写SQL语句。

  

原文链接:

http://www.cnblogs.com/kissdodog/p/4140244.html

http://www.cnblogs.com/yxonline/archive/2007/04/09/705479.html

PowerDesigner之PDM(物理概念模型)相关推荐

  1. 如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)(转)...

    如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM) pdm做好后,最终是要将其转化为数据库实体的. 1.确认当前Powerdesigner设置的d ...

  2. powerdesigner 画PDM

    一.PDM概述 PDM(物理数据模型-Physical Data Modal),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列 ...

  3. PowerDesigner反向生成物理数据模型

    原文:PowerDesigner反向生成物理数据模型 什么是PowerDesigner Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它 ...

  4. 如何在PowerDesigner将PDM导出生成WORD文档或者html文件

    a)         使用PowerDesigner打开pdm文件 b)         点击Report Temlates 制作模板 点击PowerDesigner菜单栏"Report&q ...

  5. PowerDesigner 将pdm模型表 用命令导出成Excel表格

    PowerDesigner 将pdm模型表 用命令导出成Excel表格 使用步骤: 打开PowerDesigner 快捷键 Ctrl+Shift+X 直接将代码复制进去即可. 代码: '******* ...

  6. PowerDesigner 16逆向工程,MySQL数据库的生成PDM物理数据模型文件

    很多项目在前期的快速迭代时期并没有很多项目文档保存下来,在项目已经成熟之后往往需要补齐项目文档,PowerDesigner是一款非常优秀的数据库建模工具.本文就讲解一下如何利用PowerDesigne ...

  7. powerdesigner使用之——从“概念模型”到“物理模型”

    现实问题在计算机上的解决,需要我们从现实问题中抽象出实体模型,然后再将实体模型对应到数据库关系表中. 例如,我们在思考学生选课,这件事情上,实体模型就是"学生"和"课程& ...

  8. 数据库设计---PowerDesigner(物理模型和概念模型)

    前言 上一篇介绍了个工具建数据库: PowerDesigner V16.5 安装教程以及汉化(数据库建模)  ,现在我就说一下怎么用这个建数据库吧. 内容 第一种方法:概念模型转物理模型 1.首先新建 ...

  9. PowerDesigner进行数据库物理建模基本规范

    背景说明 利用PowerDesigner(下文简称PD)进行数据库设计时,其实没有什么固定的规范.但是数据库设计的目的,是为了在团队中沉淀和共享信息,所以设计文档的可读性非常重要.团队使用统一的标准规 ...

  10. pdm生成mysql sql语句_如何用Powerdesigner的PDM生成数据库

    展开全部 工具: Sybase PowerDesigner 15.1 Microsoft SQL Server 2005 第一步概要设计: 打开PowerDesigner软件,设计"概念数据 ...

最新文章

  1. 在PHP中如何使用消息列队
  2. python程序入门设计_程序设计入门—Python
  3. ActiveMQ的几种集群配置
  4. python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器
  5. 【离散数学】两类有限状态自动机
  6. 前 1 号店 CTO 黄哲铿揭秘:微服务架构在超大场景下的应用
  7. JavaScript的输出(2)
  8. android本地图片选择(相册选取,相机拍摄)
  9. python with as 用法_你在 Python 中常常写的 with..as.. 到底是个啥?
  10. 华胜天成-容灾流程管理平台解决方案
  11. Java 汉字转拼音(完美支持解决多音字)
  12. 科学计算机中log,科学计算器的科学用法.docx
  13. 输入一字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……统计有
  14. 技术工坊|腾讯华为入局的区块链BaaS平台解决了什么问题?(上海)
  15. 高德SDK 小车轨迹回放,速度、进度控制
  16. 屏蔽ENTER键、ESC键的使用
  17. 信息安全体系建设☞开源入侵检测系统HIDS
  18. 个人电脑厂商艰难涉水家庭娱乐市场
  19. 应对安全漏洞:如何将LFI变为RFI
  20. Maven3 Archetype ArtifactId大全及简单说明

热门文章

  1. Linux学习笔记(五):less|more的命令使用
  2. c++标准程序库:STL容器之vector
  3. python挖矿脚本_利用公共WiFi挖矿的Python脚本(注:仅作研究使用)
  4. mysql金钱默认字段格式化_在SQL数据库中,设置了一个字段的类型为money,但是money类型数据保留的是四位小数,如何设置为两位小数?...
  5. creator找不到编译器 qt_Qt与Web混合开发(一)--简单使用
  6. Android Service 播放音乐
  7. Android TableLayout 表格布局
  8. GraphQL教程(三) .net core api
  9. PHP curl_setopt函数用法介绍
  10. 存储系统的实现-探析存储的机制和原理