资源描述
Click To Edit Master Title Style,Click to edit Master text styles,Second level,Third level,4th level,5th level,网络数据库,SQL Server,扬州职业大学 严双林,Click To Edit Master Title Style,Click to edit Master text styles,Second level,Third level,4th level,5th level,网络数据库,SQL Server,扬州职业大学 严双林,教学提示:,数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误的信息。那么保证数据正确性、一致性和可靠性,就成了数据库系统关注的重要问题。通过本章的学习,读者应该掌握数据完整性的概念以及如何实施数据完整性,。,教学要求:,应掌握:,数据完整性概念,各种约束管理技术,默认管理技术,使用规则,第,7,章 设计数据的完整性,1,数据完整性的概念,2,使用约束实施数据完整性,实体完整性,(Entity Integrity),域完整性,(Domain Integrity),参照完整性,(Referential Integrity),用户定义的完整性,(User-defined Integrity),数据完整性的实现方式,NOT NULL,(非空)约束,PRIMARY KEY,(主键)约束,UNIQUE,(惟一性)约束,CHECK,(检查)约束,DEFAULT,(默认)约束,FOREIGN KEY,(外键)约束,第,7,章 设计数据的完整性,3,默认管理技术,4,使用规则,5,使用,IDENTITY,(标识符)列,创建默认,绑定默认,解除绑定默认,删除默认,创建规则,绑定规则,解除绑定规则,删除规则,第,7,章 设计数据的完整性,创建,IDENTITY,列,使用,IDENTITY,函数,第,7,章 设计数据的完整性,1,数据完整性,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,定义,类型,图示,数据完整性用于保证数据库中数据的正确性、一致性和可靠性。,1,数据完整性的概念,实体完整性,(Entity Integrity),域完整性,(Domain Integrity),参照完整性,(Referential Integrity),用户定义完整性,(User-defined Integrity),第,7,章 设计数据的完整性,1.1,实体完整性(,Entity Integrity,),1,数据完整性的概念(,1,),实体完整性用于保证数据库中数据表的每一个特定实体的记录都是唯一的,1,数据完整性,实体完整性,域完整性,参照完整性,自定义完整性,完整性实现,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,1.2,域完整性(,Domain Integrity,),1,数据完整性的概念(,2,),域完整性是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围,。,1,数据完整性,实体完整性,域完整性,参照完整性,自定义完整性,完整性实现,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,1.3,参照完整性(,Referential Integrity,),1,数据完整性的概念(,3,),当增加、修改或删除数据库表中记录时,可以借助参照完整性来保证相关联表之间数据的一致性,1,数据完整性,实体完整性,域完整性,参照完整性,自定义完整性,完整性实现,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,1.4,用户定义完整性,(,User-,defined Integrity,),1,数据完整性的概念(,4,),这是由用户定义的完整性。,用户定义完整性可以定义不属于其他任何完整性分类的特定业务规则,1,数据完整性,实体完整性,域完整性,参照完整性,自定义完整性,完整性实现,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,1.5,数据完整性的实现方式,1,数据完整性的概念(,5,),声明数据完整性和过程数据完整性,1,数据完整性,实体完整性,域完整性,参照完整性,自定义完整性,完整性实现,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性,2.1 NOTNULL,(,非,空)约束,2.2 PRIMARY KEY,(主键)约束,2.3 UNIQUE,(惟一性)约束,2.4 CHECK,(检查)约束,2.5 DEFAULT,(默认)约束,2.6 FOREIGN KEY,(外键)约束,1,数据完整性,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,1,),CREATE TABEL,数据表名,(,列名 数据类型,CONSTRAIN,约束名,NULL|NOT NULL,,,),说明:,NULL,和,NOT NULL,分别代表允许为空和不允许为空,不写为允许为空。,2.1 NOTNULL,(,非,空)约束,【,例,7_1】,创建学生信息表,同时设置,NOT NULL,约束,【,例,7_2】,添加,NOT NULL,约束到表中,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,2,),语法格式,1,:,CREATE TABEL,数据表名,(,列名 数据类型,CONSTRAIN,约束名,PRIMARY KEY CLUSTERED|NONCLUSTERED,,,),说明:语法格式,1,定义单列主键,,CLUSTERED,和,NONCLUSTERED,分别代表聚集索引和非聚集索引。,2.2 PRIMARY KEY(,主键,),约束,【,例,7_3】,创建学生信息表并设置学号列为主键,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,3,),语法格式,2,:,CREATE TABEL,数据表名,(CONSTRAIN,约束名,PRIMARY KEY CLUSTERED|NONCLUSTERED(,列名,1,n),.),说明:语法格式,2,定义多列组合主键,,CLUSTERED,和,NONCLUSTERED,分别代表聚集索引和非聚集索引。,2.2 PRIMARY KEY(,主键,),约束,【,例,7_4】,创建教学成绩表并设置组合主键,【,例,7_5】,修改表添加组合主键约束,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,4,),语法格式,1,:,CREATE TABEL,数据表名,(,列名 数据类型,CONSTRAIN,约束名,UNIQUE CLUSTERED|NONCLUSTERED,.),说明:语法格式,1,定义单列唯一约束,2.3 UNIQUE(,唯一性,),约束,【,例,7_6】,创建专业信息表并设置名称列为唯一约束,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,5,),语法格式,2,:,CREATE TABEL,数据表名,(CONSTRAIN,约束名,UNIQUE CLUSTERED|NONCLUSTERED(,列名,1,n),.),说明:语法格式,2,定义多列组合唯一约束,2.3 UNIQUE(,唯一性,),约束,【,例,7_7】,修改表设置唯一约束,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,6,),语法格式:,CREATE TABEL,数据表名,(,列名,数据类型,CONSTRAINT,约束名,CHECK,(逻辑表达式),.),说明:如果是在现有表中添加检查约束,可以设置,WITH NOCHECK,,对现有数据强制约束约束检查,2.4 CHECK(,检查,),约束,【,例,7_8】,创建学生信息表并定义,CHECK,约束,【,例,7_9】,在学生信息表表上添加,CHECK,约束,限定联系电话列的输入长度和取值范围,对现有数据不检查,即原有的电话号码依然有效,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,7,),语法格式,1,:,CREATE TABEL,数据表名,(,列名,数据类型,CONSTRAINT,约束名,DEFAULT,默认值,.),语法格式,2,:,CREATE TABEL,数据表名,(CONSTRAINT,约束名,DEFAULT,默认值,FOR,列,.),2.5 DEFAULT(,默认,),约束,【,例,7_10】,创建学生信息表并设置默认约束,【,例,7_,11,】,在学生信息表上添加默认约束,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,8,),语法格式,1,:,CREATE TABEL,数据表名,(,列名 数据类型,CONSTRAIN,约束名,FOREIGN KEYREFERENCES,参照主键表,(,参照列,)ON DELETE CASCADE|ON UPDATE CASCADE,.),说明:语法格式,1,定义单列外键约束。,ON DELETE CASCADE,表示,级联删除,即父表中删除被引用行时,也将从引用表中删除引用行;,ON UPDATE CASCADE,表示,级联更新,即父表中更新被引用行时,也将在引用表中更新引用行。,2.6 FOREIGN KEY(,外键,),约束,【,例,7_12】,创建表并定义外键,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,2,使用约束实施数据完整性(,9,),语法格式,2,:,CREATE TABEL,数据表名,(CONSTRAIN,约束名,FOREIGN KEY,(列,,,n,),references,参照主键表,(参照列,,,n,),ON DELETE CASCADE|ON UPDATE CASCADE,.),说明:语法格式,2,定义多列组合外键约束。,2.6 FOREIGN KEY(,外键,),约束,【,例,7_13】,在教学成绩表中添加外键约束,参照表为学生信息表,1,数据完整性,2,使用约束,非空,主键,唯一性,检查,默认,外键,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,3,默认管理技术,3.1,创建默认,3.2,绑定默认,3.3,解除绑定默认,3.4,删除默认,1,数据完整性,2,使用约束,3,默认技术,4,使用规则,5,标识列,6,实训,7,小结,第,7,章 设计数据的完整性,3,默认管理技术(,1,),语法格式:,CREATE DEFAULT,默认名称,AS,常数表
展开阅读全文