PowerDesigner之PDM(物理概念模型)各种属性建立如PK,AK等
一、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
PowerDesigner之PDM(物理概念模型)各种属性建立如PK,AK等的更多相关文章
- PowerDesigner之PDM(物理概念模型)
一.PDM概述 PDM(物理数据模型),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列: 视图: 主键: 候选键: 外键: 存 ...
- 在powerdesigner中创建物理数据模型
物理数据模型(PDM)是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本.PDM叙述数据库的物理实现,是对真实数据库的描述 PDM ...
- powerdesigner使用之——从“概念模型”到“物理模型”
现实问题在计算机上的解决,需要我们从现实问题中抽象出实体模型,然后再将实体模型对应到数据库关系表中. 例如,我们在思考学生选课,这件事情上,实体模型就是“学生”和“课程”两个 此时,我们使用power ...
- powerdesigner 画PDM
一.PDM概述 PDM(物理数据模型-Physical Data Modal),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列 ...
- 转 在PowerDesigner的PDM图形窗口中显示数据列的中文注释
Name是名称(字段描述),Code是字段名称,Comment是注释名称,ER图中显示的是Name.一般设计时,Name跟comment都设计成描述, 而设计时候常把comment写成中文,name保 ...
- 数据库设计---PowerDesigner(物理模型和概念模型)
内容 第一种方法:概念模型转物理模型 1.首先新建模型--选择概念模型(CDM) 2.新建实体(学生和卡),设置相应的属性 3.一共四种关系(1:1,1:n,n:1,n:n),根据 ...
- PowerDesigner将PDM导出生成WORD文档
PowerDesigner将PDM导出生成WORD文档 环境 PowerDesigner15 1.点击Report Temlates 制作模板 2.如果没有模板,单击New图标创建.有直接双击进入. ...
- 如何在PowerDesigner将PDM导出生成WORD文档或者html文件
a) 使用PowerDesigner打开pdm文件 b) 点击Report Temlates 制作模板 点击PowerDesigner菜单栏“Report” -> ...
- lucene 索引中文档的属性建立与不建立带来的影响总结
索引中文档的属性建立与不建立带来的影响总结 1.依据文档的某属性去查找索引的话,只会返回带有此属性(如果你对当前属性设定了条件,那么需要满足当前条件)的所有文档,没有建立此属性的文档是不会在返回结 ...
随机推荐
- 判断一个整数是否是2的n次方
参考:http://bbs.csdn.net/topics/370058619 如题,如何判断一个整数是否是2的N次方,我能想到的方法有两个 1.一直除2,看最后是否等于1.(最笨的方法) 2.转换成 ...
- oracle 对表赋权限
grant select,insert,delete,update on yizhen123.tpp_t_dz_yinglian to wangyd;
- C#.NET常见问题(FAQ)-命名空间namespace如何理解
Namespace就是定义一个对象是哪个门派的,比如你现在就在A门派下,A门派的所有功夫(属性和方法)都可以不加声明直接调用.如果你要用B门派的功夫,就要先声明是B门派的XXX对象的XXX实例的XXX ...
- SpringBoot 启动错误搜集
Spring Boot:The Bean Validation API is on the classpath but no implementation could be found https:/ ...
- c++ windows下读取大文件(内存映射)
关于内存映射的基本知识以及一些函数的原型说明,参考博客:http://blog.csdn.net/wcyoot/article/details/7363393 下面是我对于读取一个104M文件大小,使 ...
- ubuntu下配置华为交换机s2016
因为笔记本没有RS232口,只有装有ubuntu的服务器上有RS232口,于是登录ubuntu 配置连接. 这里使用minicom,当然,Ubuntu源还有个图形界面的gtkterm, cutecom ...
- 感谢大家对《Cocos2d-JS开发之旅》的支持
昨天收到一封读者的来信,给我报了个喜,也提了一些非常好的建议. 他通过短短1个月时间就完成了学习和游戏开发,并发布了Android和iOS平台,真了不起.授人以鱼不如授人以渔,这也是写书的最大喜悦吧. ...
- kettle实现数据库迁移----多表复制向导
kettle实现数据库迁移----多表复制向导 需求: 做数据仓库时,需要将业务系统CRM抽取到数据仓库的缓冲层,业务系统使用的是SqlServer数据库,数据仓库的缓冲层使用的是mysql数据库,为 ...
- django之创建第7-2个项目-url配置分离
1.urls.PY分离 # -*- coding: UTF-8 -*- from django.conf.urls import patterns, include, url # Uncomment ...
- Ubuntu18.04中配置QT5.11开发环境
准备工作 参考 https://wiki.qt.io/Install_Qt_5_on_Ubuntu . # 安装g++ sudo apt install build-essential # sudo ...