在PowerDesigner中设计物理模型2——约束

原创 2012年03月31日 10:42:49

唯一约束

唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。

在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:

在PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。添加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列选项卡,单击增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一约束的添加。

image

这样系统就会自动创建唯一约束。

CHECK约束

CHECK分为列约束和表约束,列约束是只对表中的某一个列进行的约束,可以在列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性中进行设置(其实列约束也可以在表约束中设置)。

1.标准CHECK约束

对于一些常用的CHECK约束,可以直接通过设置界面来完成。以班级表为例,ClassName每个学校有自己的命名规则,假设这里规定ClassName必须以2开头,那么需要在ClassName列上定义CHECK约束,使得其满足命名规范。具体操作是在PD中双击Class表,打开Class的属性窗口,切换到列选项卡,选择ClassName列,单击工具栏的“属性”按钮,弹出ClassName的属性窗口,切换到StandardChecks选项卡如图:

image

在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下:

参数 说明
Minimum 属性可接受的最小数
Maximum 属性可接受的最大数
Default 属性不赋值时,系统提供的默认值
Unit 单位,如公里、吨、元
Format 属性的数据显示格式
Lowercase 属性的赋值全部变为小写字母
Uppercase 属性的赋值全部变为大写字母
Cannot modify 该属性一旦赋值不能再修改
List Of Values 属性赋值列表,除列表中的值,不能有其他的值
Label 属性列表值的标签

2.直接编写SQL语句的CHECK约束

在前面弹出ClassName属性窗口中,单击左下角的“More”按钮,系统将弹出更多的选项卡,切换到“Additional Checks”选项卡,可以设置约束名和具体的约束内容,如图所示:

image

表级的CHECK约束与列级的CHECK约束设置类似,单击表属性窗口左下角的“More”按钮,切换到Check选项卡,设置CHECK约束的命名和SQL语句内容。

image

3.使用Rule创建约束

同样以班级名必须以2开头为例,通过Rule创建CHECK约束。首先需要创建一个Rule,双击Class表,打开表的属性窗口,切换到Rules选项卡,单击“Create a Object”按钮,系统将打开一个业务规则属性窗口,修改规则名,并将规则的类型修改为Constraint,如图所示:

image

然后切换到Expression选项卡,设置规则的内容为“ClassName LIKE '2%'”,单击确定按钮即可完成Rule的设置。切换到表属性的Check选项卡,默认约束内容中的“%RULES%”就是用来表示Rule中设置的内容,如果我们还有一些其他的CHECK约束内容,不希望在Rule中设置,而是在Check选项卡中设置,那么只需要删除%RULES%将CHECK约束内容添加进去,也可以保留%RULES%,然后在与%RULES%之间添加一个and即可。比如规定ClassID必须小于10000,那么我们可以将Check内容设置如下:

image

生成的脚本如下:

create table Class ( 
   ClassID              int                  not null, 
   ClassName            varchar(20)          not null, 
   constraint PK_CLASS primary key nonclustered (ClassID), 
   constraint CKT_CLASS check (ClassID<10000), 
   constraint ClassNameRule check (ClassName LIKE '2%') 

go

可以看到,根据Rule生成的CHECK约束与在Check选项卡中设置的约束将分别创建一个约束,相互并不影响。

默认约束

默认约束是用户在没有输入值的情况下,系统给出默认的值。最常用的是CreateTime字段,设置默认值为getdate(),在用户创建一行数据时记录下创建时间。例如对于选课表,需要记录下选课的时间,则可以设置ApplyTime的默认值为getdate()函数。

image

设置默认值约束的操作如下:双击选课表,打开表属性窗口,选择ApplyTime字段,单击工具栏的属性按钮,打开列的属性窗口,切换到Standard Checks选项卡,在Default下拉列表框中选择getdate()即可。

image

至此我们所有的约束在PD中的设置都介绍完了,下一篇将介绍视图、存储过程等数据库对象。

版权声明:本文为博主原创文章,未经博主允许不得转载。

在PowerDesigner中设计物理模型2——约束

唯一约束唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以...
  • zhouyong0
  • zhouyong0
  • 2011年03月15日 20:50
  • 580

在PowerDesigner中设计物理模型2——约束

唯一约束唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以...
  • xu1314
  • xu1314
  • 2010年08月20日 20:51
  • 346

在PowerDesigner中设计物理模型——约束

唯一约束唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以...
  • songguozhi
  • songguozhi
  • 2010年05月13日 17:00
  • 859

在PowerDesigner中设计物理模型——视图、存储过程和函数

视图 在SQL Server中视图定义了一个SQL查询,一个查询中可以查询一个表也可以查询多个表,在PD中定义视图与在SQL Server中定义查询相似。例如要创几个所有学生的所有选课结果的...
  • jerrygr_ok
  • jerrygr_ok
  • 2012年10月16日 00:40
  • 804

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

前言 上一篇介绍了个工具建数据库:PowerDesigner V16.5 安装教程以及汉化(数据库建模) ,现在我就说一下怎么用这个建数据库吧。 内容 第一种方法:概念模...
  • tgbyn
  • tgbyn
  • 2017年06月15日 15:39
  • 4366

PowerDesigner物理模型用法总结

1.  生成sql脚本 Database→Generate Database 选择要输出的文件路径,即文件存储路径,并根据需要修改文件名,单击确定后便会生成sql脚本。 在O...
  • fyq891014
  • fyq891014
  • 2013年09月22日 16:48
  • 3856

在PowerDesigner中设计约束

在PowerDesigner中设计物理模型2——约束 唯一约束 唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约...
  • anyqu
  • anyqu
  • 2012年07月27日 09:42
  • 2226

PowerDesigner 数据库生成物理数据模型 生成数据库测试数据

特别说明:原文出处http://blog.csdn.net/horace20 1、环境 PowerDesigner15.2.0.3042-BEAN+ MySQL5.5 + mysql-connec...
  • kalision
  • kalision
  • 2014年12月12日 10:38
  • 2313

Powerdesigner物理模型显示注释

Powerdesigner物理模型显示注释信息,或者说按自己的设定格式显示;
  • shuzhiduxing
  • shuzhiduxing
  • 2017年01月19日 14:14
  • 456

powerdesigner 概念模型转化成物理模型

点击"tool"=>"Generate Physical Data Model"即可生成PDM
  • minwang593
  • minwang593
  • 2013年10月21日 09:38
  • 2419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在PowerDesigner中设计物理模型2——约束
举报原因:
原因补充:

(最多只允许输入30个字)