课件第7章 数据完整性.ppt
《课件第7章 数据完整性.ppt》由会员分享,可在线阅读,更多相关《课件第7章 数据完整性.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LOGO本章学习目标:本章学习目标:理解数据完整性的概念和控制机制理解数据完整性的概念和控制机制掌握使用规则、默认值及约束来实现数据的掌握使用规则、默认值及约束来实现数据的完整性完整性7.1 工作场景导入工作场景导入怎样规定插入的学生年龄值在怎样规定插入的学生年龄值在1120之间?之间?如何限制如何限制“性别性别”列只能输入列只能输入“男男”或或“女女”?如果入学学生中男生占大多数,怎样在如果入学学生中男生占大多数,怎样在“性性别别”列设置默认值列设置默认值“男男”,从而削减批量插入,从而削减批量插入的数据量。的数据量。强制数据完整性能够保证数据库中数据的强制数据完整性能够保证数据库中数据的质
2、量。例如,如果输入了员工质量。例如,如果输入了员工ID值为值为214的员工,则数据库不允许其他员工拥有相的员工,则数据库不允许其他员工拥有相同同ID值。如果某一列的取值范围是值。如果某一列的取值范围是1到到10,则数据库将不接受插入此范围之外的值。则数据库将不接受插入此范围之外的值。如果表中有一个存储公司部门编号的如果表中有一个存储公司部门编号的department_id列,则该列应当只能够列,则该列应当只能够插入有效的公司部门编号值。插入有效的公司部门编号值。引导问题:引导问题:(1) 如何使用如何使用“规则规则”限定输入的年龄值在限定输入的年龄值在1120之间?之间?(2) 如何为如何为“
3、性别性别”列设置默认值列设置默认值“男男”,以,以减少插入数据量?减少插入数据量?(3) 如何实现强制数据完整性?如何实现强制数据完整性?7.2 如何实现数据完整性如何实现数据完整性数据完整性的含义包括以下内容:数据完整性的含义包括以下内容:(1)数值的完整性,指数据类型与取值的正)数值的完整性,指数据类型与取值的正确性。确性。(2)表内数据不相互矛盾。)表内数据不相互矛盾。 (3)表间数据不相互矛盾,指数据的关联性)表间数据不相互矛盾,指数据的关联性不被破坏。不被破坏。实体完整性:要求表中每一条记录(每一行实体完整性:要求表中每一条记录(每一行数据)是唯一的,即它必须至少拥有一个惟数据)是唯
4、一的,即它必须至少拥有一个惟一标识以区分不同的数据行。实现方法有:一标识以区分不同的数据行。实现方法有:主键约束主键约束PRIMARY KEY、惟一性约束、惟一性约束UNIQUE、惟一索引、惟一索引UNIQUE INDEX、标识标识IDENTITY等等 。按照数据完整性的功能分为按照数据完整性的功能分为4类:类:7.2 如何实现数据完整性如何实现数据完整性域完整性:限定表中输入数据的数据类型与域完整性:限定表中输入数据的数据类型与取值范围。实现方法:默认值约束取值范围。实现方法:默认值约束DEFAULT或默认对象、核查约束或默认对象、核查约束CHECK、外键约束外键约束FOREIGN KEY、
5、规则、规则RULE 、数据类型、非空性约束数据类型、非空性约束NOT NULL等。等。7.2 如何实现数据完整性如何实现数据完整性引用完整性:指对数据库进行添加、删除、引用完整性:指对数据库进行添加、删除、修改数据时,要维护表间数据的一致性。实修改数据时,要维护表间数据的一致性。实现方法:外键约束现方法:外键约束FOREIGN KEY、核查约、核查约束束CHECK、触发器、触发器TRIGGER、存储过程、存储过程PROCEDURE。7.2 如何实现数据完整性如何实现数据完整性用户定义的完整性:用户定义的完整性:用于实现用户特殊要求用于实现用户特殊要求的数据规则或格式。实现方法:默认值的数据规则
6、或格式。实现方法:默认值DEFAULT、核查约束、核查约束CHECK、规则、规则RULE 等。等。 7.2 如何实现数据完整性如何实现数据完整性7.3 规则对象的基本操作规则对象的基本操作 创建规则对象的基本语法格式如下:创建规则对象的基本语法格式如下:CREATE RULE schema_name rule_name AS condition_expression ; 各参数的含义如下:各参数的含义如下:schema_name:规则所属架构的名称。:规则所属架构的名称。rule_name:新规则的名称。规则名称必:新规则的名称。规则名称必须符合标识符规则。根据需要,指定规则所须符合标识符规则
7、。根据需要,指定规则所有者名称。有者名称。condition_expression:定义规则的条:定义规则的条件。规则可以是件。规则可以是WHERE子句中任何有效的子句中任何有效的表达式,并且可以包括诸如算术运算符、关表达式,并且可以包括诸如算术运算符、关系运算符和谓词系运算符和谓词(如如 IN、LIKE、BETWEEN)这样的元素。规则不能引用列这样的元素。规则不能引用列或其他数据库对象,可以包括不引用数据库或其他数据库对象,可以包括不引用数据库对象的内置函数,不能使用用户定义函数。对象的内置函数,不能使用用户定义函数。condition_expression包括一个变量。包括一个变量。每个
8、局部变量的前面都有一个每个局部变量的前面都有一个符号。该表符号。该表达式引用通过达式引用通过UPDATE或或INSERT语句输入语句输入的值。在创建规则时,可以使用任何名称或的值。在创建规则时,可以使用任何名称或符号表示值,但第一个字符必须是符号表示值,但第一个字符必须是符号。符号。7.3.2 绑定规则对象绑定规则对象将创建好的规则对象绑定到某个数据表的将创建好的规则对象绑定到某个数据表的列上,规则对象才会起约束作用。列上,规则对象才会起约束作用。绑定规则对象的语法格式如下:绑定规则对象的语法格式如下:Exec Sp_bindrule 规则对象名规则对象名, 表名表名.列名列名【例【例6-5】
9、建立数据表】建立数据表“学生学生”,包括,包括“姓名姓名”、“性别性别”、“年龄年龄”字段,要求年龄字段值为字段,要求年龄字段值为1120。CREATE TABLE 学生学生( 姓名姓名 nvarchar(4), 性别性别 nvarchar(1),年龄年龄 tinyint)Exec Sp_bindrule age_rule,学生学生.年龄年龄7.3.3 验证规则对象验证规则对象【例【例6-6】向】向“学生学生”表中插入一条记录,该表中插入一条记录,该学生的年龄为学生的年龄为215。INSERT INTO 学生学生 values(刘星刘星,215)执行上述插入语句,结果如图执行上述插入语句,结果
10、如图6-3所示。所示。7.3.4 解除规则对象绑定解除规则对象绑定如果表中列不再需要规则对象,可以将规如果表中列不再需要规则对象,可以将规则对象解除绑定。执行删除规则对象前,则对象解除绑定。执行删除规则对象前,规则对象仍然存储在数据库中,还可以再规则对象仍然存储在数据库中,还可以再绑定到其他列上。绑定到其他列上。解除绑定的命令格式如下:解除绑定的命令格式如下:Sp_unbindrule 表名表名.列名列名【例【例6-7】解除】解除“学生学生”表中的规则对象绑定。表中的规则对象绑定。Exec Sp_unbindrule 学生学生.年龄年龄7.3.5 删除规则对象删除规则对象如果需要删除规则对象,
11、必须先解除对该如果需要删除规则对象,必须先解除对该规则对象的所有绑定,然后从数据库中清规则对象的所有绑定,然后从数据库中清除。删除规则对象的语法格式如下。除。删除规则对象的语法格式如下。DROP RULE 规则对象名组规则对象名组【例【例6-8】删除规则对象】删除规则对象age_rule和和sex_rule。DROP RULE age_rule, sex_rule说明:可以同时删除多个规则对象,规则说明:可以同时删除多个规则对象,规则对象名之间用对象名之间用“,”分隔。分隔。7.4 默认值对象的基本操默认值对象的基本操作作创建默认值对象的语法格式如下:创建默认值对象的语法格式如下:CREATE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课件第7章 数据完整性 课件 数据 完整性
限制150内