Oracle数据库是在数据库领域一直处于领先地位的产品。在Oracle数据库开发中也有很多细微的技术,比如触发器。本文是一篇中文核心期刊范文,主要论述了触发器在Oracle数据库中的应用研究。
摘要:Oracle数据库是目前世界上使用最为广泛的数据库管理系统,而触发器作为一种特殊类型的存储过程,在维护数据库安全性、完整性等方面有着重要作用。以SYSTEM模式中的emp和dept数据表为例,阐述了触发器的概念及具体应用,以及其在数据库开发中强大的功能和特点。
关键词:Oracle,触发器,SYSTEM模式,数据库应用
0 引言
触发器在Oracle数据库开发中作用强大,可以方便地基于一个表的修改,自动更新其它相关表的记录,以保证数据的完整性和一致性。触发器是建立在Oracle数据表上的一种特殊的存储过程,它定义了一些与数据库相关事件(INSERT、UPDATE、CREATE等)发生时应执行的“功能代码块”,通常用于管理复杂的完整性约束或监控对表的修改,或通知其它程序,甚至可以实现对数据的审计功能。与一般存储过程不同,触发器不能直接调用,而是由事件启动运行的,当事件发生或出现指定操作时,触发器会自动激活,进行设定的数据处理。
1 触发器组成及分类
触发器由触发事件、触发时机、触发操作、触发对象及触发频率等几部分组成[1]。
触发事件,是引起触发器被触发的事件。例如,执行DML语句、DDL语句、数据库系统事件(如系统启动或退出、产生异常错误等)和用户事件(如登录或退出数据库操作),这些操作都可以引起触发器的运行。
触发时机:表示在触发事件发生之前还是之后执行触发。关键字为BEFORE、AFTER或INSTEAD OF。BEFORE表示在执行DML等操作之前触发;AFTER表示在DML等操作之后发生;INSTEAD OF表示触发器是替代触发器。
触发操作:触发器被触发后执行的“程序代码块”。
触发对象:包括表、视图、模式、数据库。只有在这些对象上发生了符合触发条件的触发事件,才会执行触发操作。
触发频率:指触发器内定义的动作被执行的次数,即语句级触发器或行级触发器。
根据触发事件和触发器的执行情况,可以将Oracle所支持的触发器分为5种类型:语句级触发器、行级触发器、替换触发器、用户事件触发器和系统事件触发器。
语句级触发器:针对一条DML语句而引起的触发器执行,无论该语句影响了多少行数据,触发器只会执行一次。
行级触发器:相对于语句级触发器而言,行级触发器会针对DML操作所影响的每一行数据执行一次触发器。
替换触发器:替换触发器定义在视图上,而不是数据表上。视图是由多个基表连接组成的逻辑结构,一般不允许进行DML操作。当编写替换触发器后,对视图的操作实际上就变成了对构成视图的各个基表的操作。
用户和系统事件触发器:因DDL操作或用户登录、退出或系统事件等操作而引起运行的一种触发器。
2 触发器编写应用实例
以Oracle数据库中SYSTEM模式下的emp和dept两张表为例。emp为员工信息表,dept为部门信息表,具体结构如表1、表2所示。
以emp和dept为基表,满足以下要求:①创建新表dept_log来监控dept表的操作信息及操作日期;②以emp和dept为基表,创建一个检索员工信息的视图,对视图进行insert操作。以上两点要求,实际上是在emp和dept表中创建行级触发器和替换触发器的问题。
3 触发器编写注意事项
在Oracle数据库开发中,触发器编写需注意以下几点:①触发器的定义不允许带有参数;②一个表上最多有12个触发器。但同一时间、同一事件的触发器只能有一个,并且各触发器之间不能有矛盾;③触发器的执行部分只能用DML语句(如SELECT、INSERT、DELETE),不能使用DDL语句;④触发器中不能包含事务控制语句(如COMMIT、ROLLBACK、SAVEPOINT)。
4 结语
触发器技术是保证数据完整性、一致性的一种方法,在数据库开发中具有强大功能。在实际开发应用中,如能熟练地将触发器与数据库视图、函数、存储过程有机结合起来使用,将极大地提高计算机系统的运行效率,达到满意的效果。
参考文献:
[1] 杨永健,刘尚毅.ORACLE数据库管理、开发与实践[M].北京:人民邮电出版社,2012(12):141150.
[2] 顾云锋,杨素霞.Oracle数据库中存储过程开发研究[J].计算机与现代化,2011(10):138142.
[3] 刘维学,乔丽平.SQL Server数据库DML触发器的研究与应用[J].计算机技术与发展,2013(11):6673.
[4] 杨桂霞.存储过程及触发器在SQL Server数据库开发中的应用[J].计算机光盘软件与应用,2012(1):6667.
[5] 石道生,张士军,孙山.SQL Server数据库触发器与存储过程技术在自定义数据表中的应用[J].计算机与现代化,2004(3):22-27.
中文核心期刊论文发表《电子设计工程》(半月刊),中国科技核心期刊(科技论文统计源期刊),创刊于1993年,原名《国外电子元器件》,主要介绍具有较高学术水平的、电子领域相关的理论、技术、方法的专业性技术期刊。主要栏目有:计算机技术应用、网络与通信工程、测控与仪器仪表、图像与多媒体技术、开发与应用、数字处理技术、嵌入式技术、消费类电子、汽车电子、集成电路应用、新特器件应用、电源技术与应用、信息安全、工业自动化、电力电子等