第 5章 约束、默认和规则.pptVIP

  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文档。上传文档
查看更多
第5章 约束、默认和规则 5.1 数据完整性 5.2 约束 5.3 默认 5.4 规则 5.1 数据完整性 数据库应用程序开发中的一个重要步骤就是设计和实施数据的完整性,并确定实施数据完整性的最佳方案。 数据完整性是指数据库中数据的正确性和一致性,是衡量数据库质量的一个重要标准。在使用INSERT、UPDATE和DELETE命令修改数据库中的数据时,数据的完整性可能被破坏,如插入了一个不存在学生的成绩,或将学生的班号修改为一个不存在的班级等。通过定义数据完整性规则,SQL Server可以通过自身提供的完整性规则有效地管理数据的输入,而不必使用额外的应用程序来协助管理,这样一方面可以节省系统开销,另一方面将使数据库中的数据独立于应用程序,使创建开放式数据库系统成为可能。 完整性包括:域完整性、实体完整性、参照完整性和用户自定义完整性 5.1 数据完整性 5.1.1 域完整性 域完整性是指给定列的输入有效性。强制域有效性的方法有:通过限制数据类型(包括自定义数据类型)、格式(CHECK约束和规则)或可能的取值范围(FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则)来实现。 如:性别字段只能取“男”或“女”;课程成绩取值范围为0∽100;姓名字段不能为空;性别字段的默认值为“男”等等。 5.1 数据完整性 5.1.2 实体完整性 实体完整性是指表中的每一行必须是惟一的。实体完整性强制表中的所有记录都有一个惟一的标识列,这个惟一标识列可能是一列,也可能有若干列的组合。强制实体完整性的方法有:UNIQUE约束、PRIMARY KEY约束。 如:在学生情况表中,学生的学号是惟一的,它与每个学生一一对应;成绩表中,学号+课程号是惟一的,它与每个学生的每门课相对应。 5.1 数据完整性 5.1.3 参照完整性 参照完整性确保数据库中数据的一致性。在SQL Server中,参照完整性基于外键(引用表)与主键(被引用表)之间或外键与惟一键之间的关系(通过FOREIGN KEY和 CHECK约束)。通过外键将引用表和被引用表关联起来。参照完整性通过已定义的表间关系,确保键值在所有表中都必须一致,因此不能引用不存在的值(即指向不存在的行)。如果在被引用的表中,某一记录被外部键引用,则该记录就不能删除;若需要更改键值,那么在整个数据库中,对该键值的所有引用都要进行一致的更改,以保证数据的参照完整性。 5.1 数据完整性 当设置了参照完整性后,sql server将从以下几个方面限制用户对数据库的操作。 当主表中没有关联记录时,向一个相关表中添加记录。 更改主表中的键值但没有更改相关表的数据,从而使相关表的记录无法在主表中找到相应的关联记录。 当从主表中删除记录时,在相关表中仍存在与该记录相匹配的记录。 5.1 数据完整性 5.1.4 用户定义完整性 用户可以根据需要,可以在SQL Server中定义不属于上述标准类别的特定规则的用户完整性定义。所有的完整性类型都支持用户自定义完整性(CREATE TABLE中的所有列级和表级约束、存储过程和触发器)。 5.1 数据完整性 5.1.5 数据完整性的实现方法 在SQL Server中,有两种方式可以实现数据完整性: l??声明型数据完整性; 是在对象创建时通过定义,由系统本身的自动强制功能来实现的包含使用各种约束、默认和规则。声明型数据完整性在实际使用时是作为数据库对象定义的一部分在语法中实现的。 l??过程型数据完整性。 是通过使用脚本语言编写出用于保证数据完整性的脚本(使用触发器或存储过程)来实现的,当这些脚本被执行时就可以强制完整性的实现。 5.2 约束 建立和使用约束的目的在于保证数据的完整性,设计表时需要定义列的有效值并通过 列中数据、行中数据及表间数据决定如何强制保证数据的完整性,约束定义关于列中允许值的规则,是强制完整性的首选方法。 约束是独立于表结构的,它作为数据库定义的一部分在创建表时声明,可以通过企业管理器或ALTER TABLE语句添加或删除。当表被删除时,表所附带的所有约束同时被删除。 5.2 约束 5.2.1 约束的类型(p72) 域完整性(NOT NULL、DEFAULT、CHECK ) 实体完整性(PRIMARY KEY、UNIQUE ) 参考完整性(FOREIGN KEY ) 5.2 约束 5.2.2 NOT NULL约束 NOT NULL约束又称非空约束,表示使用该约束的列不允许使用空值。若该列是主键,则系统强制主键列为非空约束,而其它列的非空约束必须根据需要加以设置。 非空约束可以在CREATE TABLE建表时实现,在表创建完成后,也可以使用修改列属性的T-SQL

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档