触发器

触发器_4分词条

目录 [隐藏]

触发器 数据库领域名词

 

      

       触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从DBA_TRIGGERS,USER_TRIGGERS数据字典中查到。


       触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。


       触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。


  创建触发器的SQL语法:

  DELIMITER|
  CREATETRIGGER``.``
  <[BEFORE|AFTER]><[INSERT|UPDATE|DELETE]>
  ON
  FOREACHROW
  BEGIN
  --dosomething
  END|

       触 发 器 的 优 点:触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用CHECK约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的SELECT比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE或DELETE)允许采取多个不同的对策以响应同一个修改语句。


       比 较 触 发 器 与 约 束:约束和触发器在特殊情况下各有优势。触发器的主要好处在于它们可以包含使用Transact-SQL代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。实体完整性总应在最低级别上通过索引进行强制,这些索引或是PRIMARYKEY和UNIQUE约束的一部分,或是在约束之外独立创建的。假设功能可以满足应用程序的功能需求,域完整性应通过CHECK约束进行强制,而引用完整性(RI)则应通过FOREIGNKEY约束进行强制。在约束所支持的功能无法满足应用程序的功能要求时,触发器就极为有用。例如:除非REFERENCES子句定义了级联引用操作,否则FOREIGNKEY约束只能以与另一列中的值完全匹配的值来验证列值。

       CHECK约束只能根据逻辑表达式或同一表中的另一列来验证列值。如果应用程序要求根据另一个表中的列验证列值,则必须使用触发器。

       约束只能通过标准的系统错误信息传递错误信息。如果应用程序要求使用(或能从中获益)自定义信息和较为复杂的错误处理,则必须使用触发器。

       触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。

       触发器可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改。当更改外键且新值与主键不匹配时,此类触发器就可能发生作用。例如,可以在titleauthor.title_id上创建一个插入触发器,使它在新值与titles.title_id中的某个值不匹配时回滚一个插入。不过,通常使用FOREIGNKEY来达到这个目的。

       如果触发器表上存在约束,则在INSTEADOF触发器执行后但在AFTER触发器执行前检查这些约束。如果约束破坏,则回滚INSTEADOF触发器操作并且不执行AFTER触发器。

       触发器到底可不可以在视图上创建在SQLServer™联机丛书中,是没有说触发器不能在视图上创建的,并且在语法解释中表明:

       在CREATETRIGGER的ON之后可以是视图。然而,事实似乎并不是如此,很多专家也说触发器不能在视图上创建。不少人也专门作了测试,的确如此,不管是普通视图还是索引视图,都无法在上面创建触发器,真的是这样吗?请点击详细,但是无可厚非的是:当在临时表或系统表上创建触发器时会遭到拒绝。深刻理解FORCREATETRIGGER语句的FOR关键字之后可以跟INSERT、UPDATE、DELETE中的一个或多个,也就是说在其它情况下是不会触发触发器的,包括SELECT、TRUNCATE、WRITETEXT、UPDATETEXT。相关内容一个有趣的应用大家看到许多注册系统在注册后都不能更改用户名,但这多半是由应用程序决定的,如果直接打开数据库表进行更改,同样可以更改其用户名,在触发器中利用回滚就可以巧妙地实现无法更改用户名……详细内容触发器内部语句出错时……这种情况下,前面对数据更改操作将会无效。举个例子,在表中插入数据时触发触发器,而触发器内部此时发生了运行时错误,那么将返回一个错误值,并且拒绝刚才的数据插入。不能在触发器中使用的语句触发器中可以使用大多数T-SQL语句,但如下一些语句是不能在触发器中使用的。
  CREATE语句,如:CREATEDATABASE、CREATETABLE、CREATEINDEX等。
  ALTER语句,如:ALTERDATABASE、ALTERTABLE、ALTERINDEX等。
  DROP语句,如:DROPDATABASE、DROPTABLE、DROPINDEX等。
  DISK语句,如:DISKINIT、DISKRESIZE。
  LOAD语句,如:LOADDATABASE、LOADLOG。
  RESTORE语句,如:RESTOREDATABASE、RESTORELOG。
  RECONFIGURE
  TRUNCATETABLE语句在sybase的触发器中不可使用!


       慎用触发器触发器功能强大,轻松可靠地实现许多复杂的功能,为什么又要慎用呢。触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,大家可以通过关系、触发器、存储过程、应用程序等来实现数据操作……同时规则、约束、缺省值也是保证数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程序.

触发器 数字电路领域名词

 

       又称“双稳态多谐振荡器”。触发器(Flip Flop)是一种可以存储电路状态的电子元件。最简单的是由两个或非门,两个输入端和两个输出端组成的RS触发器(见图)。复杂一些的有带时钟(CLK)段和D(Data)端,在CLK端为高电平时跟随D端状态,而在CLK端变为低电平的瞬间锁存信号的D触发器。更常用的是两个简单D触发器级联而成的在时钟下跳沿所存信号的边缘D触发器,广泛应用于计数器、运算器、存储器等电子部件。

