觸發(fā)器
觸發(fā)器功能強(qiáng)大,輕松可靠地實(shí)現(xiàn)許多復(fù)雜的功能,為什么又要慎用呢。觸發(fā)器本身沒(méi)有過(guò)錯(cuò),但由于我們的濫用會(huì)造成數(shù)據(jù)庫(kù)及應(yīng)用程序的維護(hù)困難。在數(shù)據(jù)庫(kù)操作中,我們可以通過(guò)關(guān)系、觸發(fā)器、存儲(chǔ)過(guò)程、應(yīng)用程序等來(lái)實(shí)現(xiàn)數(shù)據(jù)操作…… 同時(shí)規(guī)則、約束、缺省值也是保證數(shù)據(jù)完整性的重要保障。如果我們對(duì)觸發(fā)器過(guò)分的依賴(lài),勢(shì)必影響數(shù)據(jù)庫(kù)的結(jié)構(gòu),同時(shí)增加了維護(hù)的復(fù)雜程度。
觸發(fā)器(trigger)是SQL server 提供給程序員和數(shù)據(jù)分析員來(lái)保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過(guò)程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來(lái)觸發(fā),比如當(dāng)對(duì)一個(gè)表進(jìn)行操作( insert,delete, update)時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強(qiáng)數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等。 觸發(fā)器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數(shù)據(jù)字典中查到。SQL3的觸發(fā)器是一個(gè)能由系統(tǒng)自動(dòng)執(zhí)行對(duì)數(shù)據(jù)庫(kù)修改的語(yǔ)句。
觸發(fā)器可以查詢(xún)其他表,而且可以包含復(fù)雜的SQL語(yǔ)句。它們主要用于強(qiáng)制服從復(fù)雜的業(yè)務(wù)規(guī)則或要求。例如:您可以根據(jù)客戶(hù)當(dāng)前的帳戶(hù)狀態(tài),控制是否允許插入新訂單。
觸發(fā)器也可用于強(qiáng)制引用完整性,以便在多個(gè)表中添加、更新或刪除行時(shí),保留在這些表之間所定義的關(guān)系。然而,強(qiáng)制引用完整性的最好方法是在相關(guān)表中定義主鍵和外鍵約束。如果使用數(shù)據(jù)庫(kù)關(guān)系圖,則可以在表之間創(chuàng)建關(guān)系以自動(dòng)創(chuàng)建外鍵約束。
觸發(fā)器與存儲(chǔ)過(guò)程的唯一區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語(yǔ)句調(diào)用,而是在用戶(hù)執(zhí)行Transact-SQL語(yǔ)句時(shí)自動(dòng)觸發(fā)執(zhí)行。
DML觸發(fā)器
當(dāng)數(shù)據(jù)庫(kù)中表中的數(shù)據(jù)發(fā)生變化時(shí),包括insert,update,delete任意操作,如果我們對(duì)該表寫(xiě)了對(duì)應(yīng)的DML觸發(fā)器,那么該觸發(fā)器自動(dòng)執(zhí)行。DML觸發(fā)器的主要作用在于強(qiáng)制執(zhí)行業(yè) 務(wù)規(guī)則,以及擴(kuò)展Sql Server約束,默認(rèn)值等。因?yàn)槲覀冎兰s束只能約束同一個(gè)表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意Sql命令。
DDL觸發(fā)器
它是Sql Server2005新增的觸發(fā)器,主要用于審核與規(guī)范對(duì)數(shù)據(jù)庫(kù)中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變化時(shí)執(zhí)行,我們主要用它來(lái)記錄數(shù)據(jù)庫(kù)的修改過(guò)程,以及限制程序員對(duì)數(shù)據(jù)庫(kù)的修改,比如不允許刪除某些指定表等。
登錄觸發(fā)器
登錄觸發(fā)器將為響應(yīng) LOGIN 事件而激發(fā)存儲(chǔ)過(guò)程。與 SQL Server 實(shí)例建立用戶(hù)會(huì)話時(shí)將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗(yàn)證階段完成之后且用戶(hù)會(huì)話實(shí)際建立之前激發(fā)。因此,來(lái)自觸發(fā)器內(nèi)部且通常將到達(dá)用戶(hù)的所有消息(例如錯(cuò)誤消息和來(lái)自 PRINT 語(yǔ)句的消息)會(huì)傳送到 SQL Server 錯(cuò)誤日志。如果身份驗(yàn)證失敗,將不激發(fā)登錄觸發(fā)器。
鎮(zhèn)流器
20世紀(jì)80年代后期,美國(guó)將環(huán)型電感鎮(zhèn)流器應(yīng)用在緊湊型節(jié)能熒光燈上,1988年Midwest Toriod公司開(kāi)始批量生產(chǎn)。我國(guó)相繼于90年代初開(kāi)始生產(chǎn)。
鎮(zhèn)流器(ballast resistor)是日光燈上起限流作用和產(chǎn)生瞬間高壓的設(shè)備,它是在硅鋼制作的鐵芯上纏漆包線制作而成,這樣的帶鐵芯的線圈,在瞬間開(kāi)/關(guān)上電時(shí),就會(huì)自感產(chǎn)生高壓,加在日光燈管的兩端的電極(燈絲)上。這個(gè)動(dòng)作是交替進(jìn)行的,當(dāng)啟輝器(跳泡)閉合時(shí),燈管的燈絲通過(guò)鎮(zhèn)流器限流導(dǎo)通發(fā)熱;當(dāng)啟輝器開(kāi)路時(shí),鎮(zhèn)流器就會(huì)自感產(chǎn)生高壓加在燈管的兩端燈絲上,燈絲發(fā)射電子轟擊管壁的螢光粉發(fā)光,啟輝器反復(fù)幾次通斷,就會(huì)反復(fù)幾次這樣的動(dòng)作,從而打通燈管。當(dāng)燈管正常發(fā)光時(shí),內(nèi)阻變小,啟輝器就始終保持開(kāi)路狀態(tài),這樣電流就穩(wěn)定的通過(guò)燈管、鎮(zhèn)流器工作了,使燈管正常發(fā)光。由于鎮(zhèn)流器在日光燈工作時(shí),始終有電流通過(guò),所以容易產(chǎn)生振動(dòng),并且會(huì)發(fā)熱,所以有鎮(zhèn)流器的日光燈,特別是鎮(zhèn)流器質(zhì)量不好時(shí),會(huì)產(chǎn)生很大的聲音,用的時(shí)間長(zhǎng)了,還容易燒毀。鎮(zhèn)流器分電子鎮(zhèn)流器和電感鎮(zhèn)流器。
電感鎮(zhèn)流器
當(dāng)開(kāi)關(guān)閉合電路中施加220V 50HZ的交流電源時(shí),電流流過(guò)鎮(zhèn)流器,燈管燈絲啟輝器給燈絲加熱(啟輝器開(kāi)始時(shí)是斷開(kāi)的,由于施加了一個(gè)大于190V以上的交流電壓,使得啟輝器內(nèi)的跳泡內(nèi)的氣體弧光放電,使得雙金屬片加熱變形,兩個(gè)電極靠在一起,形成通路給燈絲加熱),當(dāng)啟動(dòng)器的兩個(gè)電極靠在一起,由于沒(méi)有弧光放電,雙金屬片冷卻,兩極分開(kāi),由于電感鎮(zhèn)流器呈感性,當(dāng)電路突然中斷時(shí),在燈兩端會(huì)產(chǎn)生持續(xù)時(shí)間約1ms的600V-1500V的脈沖電壓,其確切的電壓值取決于燈的類(lèi)型,在放電的情況下,燈的兩端電壓立即下降,此時(shí)鎮(zhèn)流器一方面對(duì)燈電流進(jìn)行限制作用,另一方面使電源電壓和燈的工作電流之間產(chǎn)生55。到65。的相位差,從而維持燈的二次啟動(dòng)電壓,使燈能更穩(wěn)定的工作。
電感鎮(zhèn)流由于結(jié)構(gòu)簡(jiǎn)單,作為第一種熒光燈配合工作的鎮(zhèn)流器,它的市場(chǎng)占有率還比較大,由于它的功率因數(shù)低,低電壓?jiǎn)?dòng)性能差,耗能笨重,頻閃等諸多缺點(diǎn),它的市場(chǎng)慢慢地被電子鎮(zhèn)流器所取代,電感鎮(zhèn)流器能量損耗:40W(燈管功率)+10W(電感鎮(zhèn)流器自身發(fā)熱損耗)等于整套燈具總耗電為50W。
電子鎮(zhèn)流器
電子鎮(zhèn)流器是一個(gè)將工頻交流電源轉(zhuǎn)換成高頻交流電源的變換器,其基本工作原理是:
工頻電源經(jīng)過(guò)射頻干擾(RFI)濾波器,全波整流和無(wú)源(或有源)功率因素校正器(PPFC或APFC)后,變?yōu)橹绷麟娫础Mㄟ^(guò)DC/AC變換器,輸出20K-100KHZ的高頻交流電源,加到與燈連接的LC串聯(lián)諧振電路加熱燈絲,但使燈管“放電”變成“導(dǎo)通”狀態(tài),再進(jìn)入發(fā)光狀態(tài),此時(shí)高頻電感起限制電流增大的作用,保證燈管獲得正常工作所需的燈電壓和燈電流,為了提高可靠性,常增設(shè)各種保護(hù)電路,如異常保護(hù),浪涌電壓和電流保護(hù),溫度保護(hù)等等。
觸發(fā)器和鎮(zhèn)流器的區(qū)別
鎮(zhèn)流器本身不是用來(lái)產(chǎn)生高壓的,因?yàn)榭紤]到壽命問(wèn)題,把電子觸發(fā)器里的線圈放到了鎮(zhèn)流器里去了,一來(lái)觸發(fā)器壽命長(zhǎng)了,二來(lái)又節(jié)省了成本。再則不能光產(chǎn)生高壓就好了,要是一直是高壓那燈泡不是打壞了,幾千伏的高壓一直打燈泡能受得了嗎?所以電子觸發(fā)器就是要在燈泡點(diǎn)亮后停止產(chǎn)生高壓,燈泡熄滅后再產(chǎn)生高壓。
電感鎮(zhèn)流器就要配觸發(fā)器和補(bǔ)償電容來(lái)使用,觸發(fā)器的作用是:通電瞬間激活燈的高壓氣體,點(diǎn)亮燈,然后分離。如果是電子鎮(zhèn)流器就不需要配觸發(fā)器。