第4章数据的完整性(免费阅读).ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章小结 (1)数据完整性有4种类型。实体完整性、域完整性、参照完整性和用户定义的完整性。在SQL Server 2005中可以通过各种约束、默认、规则和触发器等数据库对象来保证数据的完整性。 (2)规则实施数据的完整性。规则是数据库中对存储在表的列或用户定义数据类型中的值的规定和限制。可以通过Transact-SQL语句来创建、删除、查看规则以及规则的绑定与松绑。 (3)默认值实施数据完整性。默认值是用户输入记录时没有指定具体数据的列中自动插入的数据。默认值对象可以用于多个列或用户定义数据类型,它的管理与应用同规则有许多相似之处。表的一列或一个用户定义数据类型也只能与一个默认值相绑定。在SQL Server中使用Transact-SQL语句实现默认值的创建、查看、删除以及默认值的绑定与松绑。 (4)使用约束实施数据完整性。约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。在SQL Server中有6种约束:非空值约束、主键约束、外键约束、唯一性约束、检查约束和默认约束。 (5)存储过程是一组SQL语句和流程控制语句的集合,以一个名字存储并作为一个单元处理。存储过程用于完成某项任务,它可以接受参数、返回状态值和参数值,并且实现嵌套调用。 (6)触发器就其本质而言是一种特殊的存储过程,有3种类型:插入触发器、更新触发器和删除触发器。当执行插入、删除、更新操作时,触发器将自动触发,以确保对数据的处理符合由触发器所定义的规则。使用触发器可以有效地检查数据的有效性和数据的完整性、一致性。 (7)创建、删除、查看、修改存储过程和触发器可以使用SQL Server管理平台或Transact-SQL语句。存储过程可以由CREATE PROCEDURE和ALTER PROCEDURE语句创建和修改。它必须先保存在服务器中,然后才能被EXECUTE语句执行,同时必须提供输入和输出参数。Transact-SQL支持按位置和按名称两种方法传递参数。触发器可以由CREATE TRIGGER和ALTER TRIGGER语句创建和修改,因事件触发而被执行。 (8)锁是在多用户环境下对资源访问的一种限制。当对一个数据源加锁后,此数据源就有了一定的访问限制。 (9)事务与锁也是保证数据完整性和正确性的机制,可以确保数据能够正确地被存储、修改,而不会造成数据在存储或修改过程中因事故或其他用户的中断而导致的数据不完整。 * 课堂练习(2) 创建一个选课表,表中包括sno、cno、grade三个属性。其中sno、cno为该表主键,同时sno又为学生表主键,cno又为课程表主键,并且grade列定义为0~100之间的整数。 创建一个delete触发器trig1,当从学生表中删除一名学生的时候,通过触发器将被删除学生的记录添加到“学生表-删除”数据表中。(学生表中包括学号、学生姓名、班级、专业等属性) * 【例17】在employee表上创建一个DELETE类型的触发器,该触发器的名称为tr_employee。 (1)创建触发器tr_employee CREATE TRIGGER tr_employee ON employee FOR DELETE AS DECLARE @msg varchar(50) SELECT @msg=STR(@@ROWCOUNT)+个员工被删除 SELECT @msg RETURN 返回 * 定义触发器(续) [例18]为供应情况表SPJ建立触发器TRIG_SPJ,要求插入新记录的COST值不能低于表中已有记录的最低价格。 CREATE TRIGGER TRIG_SPJ ON SPJ FOR INSERT AS IF (SELECT COST FROM INSERTED )=(SELECT MIN(COST) FROM SPJ) BEGIN PRINT 不能低于已有的最低价,更新失败。 ROLLBACK TRANSACTION END 执行下列代码,演示违反TRIG_SPJ的约束的删除操作。 INSERT INTO SPJ VALUES(S1,P1,J5,1000) * 4.6 触发器 4.6.2.1 定义触发器 4.6.2.2 激活触发器 4.6.2.3 删除触发器 * 4.6.2.2 激活触发器 触发器的执行,是由触发事件激活的,并由数据库服务器自动执行 一个数据表上可能定义了多个触发器 同一个表上的多个触发器激活时遵循如下的执行顺序: (1)

文档评论(0)

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

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

1亿VIP精品文档

相关文档