- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2.4 触发器 触发器 在数据库系统中,一个事件的发生会导致另外一些事件的发生,这样的功能被称为触发器 触发器的功能:某个事件的发生会导致另外一些事件的执行,以消除前一个事件对数据完整性所起的影响 触发器最初是用于数据的完整性保护,但现在已经远远超出了此范围,也被应用于其它的目的,如: 数据的安全性保护 用户的应用逻辑处理 数据库系统的主动功能 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2.4 触发器 触发器的组成 触发事件(由用户定义) 通常为某个完整性约束条件的否定或某种数据操纵事件 如:用户登录,数据的增、删、改等 结果事件(由用户定义) 当触发事件发生时,用以消除触发事件所引起的负面影响的程序 通常是一组由用户书写的SQL命令 触发过程 当DBMS检测到触发事件的发生时,自动调用并执行结果事件的过程 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2.4 触发器 触发器的定义命令 CREATE TRIGGER trigger_name { BEFORE | AFTER } { INSERT | DELETE | UPDATE [ OF colname { , colname ... } ] } ON table_name [ REFERENCING corr_name_def { , ...... } ] [ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN ( search_condition ) ] { statement | BEGIN ATOMIC statement; { statement; ... } END 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2.4 触发器 触发器的定义命令(续) The corr_name_def that defines a correlation name follows: { OLD [ ROW ] [ AS ] old_row_corr_name | NEW [ ROW ] [ AS ] new_row_corr_name | OLD TABLE [ AS ] old_table_corr_name | NEW TABLE [ AS ] new_table_corr_name } 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2.4 触发器 触发器的删除命令 DROP TRIGGER trigger_name ; 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2.4 触发器 例4.12 触发事件:修改或增添教师的工资和职称 结果事件:在插入新的教师元组或教师的职称晋升为教授时,若教授工资低于1000元,则将其自动转为1000元。 CREATE TRIGGER update_sal BEFORE INSERT or UPDATE(Sal, Pos) ON Teach FOR EACH ROW WHEN (:new.Pos =‘教授’) /*某教师的职称为教授*/ BEGIN IF :new.sal 1000 THEN :new.sal := 1000; END IF; END; Reference是指在完整性约束下引用关系的权利;Usage主要应用在关系和断言之外的多种模式元素上;Trigger是定义这个关系上的触发器的权利;Execute是执行如PSM过程或函数之类的代码的权利;Under是创建给定类型的子类型权利 * 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2 数据库的完整性 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2 数据库的完整性 数据库的完整性 指数据库中数据的正确性和一致性,包括: 正确性:数据的有效性、有意义 一致性:在多用户(多程序)并发访问数据库的情况下,保证对数据的更新不会出现与实际不一致的情况 我们一方面要避免在数据库中出现错误的数据,即防止数据的完整性受到破坏。同时,如果因为某些不可抗拒的原因而导致数据库中的数据被破坏,也要能够及时发现并采取一定的措施将数据库中的数据恢复到正确的状态下去 2007年度-教育部-IBM精品课程-南京大学计算机科学与技术系 * 4.2 数据库的完整性 完整性保护 对数据库中数据的正确性和一致性的维护,包括: 在执行更新操作时,检查是否违反完整性约束条件,并且在证明其无效后作出适当的反
文档评论(0)