2_第5章_数据库完整性_2幻灯片.pptVIP

  • 4
  • 0
  • 约6.34千字
  • 约 38页
  • 2016-12-05 发布于浙江
  • 举报
5.7.3 UPDATE触发器 5.7.3 UPDATE触发器 UPDATE触发器除了跟踪数据的变化(修改)外,还可以检查是否修改了某列的数据 使用UPDATE(列)函数检测是否修改了某列 问题: 交易日期一般由系统自动产生,默认为当前日期。为了安全 起见,一般禁止修改,以防舞弊。 分析: UPDATE(列名)函数可以检测是否修改了某列 列级UPDATE触发器 5.7.3 UPDATE触发器 -------关键代码------ CREATE TRIGGER trig_update_transInfo ON transInfo FOR UPDATE AS IF UPDATE(transDate) BEGIN print 交易失败..... RAISERROR (‘安全警告:交易日期不能修改, 由系统自动产生,16,1) ROLLBACK TRANSACTION END GO 检查是否修改了交易日期列transDate 回滚事务,撤销交易 5.7.3 UPDATE触发器 5.8 激活触发器 触发器的执行,是由触发事件激活的,并由数据库服务器自动执行 一个数据表上可能定义了多个触发器 5.9 删除触发器 删除触发器的SQL语法: DROP TRIGGER 触发器名 ON 表名; 触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。 [例21] 删除教师表Teacher上的触发器Insert_Sal DROP TRIGGER Insert_Sal ON Teacher; 小 结 触发器在对表进行插入、更新或删除操作时自动执行 触发器通常用于强制业务规则 触发器还是一个特殊的事务单元 触发器出现错误时可以执行回滚撤销操作 触发器一般需要使用临时表:deleted表和inserted表 INSERT触发器、UPDATE触发器和DELETE触发器 定义触发器 触发器激活 下次课程内容 关系数据理论 * Content Layouts 软件学院 L/O/G/O 第五章 数据库完整性 褚龙现 chulongxian@126.com 回顾--数据库完整性概述 数据库的完整性 数据的正确性和相容性 数据的完整性和安全性是两个不同概念 数据的完整性 防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据 防范对象:不合语义的、不正确的数据 数据的安全性 保护数据库防止恶意的破坏和非法的存取 防范对象:非法用户和非法操作 回顾--实体完整性 关系模型的实体完整性 CREATE TABLE中用 PRIMARY KEY定义 单属性构成的码有两种说明方法 定义为列级约束条件 定义为表级约束条件 对多个属性构成的码只有一种说明方法 定义为表级约束条件 回顾--实体完整性检查和违约处理 插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括: 1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改 2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改 回顾--参照完整性 关系模型的参照完整性定义 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码 用REFERENCES短语指明这些外码参照哪些表的主码 回顾--参照完整性检查和违约处理 可能破坏参照完整性的情况及违约处理 拒绝/级连修改/设置为空值 可能破坏参照完整性 修改主码值 拒绝/级连删除/设置为空值 可能破坏参照完整性 删除元组 拒绝 修改外码值 可能破坏参照完整性 拒绝 插入元组 可能破坏参照完整性 违约处理 参照表(例如SC) 被参照表(例如Student) 回顾—用户定义的完整性 CREATE TABLE时定义 列值非空(NOT NULL) 列值唯一(UNIQUE) 检查列值是否满足一个布尔表达式(CHECK) 属性上的约束条件 元组上的约束条件 在CREATE TABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制 元组级的限制可以设置不同属性之间的取值的相互约束条件 回顾--完整性约束命名子句 CONSTRAINT 约束 CONSTRAINT 完整性约束条件名 [ PRIMARY KEY短语 | FOREIGN KEY短语 | CHECK短语 ] 定义触发器 激活触发器 1 2 教 学 内 容 教 学 目 标 难 点 了解触发器的应用场景 重 点 掌握触发器的定义语法

文档评论(0)

1亿VIP精品文档

相关文档