照 明 配 件:用于高强度气体放电灯(H.I.D)的启动,型号繁多.由于高强度气体放电灯启动时需要一个高电压来使气体电离进入等离子态,因而需要一个高压发生器做为启动器。这就是触发器早期的机械型触发器已经淘汰。现在绝大多数触发器都是使用可控硅或高压触发二极管的电子触发器,常用的型号有:OSRAM 的 CD-7 飞利浦的 SI51 SN58 爱伦的ALK400等

  在外加信号触发下能转换工作状态的电路。通常用触发器的输出端电压表明其工作状态。触发器分为两类。一类称为双稳态触发器,它有两个稳定的工作状态。在外加信号触发下电路可从一种稳定的工作状态转换到另一种稳定的工作状态。另一类称为单稳态触发器,它有一个稳定的工作状态和一个暂时稳定的工作状态。无外加信号触发时触发器处于稳定的工作状态,在受外加信号触发后触发器从稳定的工作状态转换到暂时稳定的工作状态,经过短暂时间后,自动返回到原来的稳定工作状态。

触发器触发器

  双稳态触发器  基本电路如图1的上半部。它由两个反相器直接耦合而成。反相器1由晶体管T1和电阻Rc1R11R12组成,反相器2由晶体管T2和电阻Rc2R21R22组成。反相器1的输出端Q即是反相器2的输入端,同样,反相器2的输出端悩也是反相器1的输入端,两级反相器是互相反馈的。这个电路具有两种稳定状态:一种稳态是T1管导通、T2管截止,Q端为低电位、悩为高电位;另一种稳态是T1管截止、T2管导通,Q端为高电位、悩端为低电位。加上电压 Ec和-Eb后电路即进入一种稳定状态。若不加触发信号,电路则永远处于这个稳定状态。
  欲使电路从一种稳态转换到另一种稳态,必须外加触发信号。图1的下半部分是两个引导触发信号给各个反相器的电路。它们分别由微分电路R1C1R2C2和隔离二极管D1、D2组成。
  当外加负触发脉冲作用于引导电路的“S”端时,通过微分电路R1C1使D1导通,b1点呈低电位。此时不论触发器原处何种状态T1管截止,Q点变为高电位,T2管导通,悩点变为低电位。这种稳态称为触发器的“置位”状态,“S”端称为“置位”端。反之,外加负触发脉冲作用于“R”端时,则使悩端为高电位,Q端为低电位。这种稳态为触发器的“复位”状态,“R”端称为“复位”端。具有置位、复位功能的触发器称为R-S触发器。
  双稳态触发器可用来构成各种计数器、分频器和寄存器等。
  射极耦合触发器  又称施密特触发器,其原理电路如图2。它也由两级反相器直接耦合而成。第一级反相器的输出端c1是第二级反相器的输入端。第一级反相器的输入端接输入触发电压ui,第二级反相器的输出端提供输出电压u0。两级反相器通过公共的发射极电阻Re耦合在一起,因而称射极耦合触发器。这种触发器也有两种稳定状态,一种稳态是T1管导通、T2管截止,输出u0为高电位;另一种稳态是T1管截止,T2管导通,u0为低电位。触发器的稳定状态决定于输入u电位的高低,因此这种触发器具有电位触发特性。当输入ui为低电位时,T1管截止,c1点电位升高,使T2管导通,输出u0也是低电位。当ui为高电位时,T1管导通,c1点电位下降,使T2管截止,u也是高电位。射极耦合触发器可用于波形的整形和鉴幅。

触发器触发器

  单稳态触发器  单稳态触发器也由两个反相器构成(图3a)。与图1 的双稳态触发器相比,由晶体管T2组成的反相器2完全相同,但由晶体管T1组成的反相器1中,用电容器C代替电阻器R11,且R12接向 Ec。另外,在T1管的b1点接有由D1R1C1组成的引导电路, ui即外加触发信号。触发器的状态电压由c1及c2点输出。

触发器触发器

  图3b的波形表明单稳态触发器的工作过程。在外加负触发脉冲u到来以前(0~t1期间),触发器处于稳定状态。由于b1点通过R12接向电压 Ec,T1导通,T2截止。c1点的电压uc1为低电位,c2点电压u为高电位,电容器C被充电。在t=t1瞬间,u到来,通过微分电路R1C1使D1导通,b1呈低电位,T1由导通变为截止,uc1上升为高电位;T2导通,uc2下降为低电位。这时,电容器C通过T2放电形成暂时稳定状态(t1t2期间),称为暂稳态。随着电容器C的放电,b1点电位上升,当t=t2时,b1点的电位又使T1管导通,uc1下降为低电位,T2管又截止,uc2电位上升。在t2t3期间,uc2因受Rc2C充电的影响而上升缓慢,形成恢复期。t3以后进入原来的稳定状态。单稳态触发器可用于脉冲整形和脉冲延时。

触发器触发器

  各种触发器均可由分立元件构成,也可由集成电路来实现。但随着集成电路技术的发展,集成触发器品种逐渐增加,性能优良,应用日益广泛。基本触发电路有R-S触发器,T触发器,D触发器,J-K触发器等。
  参考书目
 J. Millman and H. Taub, Pulse, Digital and Switching Waveforms, McGraw-Hill,New York,1965.

 

触发器 配图

 

 

触发器 相关连接

 
百度:http://www.baidu.com/s?wd=%B4%A5%B7%A2%C6%F7

附图

上传图片 

互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于www.hudong.com

被引用: 本词条已被如下媒体引用 我来补充
开放分类: 我来补充
基本物理概念
照明
物理学
电子工程
电子科技
电脑术语
自动化
计算机术语

讨论区

更多>>

编辑者

共9人协作

相关词条

DIRECTX
PB
示波器
触发器寄存器
数据库设计
sybase
视图
逻辑门电路
DB2数据库
cd4013
更多

所属任务

英译

Copyright © 2005-2009 hudong.com Ltd. All Rights Reserved. 互动在线 版权所有