网站大量收购闲置独家精品文档,联系QQ:2885784924

约束参照完整性PRIMARYKEY主键.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 数据完整性 本章内容 9.1 数据完整性 9.2 约束 9.3 规则 9.4 默认值 9.1 数据完整性 数据完整性是指数据库中存储数据的一致性和正确性,确保各个文件或表中的数据值的关系一致,确保数据库中的数据可以成功和正确地更新 。 数据库设计的一项重要内容是确定如何加强数据的完整性。 9.1 数据完整性 关系数据完整性 关系数据完整性包括一下内容: (1) 实体完整性 实体完整性就是把表中每一条记录看作一个实体,要求所有行都具有唯一标识,即主键,且主键的值非空,又称为行完整性 。 (2) 域完整性 域完整性是关于数据列取值有效性的限制 。域完整性通常用有效性检查来实现,也可以通过限制数据类型、格式或者可能的取值范围来实现 。 例如,对于teaching数据库中s_c表中,GRADE字段的取值只能是从0到100的整数值,而不能为其他数值 。 9.1 数据完整性 (3) 参照完整性 参照完整性是对外键取值有效性的限制,以确保数据在另一个参照表的取值范围内 。参照完整性要求外键的取值只能取参照表中的有效值或空值 。如果在参考表中某一记录的主键被依赖表中的外部键参考,那么这一记录既不能删除,也不能修改其主键值,以确保关键字的一致性 。 (4) 用户定义完整性 用户定义完整性允许特定的不属于上述类别规则的完整性定义,前面的3个完整性类型都支持用户定义完整性。 实现用户定义完整性,可以有两种方法,即声明数据完整性和过程数据完整性。 9.1 数据完整性 声明数据完整性 声明数据完整性是通过在对象定义中定义的标准来实现数据完整性,是由系统本身的自动强制来实现的,它包括使用各种约束、缺省的规则。 过程数据完整性 过程数据完整性是通过在脚本语言中定义的完整性标准来实现的,当执行这些脚本时,就可以强制完整性的实现 。 过程数据完整性的方式包括使用触发器和存储过程等。 9.1 数据完整性 SQL Server 2005中的数据完整性 各类数据完整性和对应实现完整性的SQL Server组件如表9.1所示 。 9.1 数据完整性 (1) 空值 数据表中的列可以接受空值,也可以拒绝空值。在数据库中,NULL是一个特殊值,表示未知值的概念。 NULL不同于空字符或0。空字符是一个有效的字符,0是一个有效的数字。NULL只是表示此值未知这一概念。NULL也不同于零长度字符串(空串)。 如果列定义中包含NOT NULL子句,则不能为该列输入NULL值。如果列定义中仅包含NULL关键字,则接受NULL值 9.1 数据完整性 (2) 约束 约束定义关于列中允许值的规则,是强制实施完整性的标准机制。使用约束优先于使用DML触发器、规则和默认值 。 约束类型 SQL Server 2005有下列约束类型 : NOT NULL约束 :非空约束,指定列不接受NULL值 . CHECK约束 :检查约束,通过限制可输入到列中的值来强制实施域完整性 。 UNIQUE约束:唯一约束,强制实施列取值集合中值的唯一性。主键强制实施唯一性,但主键不允许NULL作为一个唯一值。 9.1 数据完整性 d. PRIMARY KEY约束:主键约束,标识具有唯一标识表中行的值的列或列集 。 e. FOREIGN KEY约束:外键约束,标识并强制实施表之间的关系 。 列约束和表约束 列约束指定为列定义的一部分,并且只应用于该列。表约束的声明与列定义无关,可以应用于表中多个列 。当一个约束中必须包含多个列时,应使用表约束。 9.1 数据完整性 (3) 规则 规则用于执行一些与CHECK约束相同的功能。使用CHECK约束是限制列值的首选标准方法。CHECK约束还比规则更简明。一个列只能应用一个规则,但可以应用多个CHECK约束。CHECK约束被指定为CREATE TABLE语句的一部分,而规则是作为单独的对象创建,然后绑定到列上。 9.1 数据完整性 (4) 默认值 如果插入行时没有为列指定值,默认值则指定列中默认取值。默认值可以是计算结果为常量的任何值,例如常量、内置函数或数学表达式。 若要应用默认值,可以通过在CREATE TABLE中使用DEFAULT关键字来创建默认值定义。这将为每一列分配一个常量表达式作为默认值,也可以作为单独的对象创建,然后绑定到列上。 9.2 约束 约束是通过限制字段中数据、记录中数据和表之间的数据来保证数据完整性 。 约束独立于表结构,创建约束有两种方法 : 创建表时在CREATE TABLE命令中声明; 在不改变表结构的基础上,通过修改表结构命令ALTER TABLE添加或删除 。 当表被删除时,表所带的所有约束定义也随之被删除。 9.2 约束 表9.2 所有可用的约束类型 9.2 约束

文档评论(0)

yuxiufeng + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档