唯一约束
唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。
在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:
在PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。添加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列选项卡,单击增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一约束的添加。
这样系统就会自动创建唯一约束。
CHECK约束
CHECK分为列约束和表约束,列约束是只对表中的某一个列进行的约束,可以在列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性中进行设置(其实列约束也可以在表约束中设置)。
1.标准CHECK约束
对于一些常用的CHECK约束,可以直接通过设置界面来完成。以班级表为例,ClassName每个学校有自己的命名规则,假设这里规定ClassName必须以2开头,那么需要在ClassName列上定义CHECK约束,使得其满足命名规范。具体操作是在PD中双击Class表,打开Class的属性窗口,切换到列选项卡,选择ClassName列,单击工具栏的“属性”按钮,弹出ClassName的属性窗口,切换到StandardChecks选项卡如图:
在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下:
参数 说明
Minimum 属性可接受的最小数
Maximum 属性可接受的最大数
Default 属性不赋值时,系统提供的默认值
Unit 单位,如公里、吨、元
Format 属性的数据显示格式
Lowercase 属性的赋值全部变为小写字母
Uppercase 属性的赋值全部变为大写字母
Cannot modify 该属性一旦赋值不能再修改
List Of Values 属性赋值列表,除列表中的值,不能有其他的值
Label 属性列表值的标签
2.直接编写SQL语句的CHECK约束
在前面弹出ClassName属性窗口中,单击左下角的“More”按钮,系统将弹出更多的选项卡,切换到“Additional Checks”选项卡,可以设置约束名和具体的约束内容,如图所示:
表级的CHECK约束与列级的CHECK约束设置类似,单击表属性窗口左下角的“More”按钮,切换到Check选项卡,设置CHECK约束的命名和SQL语句内容。
3.使用Rule创建约束
同样以班级名必须以2开头为例,通过Rule创建CHECK约束。首先需要创建一个Rule,双击Class表,打开表的属性窗口,切换到Rules选项卡,单击“Create a Object”按钮,系统将打开一个业务规则属性窗口,修改规则名,并将规则的类型修改为Constraint,如图所示:
然后切换到Expression选项卡,设置规则的内容为“ClassName LIKE '2%'”,单击确定按钮即可完成Rule的设置。切换到表属性的Check选项卡,默认约束内容中的“%RULES%”就是用来表示Rule中设置的内容,如果我们还有一些其他的CHECK约束内容,不希望在Rule中设置,而是在Check选项卡中设置,那么只需要删除%RULES%将CHECK约束内容添加进去,也可以保留%RULES%,然后在与%RULES%之间添加一个and即可。比如规定ClassID必须小于10000,那么我们可以将Check内容设置如下:
生成的脚本如下:
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()函数。
设置默认值约束的操作如下:双击选课表,打开表属性窗口,选择ApplyTime字段,单击工具栏的属性按钮,打开列的属性窗口,切换到Standard Checks选项卡,在Default下拉列表框中选择getdate()即可。
至此我们所有的约束在PD中的设置都介绍完了,下一篇将介绍视图、存储过程等数据库对象。
from: http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html
分享到:
相关推荐
- **在PowerDesigner中添加约束**: - **查看或设置属性(字段)的相关约束**:通过字段的属性对话框可以查看或设置约束。 - **设置“标识列”**(自动增长):指定某些字段为自动增长字段,以便在插入新记录时...
在PowerDesigner中,概念数据模型(Conceptual Data Model,CDM)是设计的第一步。CDM以业务实体和它们之间的关系为中心,不涉及具体的数据库系统。用户可以通过创建实体、属性、关系以及添加注释来构建CDM。中文...
在本案例中,"PowerDesigner16.5_中文补丁"指的是针对PowerDesigner 16.5版本的一个中文语言包,用于将软件界面语言转换为中文,以便于中文用户更方便地使用。 PowerDesigner的核心功能包括: 1. **概念数据模型...
本教程详细讲解了PowerDesigner的各项功能,学习过程中应结合实际项目,动手操作以加深理解。同时,可以参考官方文档、在线论坛和社区资源,解决遇到的问题。 通过本教程的学习,用户将能够熟练使用PowerDesigner...
在PowerDesigner中,通过实体、属性和联系来构建CDM。 2. 逻辑数据模型(LDM):LDM是在CDM基础上,考虑了数据库特定的规则和约束,但仍不涉及物理存储结构。LDM可以生成数据库脚本,为数据库创建提供基础。 3. 物理...
在PDM中,需要详细定义数据库表、字段、索引、约束等具体实现细节。PDM是数据库设计的最终阶段,可用于生成数据库创建脚本和数据库变更脚本。 面向对象模型(OOM)在PowerDesigner中特指使用UML(统一建模语言)来...
在IT领域,数据库设计是软件开发过程中的关键环节,而PowerDesigner是一款强大的数据库建模工具,广泛用于数据建模、数据库设计以及系统分析。本文将详细介绍PowerDesigner 16.5在数据库模型操作方面的知识。 一、...
PowerDesigner允许用户将CDM转化为LDM,同时考虑数据库系统的特性,如数据类型、约束和索引。 ### 3. 物理数据模型(PDM) PDM是实际数据库的蓝图,包含了表、字段、索引、视图等数据库对象的详细定义。...
该资源讲述了如何使用pd在物理模型中设置唯一约束
- 域(Domain)是PowerDesigner中的一个重要概念,它定义了一种标准的数据结构,可以应用于数据项或实体属性,提供数据的一致性和完整性约束。在后续的学习中,域的详细使用方法会进一步讲解。 5. **实体关系图**...
PowerDesigner是一款强大的数据库设计与建模工具,广泛应用于IT行业中,尤其在系统分析、数据库设计和数据仓库构建等领域。"PowerDesigner导出报告模板"这个主题主要涉及如何使用PowerDesigner来定制和导出报告,以...
首先,我们来了解PowerDesigner中的PDM(Physical Data Model),这是物理数据模型,用于定义数据库的实际结构,包括表、字段、索引和约束等。导入Excel CSV文件到PDM可以帮助快速填充模型中的数据,便于测试或分析...
- PowerDesigner的LDM支持添加键、索引、约束等数据库结构元素,以确保数据完整性和一致性。 - LDM阶段是数据库设计的关键步骤,它将业务实体转换为符合数据库理论的结构。 3. **物理数据模型(PDM)** - PDM是...
项目中的对象可以存储到PowerDesigner库中,以保证项目信息的安全性和完整性。 PowerDesigner支持多种模型文件类型,其中包括: - 概念数据模型(CDM):用于分析信息系统的概念结构,识别主要实体和实体之间的关系...
在PowerDesigner中,创建pdm文件是数据建模的开始。点击菜单"File" -> "New Model" -> "Information" -> "Physical Data" -> "DBMS",选择对应的数据库版本,然后选择需要创建的模型类型。 知识点: * ...
- 在CDM中,用户可以创建实体来代表业务对象,为实体添加属性表示其特性。 - 属性可以定义数据类型、长度、是否可为空等元数据。 4. **关系设计** - PowerDesigner支持一对一、一对多、多对多关系的设计,通过...
4. 添加新的列,例如在sales_order_items表中添加unit_price列,通过“表属性”对话框的“列”选项卡进行操作,设置列名、数据类型,并启用强制性字段属性。 此外,PowerDesigner还提供模型检查功能,用于检测设计...