SQL Server2000数据库完整性约束研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server2000数据库完整性约束研究

SQL Server2000数据库完整性约束研究   摘要: 数据库的完整性约束是设计数据库的核心内容,一个数据库的完整性约束设计的好坏,直接影响到这个数据库的性能,同时也会影响数据库的开发,因此一个好的数据库需要严格考虑其完整性约束。从数据库完整性的角度出发,分析数据库完整性约束的分类以及实现完整性约束的方法,从而实现对数据库的保护。   关键词: 数据库;完整性约束;默认值;规则   中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0510079-01      一个信息管理系统的生命周期可分为:设计、开发和成品三个阶段。在设计与开发阶段进行如何对数据库进行完整性约束是至关重要的,因此保证数据库的完整性是很重要的。那么如何对数据库进行完整性约束,下面以SQLServer2000数据库为例做以下几点探讨。   1 数据完整性约束的分类   1.1 域完整性。对表字段取值进行约束,提供了一个给定域的有效入口,包括数据类型、取值范围、格式、精度等的规定,实现域完整性可以通过“check约束”、foreign约束”、“default约束”、“not null约束”、“规则”等来实施。   1.2 实体完整性。以表记录为单位进行约束,规定一个表中的每一行必须是唯一的。开发者需要指定一个表中的一列或一组列作为它的主键,表中的每行必须含有一个唯一的主键。主键首先不能为空值,其次不能与表中已有行的主键值相同。可以通过列的Identity属性、主键约束、惟一性约束等来实现。   1.3 参照完整性。参照完整性在关系模式中,实体与实体之间的关联同样采用关系模式来描述,通过引用对应实体的关系模式的主码来表示对应实体之间的关联。参照完整性约束又称为引用完整性约束,是指两个表的主码和外码的数据要对应一致。可以通过“外键约束”、“触发器”、“存储过程”等来实施。   1.4 用户定义完整性。以上三种数据完整性约束能够实现数据库中大部分数据完整性,但总有一些约束条件是开发者不能应用以上数据完整性约束来实行的。如入学时间不能晚于毕业时间;实现诸如此类的数据完整性保护,需要开发者自己通过创建存储过程和触发器、规则等来实现。   2 实施完整性的应用实例   2.1 通过“约束”实施数据的完整性。通过“约束”可实施列级和表级的数据完整性。SQL Server支持的“约束”有如下几种:非空约束NOT NULL,主键约束PRIMARY KEY、惟一约束UNIQUE、核查约束CHECK、外键约束FOREIGN KEY、默认值约束DEFAULT。“约束”的定义,可在创建表或更改表同时进行。   创建表时定义“约束”   例子1 CREATE TABLE STUDENT   (学号char(6)PRIMARY KEY,   姓名char(8)NOT NULL,   性别char(2)CHECK(性别=男OR性别=女),   政治面貌 char(6),   )   /*以上定义的全为列级数据完整性,定义“学号”列为主键,“姓名”列为非空值,“性别”列通过检验CHECK(性别=‘男’OR性别=‘女’)保证“性别”字段值为‘男’或‘女’。*/   CREATE TABLE SCORE   ( 学号char(6),   课程名char(20),   成绩int,   补考成绩int,   CONSTRAINT PK_ID PRIMARY KEY(学号,课程名),   CONSTRAINT FK_33 FOREIGN KEY(学号)REFERENCES STUDENT(学号),   CONSTRAINT FK_35 FOREIGN KEY(课程名)REFERENCES COURSE(课程名)   )   /*以上三个“约束”全为表级约束,约束CONSTRAINT PK_ID PRIMARY KEY(学号,课程名)保证“学号+课程名”非空且惟一,约束CONSTRAINT FK_33 FOREIGN KEY(学号)REFERENCES STUDENT(学号)、CONSTRAINT FK_35 FOREIGN KEY(课程名)REFERENCES COURSE(课程名)保证该表中的“学号”和“课程名”字段值只能取STUDENT中已存在的“学号”值和中已存在的“课程名”值。*/   2.2 通过“规则”实施数据的完整性。“规则”的作用类似于“检查约束”,若将一个“规则”绑定到指定列上,则可以检查该列的数据是否符合“规则”的要求。“规则”与“检查约束”的主要区别在于一列只能绑定一个“规则”,但却可以设置多个“检查约束”。“规则的优点是同一个规则对象可以供不同数据表的不同字段使用,但每个字段最多只能和一

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档