- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ORACLE触发器在软件开发中应用论文
oracle触发器在软件开发中的应用
一.引言:
oracle触发器在软件开发中的应用,为了数据分析和制作报表的需要,用户在数据模型中加入了冗余数据,应使用触发器,以保证数据的完整性关键词: 、触发器、oracle。Oracle触发器
1.oracle触发器简介
触发器(Trigger)是数据库对象的一种,编码方式类似存储过程,与某张表(Table)相关联,当有DML语句对表进行操作时,可以引起触发器的执行,达到对插入记录一致性,正确性和规范性控制的目的。在当年C/S时代盛行的时候,由于客户端直接连接数据库,能保证数据库一致性的只有数据库本身,此时主键(Primary Key),外键(Foreign Key),约束(Constraint)和触发器成为必要的控制机制。而触发器的实现比较灵活,可编程性强,自然成为了最流行的控制机制。到了B/S时代,发展成4层架构,客户端不再能直接访问数据库,只有中间件才可以访问数据库。要控制数据库的一致性,既可以在中间件里控制,也可以在数据库端控制。很多的青睐Java的开发者,随之将数据库当成一个黑盒,把大多数的数据控制工作放在了Servlet中执行。这样做,不需要了解太多的数据库知识,也减少了数据库编程的复杂性,但同时增加了Servlet编程的工作量。从架构设计来看,中间件的功能是检查业务正确性和执行业务逻辑,如果把数据的一致性检查放到中间件去做,需要在所有涉及到数据写入的地方进行数据一致性检查。由于数据库访问相对于中间件来说是远程调用,要编写统一的数据一致性检查代码并非易事,一般采用在多个地方的增加类似的检查步骤。一旦一致性检查过程发生调整,势必导致多个地方的修改,不仅增加工作量,而且无法保证每个检查步骤的正确性。触发器的应用,应该放在关键的,多方发起的,高频访问的数据表上,过多使用触发器,会增加数据库负担,降低数据库性能。而放弃使用触发器,则会导致系统架构设计上的问题,影响系统的稳定性。
2.Oracle触发器功能
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。
功能:
1)允许/限制对表的修改
2)自动生成派生列,比如自增字段
3)强制数据一致性
4)提供审计和日志记录
5)防止无效的事务处理
6)启用复杂的业务逻辑
3.触发器的概念和类型
数据库触发器(database triggers)是响应插入、更新或删除等数据库事件而执行的过程。它定义了当一些数据库相关事件发生时应采取的动作。可用于管理复杂的完整性约束,或 监控对表的修改,或通知其它程序,表已发生修改。它的类型有:语句级触发器,以及行级触发器,前者可以在语句执行前或执行后被触发。后者在每个触发语句影 响的行触发一次。还有before和after触发的命令。在insert,update,和delete之前或之后执行,引用新旧值进行处理。如果需通 过触发器设定插入行中的某列值,则为了访问“新(new)”值,需使用一个触发器before insert,使用after insert则不行。Instead of 触发器命令,使用它告诉oracle应执行什么操作。以上四种大类合成14种小类(略)。各种触发器的执行顺序如下:
⑴ 如果有,最先执行语句级before触发器。
⑵ 每个insert,delete,update影响的行;
① 如果有,最先执行行级before;
② 执行行的delete或update;
③ 如果有,执行行级after触发器;
⑶ 如果有,执行语句级after触发器。
create trigger biufer_employees_department_id
命名习惯:
biufer(before insert update for each row)
employees 表名
department_id 列名
(2)、 触发语句
比如:
表或视图上的DML语句 DDL语句
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:
安全性。可以基于数据库的值使用户具有操作数据库的某种权利。
可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据。
可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%。
审计。可以跟踪用户对数据库的操作。
审计用户操作数据库的语句。
把用户对数据库的更新写入审计表。
实现复杂的数据完整性规则。
实现非标准的数据完整性检查和约束。触发器可产生比规则更为复杂的限制
您可能关注的文档
- Excel data manipulation and code for building titleunique web linksExcel数据处理和编码Web链接标题独特建筑.ppt
- Evidence Based PreTrial Release通过审前释放证据.ppt
- Experiment Instructions San Diego Supercomputer Center实验说明圣迭戈超级计算机中心.ppt
- Experiments With Explicit ForLoops in Genetic RMIT University实验用显式循环遗传坎培门高等技术学院.ppt
- Experiences with Client Based Speculative Remote Display基于客户端远程显示经验与思辨.ppt
- Expert 21 vocabulary emsteacher home词汇专家21 EMS老师家.ppt
- Expert 35Welcome to today’s Online Chat, we will begin 专家35welcome今天线上聊天,我们将开始.doc
- eXPERT Best practices Department of Information Technologies专家最佳实践信息技术部门.ppt
- Expert Choice 2000 The Decision Making Process2000专家选择决策过程.ppt
- Expert Evidence Back to Basics and Recent Hot Topics Guildhall 专家证据回到基础和最近热门话题,会馆.doc
文档评论(0)