- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库的完整性约束
信息系统的生命周期可分为三个阶段:设计、开发和完成。在设计与开发阶段进行如何对数据库进行完整性约束是至关重要的,因此保证数据库的完整性是很重要的。那么如何对数据库进行完整性约束,下面以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。“约束”的定义,可在创建表或更改表同时进行。
/*以上定义的全为列级数据完整性,定义“学号”列为主键,“姓名”列为非空值,“性别”列通过检验CHECK (性别=‘男’OR性别=‘女’)保证“性别”字段值为‘男’或‘女’。*/
CREATE TABLE SCORE
/*以上三个“约束”全为表级约束,约束CONSTRAINT PK_ID PRIMARYKEY (学号,课程名)保证“学号+课程名”非空且惟一,约束CONSTRAINT FK_33 FOREIGN KEY (学号)REFERENCES STUDENT (学号)、CONSTRAINT FK_35 FOREIGN KEY (课程名)REFERENCES COURSE (课程名)保证该表中的“学号”和“课程名”字段值只能取STUDENT中已存在的“学号”值和COURSE中己存在的“课程名”值。*/
2.2 合“规则”与“检查约束”
“规则”的作用类似于“检查约束”,若将一个“规则”绑定到指定列上,则可以检查该列的数据是否符合“规则”的要求。“规则”与“检查约束”的主要区别在于一列只能绑定一个“规则”,但却可以设置多个“检查约束”。“规则的优点是同一个规则对象可以供不同数据表的不同字段使用,但每个字段最多只能和一个规则对象结合。“使用“规则”的过程依次为:创建规则——绑定规则——解除绑定——删除规则。
2.3 数据库的限制
与“规则“类似,“默认值”对象(简称为“默认”)也是仅创建一次就可以绑定到数据库的多个表的列或用户定义的数据类型中,使它们共享“默认”。使用“默认”的过程与使用“规则”的过程类似,依次为:创建默认一绑定默认一解除绑定一删除默认。
2.4 自动执行并不含参数的内容
触发器属于一种特殊的存储过程,可以在其中包含复杂的SQL语句。触发器与存储过程的区别在于触发器能够自动执行并且不含有参数。通常可以在触发器内编写一段自动执行的程序,用于保证数据操作的完整性,从而扩展了对默认值、约束和规则的完整性检查。对表进行包括添加数据、删除数据、更新数据中的一种或多种操作时,触发器就会自动执行,在此不再举例说明。
您可能关注的文档
最近下载
- 派出所校园防欺凌方案.docx VIP
- 汽车钢板弹簧后悬设计答辩--公开课件设计.ppt VIP
- 义务教育版(2024)七年级全一册信息科技 第9课 数据传输有新意 教案.docx VIP
- 7氯丁橡胶总结.ppt VIP
- 华为HCIA-GaussDB GaussDB应用开发 H13-911考试题库-下(判断、填空题).docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072_2016山东建筑工程建筑结构施工技术资料_[全套]资料表格word.docx VIP
- 一年级拼音书写四线三格.docx VIP
- 军民航防相撞课件.pptx VIP
文档评论(0)