在同一个数据集合中,不同的选择条件对应了不同的输出结果,数据库就是这样一种按数据结构来组织、存储和管理数据的仓库。程序或用户可以通过它来进行数据的访问与修改,它是数据存储的灵魂。
数据管理经历了人工管理、文件系统到数据库系统3个阶段。数据库是具有逻辑关系和确定意义的数据结合,它能克服传统文件组织所产生的一系列问题,数据冗余小,由于关系型数据库管理系统对于信息查询具有很大的灵活性,并且设计简单,所以已经被广泛使用在了实际的系统开发中。
对于实际的应用而言,基本的数据库操作根本无法满足实际的需求,随着数据表的增多、数据量的增大,数据库的效率以及安全性问题就会变得日益突出,数据库中引入了触发器、游标、索引等内容来满足这些需求
什么是触发器
触发器是一种特殊类型的存储过程,它由事件触发,而不是程序调用或手工启动。当数据库有特殊的操作时,对这些操作由数据库中的事件来触发,自动完成这些SQL语句。使用触发器可以用来保证数据的有效性和完整性,完成比约束更复杂的数据约束。
根据SQL语句的不同,触发器可以分为两类:DML触发器和DLL触发器。
DML触发器是当前数据库服务器发生数据操作语言事件时执行的存储过程,有After和Instead of两种触发器。After触发器被激活出发是在记录改变之后进行的一种触发器。Instead of触发器是在记录变更之前,去执行触发器本身所定义的操作,而不是执行原来SQL语句里的操作。DLL触发器是在响应数据定义语言事件时执行的存储过程。
触发器的主要作用表现在以下几个方面:
(1)增加安全性
(2)利用触发器记录所进行的修改以及相关信息,跟踪用户对数据库的操作,实现审计
(3)维护那些通过创建表时的声明约束不可能实现的赋值的完整性约束以及对数据库中的特定事件进行监控与响应
(4)实现复杂的非标准的数据库相关完整性规则、同步实时地赋值表中的数据
(5)触发器是自动的,它们在对表的数据做了任何修改之后就会被激活。例如,可以自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。以某企业财务管理为例,如果企业的资金链出现短缺,并且达到某种程度时,则发送警告信息。
下面是一个触发器的例子,该触发器的功能是在每周末进行数据表更新,如果当前用户没有访问WEEKEND_UPDATE_OK表的权限,需要重新赋予权限。
CREATE OR REPLA