触发器是数据库提供给程序员和数据分析员来保证数据完整性的一种机制,它是一种与数据表事件相关的特殊的存储过程。触发器的执行不是由程序调用,也不需要手工开启,而是由数据表上的事件来触发,当用户对一个数据表进行增、删、改 *** 作时就会激活它执行。
触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
触发器功能强大,可以轻松可靠地实现许多复杂的功能,但也不能过于依赖触发器,滥用触发器会造成关系数据库及应用程序维护困难,性能、效率低下等问题的产生,在实际问题中,要根据实际需要选择合适的解决方案。触发器是一种特殊的存储过程,在插入、删除、修改特定表中的数据时触发执行,拥有比数据库本身更强大的数据控制能力,其作用有以下四大方面。
1.数据安全数据安全主要是指对信息系统中的业务数据提供一种数据变更的审核机制,当其通过安全策略的审核后,允许用户变更相关数据,否则直接拒绝数据变更的请求。
安全原理:基于数据库的值使用户具有 *** 作数据库的某种权利。
((1)可以基于时间限制用户的 *** 作。例如,不允许下班后和节假日修改数据库数据。
(2)可以基于数据库中的数据限制用户的 *** 作。例如,不允许股票价格的升幅一次超过10%。
2.数据审计数据审计主要是指对数据服务器上的记录进行变更时的一种用户权限的即时审查与用户行为的全方位记录,以便事后对数据变更过程的追溯,保证数据变更的合法性。
审计原理:跟踪用户对数据库的 *** 作。
((1)审计用户 *** 作数据库的语句。
(2)把用户对数据库的更新写入审计表。
3.数据约束数据约束是指对用户的 *** 作行为将导致业务数据与实际情况相悖的行为进行检查约束,而不让其发生,从而保证数据的完整性与一致性。
约束原理:对用户 *** 作与实际逻辑的约束检查。
((1)实现数据完整性检查和约束。例如,回退任何企图买进超过自己资金的货物。
(2)提供可变的缺省值。
4.数据连环更新数据连环更新是指当对数据进行更新 *** 作时,将所有与此数据相关联的数据作联合的更新 *** 作,以保证数据的完整性与一致性。
连环更新原理:对关联数据作联合更新 *** 作。
((1)修改或删除时级联修改或删除其他表中与之匹配的行。
(2)修改或删除时把其他表中与之匹配的行设成NULL值。
(3)修改或删除时把其他表中与之匹配的行级联设成缺省值。
表:里面存储的都是真实的数据视图:就是一个表或者多个表的一个映射,一般只做查询使用。比如你想要的数据存在两个表里,但你查询时不想每次都写关联,那么你创建一个视图,以后只查询这个视图就可以(查询时视图与查询表语法一样)。
触发器:做数据库 *** 作的时候,还希望相关的数据同步 *** 作就用触发器,比如想要向A表插入数据的时候,同时向B表插入,这样写过触发器每次向A表插入数据之后就会自动向B表插入。
存储过程:这个一般是沉淀数据使用的,当你需要查询的数据不能用一个sql语句查出或者sql语句查询速度特别慢,想要提高效率,就会用到存储过程,先把需要的数据沉淀到结果表里然后直接查询结果表就能提高效率。
存储过程相当于写了一个自定义的函数,让这个函数做一些动作。
触发器有点像
高级语言
的Button_Clicked一样,在数据改变的时候做动作。
触发器是在数据变化的时候,自动执行的。
存储过程是手动执行的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)