唯一约束
唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。
在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
分享到:
相关推荐
2. **逻辑数据模型(LDM)**:在CDM的基础上,LDM添加了数据库特定的细节,如数据类型和约束。这为数据库设计者提供了从概念到具体实现的过渡。 3. **物理数据模型(PDM)**:PDM是数据库的实际物理表示,包括表、...
4. 逆向工程和正向工程:PowerDesigner能够从现有的数据库中提取结构信息,生成数据模型(逆向工程),也可以将设计的模型转化为实际的数据库脚本(正向工程),这在数据库升级和迁移时非常有用。 5. 企业架构:...
此外,PowerDesigner还与其他Sybase产品,如Sybase ASE、IQ等数据库管理系统无缝集成,进一步增强了其在企业级开发中的实用性。 综上所述,Sybase PowerDesigner 是一个全面的数据库设计和建模工具,对于任何需要...
**PowerDesigner使用教程(中文)** Sybase PowerDesigner是一款强大的数据建模工具,广泛应用于数据库设计、数据分析和企业架构规划。...在实践中不断探索和积累经验,将使你成为PowerDesigner的专家。
【PowerDesigner】是一款强大的建模工具,最初由Powersoft公司开发,后来被Sybase公司收购。自1989年以来,PowerDesigner逐渐发展成为一个综合性的数据库设计和应用开发工具,支持UML(统一建模语言)和数据建模。这...
PowerDesigner是一款强大的数据库建模工具,由Sybase公司开发,广泛应用于系统分析和设计阶段,尤其是在企业级数据库架构设计中。这个"PowerDesigner.v12.5-EDGE.zip"压缩包很可能包含了PowerDesigner的第12.5版本,...
**Sybase PowerDesigner 16.5.0.3982版本详解** Sybase PowerDesigner是一款强大的数据建模和企业架构工具,广泛应用于数据库设计、数据仓库建模以及业务流程建模等领域。16.5.0.3982是这个软件的一个特定版本,由...
在PDM中,需要详细定义数据库表、字段、索引、约束等具体实现细节。PDM是数据库设计的最终阶段,可用于生成数据库创建脚本和数据库变更脚本。 面向对象模型(OOM)在PowerDesigner中特指使用UML(统一建模语言)来...
【PowerDesigner to Troux Export Guide】是针对如何将Sybase PowerDesigner模型导出到Troux Semantics的详细指导文档。该文档适用于那些需要在PowerDesigner和Troux之间进行数据迁移和整合的IT专业人士,旨在帮助...
2. **逻辑数据模型(LDM)**:在 CDM 基础上,添加了数据库特定的细节,如数据类型和约束,但仍不涉及物理存储。 3. **物理数据模型(PDM)**:详细描述了数据库的实际结构,包括表、索引、存储过程等,可以直接...
PowerDesigner 12 提供了全面的功能,帮助IT专业人员在软件开发生命周期中进行高效的数据管理和系统规划。 **主要功能与特性:** 1. **概念数据模型(CDM)**:PowerDesigner 支持创建和管理概念数据模型,它是一...
PowerDesigner由Sybase公司开发,支持多种数据建模类型,包括概念数据模型(CDM)、逻辑数据模型(LDM)和物理数据模型(PDM)。它提供了一整套的数据库设计和分析工具,帮助用户创建、管理和维护数据库模型,同时...
《Sybase PowerDesigner:全方位解析数据建模利器》 在当今的数据驱动时代,数据库设计与管理成为企业信息化建设的关键环节。Sybase PowerDesigner作为一款功能强大的数据建模工具,为数据库设计、管理和优化提供了...
**PowerDesigner**是由Sybase公司开发的一款强大的CASE(Computer-Aided Software Engineering)工具,主要用于数据库设计和面向对象的系统设计。这款软件在数据库设计领域表现出色,提供了比Erwin更全面的功能,...
在本压缩包"PowerDesigner16.5.zip"中,包含的是PowerDesigner的16.5版本,这个版本在前一版的基础上进行了优化和增强,以提供更好的用户体验和更高效的工作流程。 PowerDesigner的主要特点和功能包括: 1. **概念...
在PowerDesigner中,通过实体、属性和联系来构建CDM。 2. 逻辑数据模型(LDM):LDM是在CDM基础上,考虑了数据库特定的规则和约束,但仍不涉及物理存储结构。LDM可以生成数据库脚本,为数据库创建提供基础。 3. 物理...
本文将深入探讨PowerDesigner的功能、使用方法以及其在数据库设计中的价值。 一、PowerDesigner简介 PowerDesigner是Sybase公司推出的一款企业级的数据库设计和数据建模工具,版本号为10.29。它提供了全面的数据库...
在LDM中,PowerDesigner允许用户定义更详细的属性类型、键和索引,以及对数据完整性的约束。LDM是实现数据库架构的关键步骤,它与数据库的实际实现紧密相关。 **3. 物理数据模型(PDM)** PDM是实际数据库的物理...
这个文本文件包含了作者在使用PowerDesigner过程中的个人笔记和经验分享,可能包含一些不常在正式教程中提及的小技巧和问题解决方案。例如,如何快速调整模型视图,如何自定义模板,以及解决特定错误的方法等。 **5...
在提供的压缩包文件中,"pdflm12.dll"可能是PowerDesigner的某个组件或库文件,用于实现特定功能,如许可证管理。"license.lic"则是软件的许可证文件,用于验证软件的合法使用。"sn.txt"可能包含序列号或者激活码...