SQLServer第4章(第二部分)设计数据完整性.ppt_第1页
SQLServer第4章(第二部分)设计数据完整性.ppt_第2页
SQLServer第4章(第二部分)设计数据完整性.ppt_第3页
SQLServer第4章(第二部分)设计数据完整性.ppt_第4页
SQLServer第4章(第二部分)设计数据完整性.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、教学提示:数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误的信息。那么保证数据正确性、一致性和可靠性,就成了数据库系统关注的重要问题。通过本章的学习,读者应该掌握数据完整性的概念以及如何实施数据完整性。,教学要求:应掌握: 数据完整性概念 各种约束管理技术 默认管理技术 使用规则,第四章(第二部分) 设计数据的完整性,1 数据完整性的概念 2 使用约束实施数据完整性,实体完整性(Entity Integrity) 域完整性(Domain Integrity) 参照完整性(Referential Integrity) 用户定义的完整性( User-defined In

2、tegrity) 数据完整性的实现方式,NOT NULL(非空)约束 PRIMARY KEY(主键)约束 UNIQUE(惟一性)约束 CHECK(检查)约束 DEFAULT(默认)约束 FOREIGN KEY(外键)约束,第4章 设计数据的完整性,3 默认管理技术 4使用规则 5使用IDENTITY(标识符)列,创建默认 绑定默认 解除绑定默认 删除默认,创建规则 绑定规则 解除绑定规则 删除规则,第4章 设计数据的完整性,创建IDENTITY列 使用 IDENTITY函数,第4章 设计数据的完整性,1数据完整性 2使用约束 3默认技术 4使用规则 5标识列 6实训 7小结,定义 类型 图示,

3、数据完整性用于保证数据库中数据的正确性、一致性和可靠性。,1数据完整性的概念,实体完整性(Entity Integrity) 域完整性(Domain Integrity) 参照完整性(Referential Integrity) 用户定义完整性(User-defined Integrity),第4章 设计数据的完整性,1.1实体完整性(Entity Integrity),1数据完整性的概念(1),实体完整性用于保证数据库中数据表的每一个特定实体的记录都是唯一的,1数据完整性 实体完整性 域完整性 参照完整性 自定义完整性 完整性实现 2使用约束 3默认技术 4使用规则 5标识列 6实训 7小结

4、,第4章 设计数据的完整性,1.2 域完整性(Domain Integrity),1数据完整性的概念(2),域完整性是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。,1数据完整性 实体完整性 域完整性 参照完整性 自定义完整性 完整性实现 2使用约束 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,1.3 参照完整性(Referential Integrity),1数据完整性的概念(3),当增加、修改或删除数据库表中记录时,可以借助参照完整性来保证相关联表之间数据的一致性,1数据完整性 实体完整性 域完整性 参照完整性 自定义完整性 完整性实现 2使用

5、约束 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,1.4用户定义完整性 (User- defined Integrity),1数据完整性的概念(4),这是由用户定义的完整性。 用户定义完整性可以定义不属于其他任何完整性分类的特定业务规则,1数据完整性 实体完整性 域完整性 参照完整性 自定义完整性 完整性实现 2使用约束 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,1.5数据完整性的实现方式,1数据完整性的概念(5),声明数据完整性和过程数据完整性,1数据完整性 实体完整性 域完整性 参照完整性 自定义完整性 完整性实现 2使用约

6、束 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,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小结,第4章 设计数据的完整性,2使用约束实施数据完整性(1),CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 NULL | NOT NULL , ),说明:NU

7、LL和NOT NULL分别代表允许为空和不允许为空,不写为允许为空。,2.1 NOTNULL(非空)约束,【例4_1】创建学生信息表,同时设置NOT NULL约束 【例4_2】添加NOT NULL约束到表中,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束实施数据完整性(2),语法格式1: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 PRIMARY KEY CLUSTERED | NONCLUSTERED ,),说明:语法格式1定义单列主键,CLUSTER

8、ED和 NONCLUSTERED 分别代表聚集索引和非聚集索引。,2.2 PRIMARY KEY(主键)约束,【例4_3】创建学生信息表并设置学号列为主键,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束实施数据完整性(3),语法格式2: CREATE TABEL 数据表名 (CONSTRAIN 约束名 PRIMARY KEY CLUSTERED | NONCLUSTERED (列名1,n) ,.),说明:语法格式2定义多列组合主键,CLUSTERED和 NONCLUSTERED 分别代表聚集

9、索引和非聚集索引。,2.2 PRIMARY KEY(主键)约束,【例4_4】创建教学成绩表并设置组合主键 【例4_5】 修改表添加组合主键约束,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束实施数据完整性(4),语法格式1: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 UNIQUE CLUSTERED | NONCLUSTERED ,.),说明:语法格式1定义单列唯一约束,2.3 UNIQUE(唯一性)约束,【例4_6】创建专业信息表并设置名称列为唯一约

