




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 数据完整性,数据完整性概述,数据完整性是指存放在数据库中数据的一致性和准确性,是为了防止数据库中存在不符合语义规范的数据和防止因错误信息的输入/输出造成无效操作或错误信息而提出的。,满足数据完整性的数据有如下特点: 数据正确无误 数据的存放必须确保同一表格数据之间的和谐关系 数据的存放必须维护不同表格数据之间的和谐关系,数据完整性的分类: 实体完整性 域完整性 参照完整性 用户定义完整性,实体完整性,实体完整性也称为行完整性,规定表中的每一行在表中表示唯一的实体,即数据库中所有行都具有一个非空且没有重复的标识字段。,可以通过以下措施来保证实体完整性: 建立唯一索引 主健约束 UNIQU
2、E约束 列设置IDENTITY属性,域完整性,域完整性也称为列完整性,用于限制用户向列中输入的内容。,域完整性的种类及实施措施:,参照完整性(引用完整性),参照完整性是指两个表的主键和外键的数据应对应一致。 参照完整性保证了表之间数据的致性,防止了数据丢失或无意义的数据在数据库中扩散。,参照完整性表现在以下几个方面: 禁止往外键中插入主键中没有的值 禁止修改外键列,而不修改主键列的值 禁止先从主键列所属的表中删除数据行 可以通过外键约束和CHECK约束实现参照完整性。,用户自定义完整性,用户自定义完整性允许用户自定义不属于其他任何完整性分类的特定规则,所有其他的完整性类型都不支持用户定义完整性
3、。,数据完整性实施,声明式数据完整性 程序化数据完整性,声明式数据完整性 将数据所符合的条件融入到对象定义中,是实施数据完整性的首选。 特点: 通过针对表和字段定义声明的约束,可使声明式数据完整性成为数据定义的一部分。 使用约束、默认值与规则实施声明式数据完整性。,程序化数据完整性 将数据所需的条件以及该条件的实施均通过编写的程序代码完成。 特点: 程序化数据完整性可以通过相关的程序语言及工具在客户端或服务器端实施。 使用存储过程或触发器来实施程序化数据完整性。,实施数据完整性方法比较,约束(CONSTRAINT),约束是SQL Serve提供的自动保持数据库数据完整性的一种方法,通过限制行、
4、列中数据和表之间数据来保持数据完整性。 约束是非独立于表结构的。,约束的种类: 主键约束 外键约束 唯一性约束 检查约束 默认约束,(1)主键约束 主键约束是指表的一列或几列的组合在表中具有唯一性,即可以唯一地标识表的一条记录。一个表中可以有一个以上的列组合,这些组合可以唯一标识表中的行,每个组合就是候选键。数据库管理员从候选键中选一个作为主键。,主键的要求: 一个表中不能有两行包含相同的主键值 不能在主键的任何列中输入NULL值 每个表都应有一个主键 IMAGE和TEXT类型的列不能作为主键,定义主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUS
5、TERED NONCLUSTERED (Column_name1, Column_name2,) ON Filegroup,定义主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUSTERED NONCLUSTERED (Column_name1, Column_name2,) ON Filegroup,定义主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUSTERED NONCLUSTERED (Column_name1, Column_name2,) ON Filegroup,定义主键约束 CONSTRA
6、INT constraint_name PRIMARY KEY CLUSTERED NONCLUSTERED (Column_name1, Column_name2,) ON Filegroup,定义主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUSTERED NONCLUSTERED (Column_name1, Column_name2,) ON Filegroup,定义主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUSTERED NONCLUSTERED (Column_name1, Column
7、_name2,) ON Filegroup,定义主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUSTERED NONCLUSTERED (Column_name1, Column_name2,) ON Filegroup,例1 例2,(2)外键约束 外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列到另一个表中,可创建俩个表之间的链接。这个列就称为第二个表的外键。 一个表的外键指向另一个表的候选健,外键约束定义是的表之间的关系。 外键约束实施参照完整性。 不能使用TEXT和IMAGE数据类型的列创建外键。,创建外
8、键 CONSTRAINT constraint_name FOREIGN KEY(Colunm1, Colunm1,) REFERENCES erf_table(ref_column1, ref_column1,) ON FILEGROUP,例3,(3)唯一性约束 唯一性约束指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,通过唯一性约束实施数据完整性。 主键具有唯一性,所以主键不能实施唯一性约束。 一个表可以定义多个唯一性约束,但只能定义一个主键约束。 唯一性约束的列可以为NULL,但是不允许一行以上的值为NULL。,创建唯一性约束 CONSTRAINT constraint_n
9、ame UNIQUE(column_name1, column_name1.) ON FILEGROUP,例4,(4)检查约束 检查约束限制输入到一列或多列中的可能值,只有符合特定条件和格式的数据才能存到字段中,从而保证数据的域完整性。 检查约束可以包括搜索条件和逻辑表达式,但不能包含子查询。 可以为每列指定多个CHECK约束,CONSTRAINT constraint_name CHECK NOT FOR REPLICATIONG (logical_expression),例5,(5)默认约束 用户在表中插入新的数据行时,如没有指定数据,系统就将默认值赋给该列。 默认值约束所提供的默认值可以
10、是常量、函数、NULL等。,注意事项: 1 每列只能定义一个默认约束,默认约束只能用于INSERT语句。 2 默认约束表达式不能用于数据类型为timestamp的列和IDENTITY属性的列上。 3 对于用户自定义数据列,如果已经将默认数据库对象与该数据库对象类型相关联时,对此列也不能使用默认约束。 约束表达式不能参照表中的其他列或者其他表、视图或存储过程。 如果不允许空值且没有指定默认,就必须明确指定列值。,创建默认约束 CONSTRAINT constraint_name DEFAULT constant_expression FOR column_name CREATE DEFAULT
11、default_name AS constnat_experssion EXEC sp_bindefault default_name,column_name,例6,使用企业管理器创建约束,创建主键约束 创建外键约束 创建唯一性约束 创建检查约束 创建默认值约束,规则(RULE),规则就是创建一套准则,交将其结合到表的列或用户定义数据类型上,添加完之后它会检查添加的数据或者对表所作的修改是否满足所设定的条件。,规则与检查约束的异同 规则是一个向后兼容的功能,用于执行一些与 CHECK 约束相同的功能。CHECK 约束是用来限制列值的首选标准方法。,规则与CHECK约束的不同,(1)使用T-SQ
12、L语言创建规则 创建规则 CREATE RULE rule_name AS condition_expression,例7 CREATE RULE r_xb AS xb=男 OR xb=女 GO,(2)使用T-SQL语言绑定规则 绑定规则 Sp_bindrule rule_name,object_name,例8 sp_bindrule r_xb , tt.xb GO,(3)使用T-SQL语言删除规则 删除规则 DROP RULE rule_name,例9 sp_unbindrule tt.xb GO DROP RULE r_xb,2 使用企业管理器管理规则 创建规则 绑定规则 删除规则,3 使
13、用规则的注意事项: 规则对已输入到表中的数据不起作用。 规则所指定的数据类型必须与所绑定对象的数据类型一致。 与表列绑定的规则优先于与用户自定义数据类型绑定的规则。 用户可以直接使用一个新的规则来绑定列或用户自定义数据类型。,表的一列或一个用户自定义数据类型只能绑定一个规则,而一个规则可以绑定到多个对象。 Sp_bindrule只能将规则绑定到当前数据库中的列或用户自定义数据类型上,不能绑定到其他数据库中。,默认值,默认值一种数据库对象,可以绑定到一列或者多列上,也可以绑定到用户自定义数据类型上,其作用类似于默认约束。,默认值与默认约束的异同,(1)使用T-SQL语言创建默认 创建默认 CREATE DEFAULT default_name AS constnat_expression,例10 CREATE DEFAULT d_xb AS 计算机科学系,(2)使用T-SQL语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汕头高三生物试卷及答案
- 肇庆市实验中学高中历史二:第六周限时训练的评讲教案
- 管理沟通与团队作业的讲义四
- 进口标致多路传输原理
- 管道工程产业发展趋势与挑战分析预测考核试卷
- 电机制造中的项目管理与进度控制考核试卷
- 肉类副产品加工过程中的质量控制体系构建考核试卷
- 医院医疗质量安全事件处理知识考核试卷
- 国企2025内蒙古第七地质开发有限责任公司招聘工作人员6人笔试参考题库附带答案详解
- 组织领导力与团队绩效管理考核试卷
- 生物技术与生物医药产业发展趋势分析
- 2025年中小学生五一劳动节假期安全主题班会课件
- 中国海洋石油集团有限公司招聘笔试真题2024
- DBJ-T13-200-2025 福建省桩基础与地下结构防腐蚀技术标准
- 汾西矿业考试试题及答案
- 2025年教育法规试题库及答案
- (完整)高一生物必修1一二单元测试题
- 山东省菏泽市2025年高三一模考试英语试题(含答案)
- 男装商场商品知识培训
- 马克思主义宗教观课件
- 拜访医院客户流程
评论
0/150
提交评论