第14章数据完整性-Read.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章数据完整性-Read.ppt

7.11 数据完整性 7.11.1 数据完整性概念 数据完整性是指存储在数据库中的数据的一致性和准确性。 在SQL SERVER 中有3类数据完整性: 一、列(域)级完整性:指定一个数据集对某一个列是否有效和确定是否允许有空值。通常通过使用有效性检查来实现或限制数据类型、格式或可能的取值范围来实现。 二、实体(行)完整性:表中的所有行应有惟一的标识(主键值不能为空) 三、参照完整性:外键值应参照主键值。 7.11 数据完整性 实现数据完整性有两种方法: 1、声明数据完整性:在对象定义中定义的数据标准来实现数据完整性,是系统本身自动强制来实现。 2、过程数据完整性:在脚本语言中定义的数据完整性标准来实现。 在SQL SERVER 中通过约束(主键约束、惟一约束、外键约束、默认约束、检查约束)、默认对象和规则对象这些方法实现数据完整性的。 7.11.2 约束管理 1. 约束的类型 约束是保证数据完整性的有效方法,是通过限制列中数据、行中数据和表之间数据来保证数据完整性。 域完整性:default check 实体完整性:primary key unique 参照完整性:foreign key 2. 定义约束 可以使用CREATE TABLE或 ALTER TABLE语句完成。 Create table 表名 (列名 数据类型 [constraint 约束名 {primary key [clustered/nonclustered] /unique [clustered/nonclustered] /foreign key references 参照表名(列名) /default 固定表达式 /check 逻辑表达式}] 当定义约束或修改约束的定义时,应该注意: 不必删除表,要直接创建、修改和删除约束定义 应加强增加错误检查机制,测试数据是否与约束相冲突 当在表上增加索引时,系统检查表中的数据是否与约束冲突 建议约束名为:约束类型简称_表名_列名_代号 查看有关约束的信息: 使用系统存储过程:sp_helpconstraint,得到数据库中某一个表中的全部约束信息。 3. 默认约束管理 默认约束的语法形式: constraint 约束名 default 固定表达式 功能:当使用INSERT语句插入数据时,若某一个列没有指定数据,则默认约束在此输入一个值。 注意:1、默认约束只能应用于INSERT语句;2、每个列只能定义一个默认约束;3、默认约束不能放在有IDENTITY属性的列上或数据类型TIMESTAMP的列上;4、默认约束的值可由系统函数提供。 4. 检查约束管理 检查约束的语法形式: constraint 约束名 check (逻辑表达式) 功能:限制用户输入某一个列的数据(只能输入指定范围内的数据) 举例:P224 14_3 注意:1、 只用于INSERT、UPDATE语句;2、可参考本表中的其它列;3、默认约束不能放在有IDENTITY属性的列上或数据类型TIMESTAMP的列上;4、检查约束不能包含子查询语句。 5. 主键约束管理 主键约束的语法形式: constraint 约束名 primary key [clustered/nonclustered](列名) 功能:唯一确定表中每一行数据的标识符。一个主键约束中可包含一列或多个列;默认的主键约束上惟一性的聚簇索引。 注意:1、一个表最多只能定义一个主键约束; 2、其值必须唯一,不能为空值 ; 3、默认的主键约束上的索引为聚簇索引也可是非聚簇索引。 6 .惟一性约束管理 constraint 约束名 unique [clustered/nonclustered](列名) 功能:指定一列或多列上不能有相同值(即惟一值)。 注意: 1、惟一性约束所在列允许空值,而主键约束所在的列不允许空值; 2、一个表中可以有多个惟一性约束; 3、惟一约束强制在指定的列上创建一个惟一的索引(默认是聚簇索引也可是非聚簇索引)。 7. 外键约束管理 格式: constraint 约束名 foreign key (列名) references 参照表名(列名) 功能:定义一个列或多个列参照同一个表或另一个表中的主键约束列或惟一性约束列。以此实现表间的依赖关系。 注意:1、外键必须与主键的数据类型及个数据相同;2、外键约束不能自动创建索引;3、当用户修改外键所在表中的数据时,该用户必须拥有相应的权限 8. 禁止在已有的数据上应用约束 语法格式: alter table 表名 With check/with nocheck add co

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档