10、束,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束实施数据完整性(5),语法格式2: CREATE TABEL 数据表名 (CONSTRAIN 约束名 UNIQUE CLUSTERED | NONCLUSTERED (列名1,n) ,.),说明:语法格式2定义多列组合唯一约束,2.3 UNIQUE(唯一性)约束,【例4_7】修改表设置唯一约束,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束

11、实施数据完整性(6),语法格式: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAINT 约束名 CHECK(逻辑表达式) ,.),说明:如果是在现有表中添加检查约束,可以设置WITH NOCHECK ,对现有数据强制约束约束检查,2.4 CHECK(检查)约束,【例4_8】创建学生信息表并定义CHECK约束 【例4_9】在学生信息表表上添加CHECK约束,限定联系电话列的输入长度和取值范围,对现有数据不检查,即原有的电话号码依然有效,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,

12、2使用约束实施数据完整性(7),语法格式1: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAINT 约束名 DEFAULT 默认值 ,.) 语法格式2: CREATE TABEL 数据表名 (CONSTRAINT 约束名 DEFAULT 默认值 FOR 列,.),2.5 DEFAULT(默认)约束,【例4_10】创建学生信息表并设置默认约束 【例4_11】在教师信息表上添加默认约束,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束实施数据完整性(8),语法格式1: CRE

13、ATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 FOREIGN KEYREFERENCES 参照主键表 (参照列) ON DELETE CASCADE | ON UPDATE CASCADE ,.),说明:语法格式1定义单列外键约束 。ON DELETE CASCADE表示级联删除,即父表中删除被引用行时,也将从引用表中删除引用行; ON UPDATE CASCADE表示级联更新,即父表中更新被引用行时,也将在引用表中更新引用行。,2.6 FOREIGN KEY(外键)约束,【例4_12】创建表并定义外键,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外

14、键 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,2使用约束实施数据完整性(9),语法格式2: CREATE TABEL 数据表名 (CONSTRAIN 约束名 FOREIGN KEY (列,n) references 参照主键表 (参照列,n) ON DELETE CASCADE | ON UPDATE CASCADE,.),说明:语法格式2定义多列组合外键约束 。,2.6 FOREIGN KEY(外键)约束,【例4_13】在教学成绩表中添加外键约束,参照表为学生信息表,1数据完整性 2使用约束 非空 主键 唯一性 检查 默认 外键 3默认技术 4使用规则 5标

15、识列 6实训 7小结,第4章 设计数据的完整性,3默认管理技术,3.1 创建默认 3.2 绑定默认 3.3 解除绑定默认 3.4 删除默认,1数据完整性 2使用约束 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,3默认管理技术(1),语法格式: CREATE DEFAULT 默认名称 AS 常数表达式,说明:默认值名称必须符合标识符的规则。常数表达式是指只包含常量值的表达式(不能包含任何列或其他数据库对象的名称)。可以使用任何常量、内置函数或数学表达式。,3.1 创建默认,【例4_14】在教学成绩管理数据库中创建一个默认对象,1数据完整性 2使用约束 3默认技术

16、创建 绑定 解除 删除 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,3默认管理技术(2),语法格式: sp_bindefault defname = 默认名称 , objname = 对象名 , futureonly = futureonly_flag ,说明:可以绑定到列或用户自定义类型。futureonly_flag仅在将默认值绑定到用户定义的数据类型时才使用,将此参数设置为 futureonly 时,只有当包含用户定义数据类型的新表创建时,这个默认值才生效。 。,3.2 绑定默认,【例4_15】将上一节所创建的默认df_学历绑定到教师信息表的学历列 【例4_16】将默

17、认值绑定到用户定义的数据类型。 【例4_17】使用 futureonly_flag。,1数据完整性 2使用约束 3默认技术 创建 绑定 解除 删除 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,3默认管理技术(3),语法格式: sp_unbindefault objname = 对象名 , futureonly = futureonly_flag,说明:在解除绑定时不必指出默认名称,因为在指定的对象上只有一个默认存在。,3.3 解除绑定默认,【例4_18】为列解除绑定的默认对象 【例4_19】为用户自定义数据类型解除默认值绑定。 【例4_20】使用 futureonly_fl

18、ag。,1数据完整性 2使用约束 3默认技术 创建 绑定 解除 删除 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,3默认管理技术(4),语法格式: DROP DEFAULT 默认值名 ,.n ,说明:使用DROP DEFAULT从当前数据库中删除一个或多个用户定义的默认值。如果有绑定,则先解除绑定,再删除。,3.4 删除默认,【例4_21】删除默认对象df_学历,1数据完整性 2使用约束 3默认技术 创建 绑定 解除 删除 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,4使用规则,4.1 创建规则 4.2 绑定规则 4.3 解除绑定规则 4.4 删除规则,1数据完整性 2使用约束 3默认技术 4使用规则 5标识列 6实训 7小结,第4章 设计数据的完整性,4使用规则(2),语法格式: sp_bindrule rulename = 规则名 , objname = 对象名 , futur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论