• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      觸發(fā)器在Oracle數(shù)據(jù)庫中的應用研究

      2015-06-24 07:06:18彭嬌
      軟件導刊 2015年6期
      關鍵詞:觸發(fā)器

      摘要:Oracle數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),而觸發(fā)器作為一種特殊類型的存儲過程,在維護數(shù)據(jù)庫安全性、完整性等方面有著重要作用。以SYSTEM模式中的emp和dept數(shù)據(jù)表為例,闡述了觸發(fā)器的概念及具體應用,以及其在數(shù)據(jù)庫開發(fā)中強大的功能和特點。

      關鍵詞:Oracle;觸發(fā)器;SYSTEM模式;數(shù)據(jù)庫應用

      DOIDOI:10.11907/rjdk.151136

      中圖分類號:TP392

      文獻標識碼:A 文章編號:16727800(2015)006015102

      基金項目基金項目:廣東科技學院院級重點項目(GKY-2013KYLX-005)

      作者簡介作者簡介:彭嬌(1982-),女,河北石家莊人,碩士,廣東科技學院計算機系講師,研究方向為管理科學與工程。

      0 引言

      觸發(fā)器在Oracle數(shù)據(jù)庫開發(fā)中作用強大,可以方便地基于一個表的修改,自動更新其它相關表的記錄,以保證數(shù)據(jù)的完整性和一致性。觸發(fā)器是建立在Oracle數(shù)據(jù)表上的一種特殊的存儲過程,它定義了一些與數(shù)據(jù)庫相關事件(INSERT、UPDATE、CREATE等)發(fā)生時應執(zhí)行的“功能代碼塊”,通常用于管理復雜的完整性約束或監(jiān)控對表的修改,或通知其它程序,甚至可以實現(xiàn)對數(shù)據(jù)的審計功能。與一般存儲過程不同,觸發(fā)器不能直接調(diào)用,而是由事件啟動運行的,當事件發(fā)生或出現(xiàn)指定操作時,觸發(fā)器會自動激活,進行設定的數(shù)據(jù)處理。

      1 觸發(fā)器組成及分類

      觸發(fā)器由觸發(fā)事件、觸發(fā)時機、觸發(fā)操作、觸發(fā)對象及觸發(fā)頻率等幾部分組成[1]。

      觸發(fā)事件,是引起觸發(fā)器被觸發(fā)的事件。例如,執(zhí)行DML語句、DDL語句、數(shù)據(jù)庫系統(tǒng)事件(如系統(tǒng)啟動或退出、產(chǎn)生異常錯誤等)和用戶事件(如登錄或退出數(shù)據(jù)庫操作),這些操作都可以引起觸發(fā)器的運行。

      觸發(fā)時機:表示在觸發(fā)事件發(fā)生之前還是之后執(zhí)行觸發(fā)。關鍵字為BEFORE、AFTER或INSTEAD OF。BEFORE表示在執(zhí)行DML等操作之前觸發(fā);AFTER表示在DML等操作之后發(fā)生;INSTEAD OF表示觸發(fā)器是替代觸發(fā)器。

      觸發(fā)操作:觸發(fā)器被觸發(fā)后執(zhí)行的“程序代碼塊”。

      觸發(fā)對象:包括表、視圖、模式、數(shù)據(jù)庫。只有在這些對象上發(fā)生了符合觸發(fā)條件的觸發(fā)事件,才會執(zhí)行觸發(fā)操作。

      觸發(fā)頻率:指觸發(fā)器內(nèi)定義的動作被執(zhí)行的次數(shù),即語句級觸發(fā)器或行級觸發(fā)器。

      根據(jù)觸發(fā)事件和觸發(fā)器的執(zhí)行情況,可以將Oracle所支持的觸發(fā)器分為5種類型:語句級觸發(fā)器、行級觸發(fā)器、替換觸發(fā)器、用戶事件觸發(fā)器和系統(tǒng)事件觸發(fā)器。

      語句級觸發(fā)器:針對一條DML語句而引起的觸發(fā)器執(zhí)行,無論該語句影響了多少行數(shù)據(jù),觸發(fā)器只會執(zhí)行一次。

      行級觸發(fā)器:相對于語句級觸發(fā)器而言,行級觸發(fā)器會針對DML操作所影響的每一行數(shù)據(jù)執(zhí)行一次觸發(fā)器。

      替換觸發(fā)器:替換觸發(fā)器定義在視圖上,而不是數(shù)據(jù)表上。視圖是由多個基表連接組成的邏輯結構,一般不允許進行DML操作。當編寫替換觸發(fā)器后,對視圖的操作實際上就變成了對構成視圖的各個基表的操作。

      用戶和系統(tǒng)事件觸發(fā)器:因DDL操作或用戶登錄、退出或系統(tǒng)事件等操作而引起運行的一種觸發(fā)器。

      2 觸發(fā)器編寫應用實例

      以Oracle數(shù)據(jù)庫中SYSTEM模式下的emp和dept兩張表為例。emp為員工信息表,dept為部門信息表,具體結構如表1、表2所示。

      以emp和dept為基表,滿足以下要求:①創(chuàng)建新表dept_log來監(jiān)控dept表的操作信息及操作日期;②以emp和dept為基表,創(chuàng)建一個檢索員工信息的視圖,對視圖進行insert操作。以上兩點要求,實際上是在emp和dept表中創(chuàng)建行級觸發(fā)器和替換觸發(fā)器的問題。

      3 觸發(fā)器編寫注意事項

      在Oracle數(shù)據(jù)庫開發(fā)中,觸發(fā)器編寫需注意以下幾點:①觸發(fā)器的定義不允許帶有參數(shù);②一個表上最多有12個觸發(fā)器。但同一時間、同一事件的觸發(fā)器只能有一個,并且各觸發(fā)器之間不能有矛盾;③觸發(fā)器的執(zhí)行部分只能用DML語句(如SELECT、INSERT、DELETE),不能使用DDL語句;④觸發(fā)器中不能包含事務控制語句(如COMMIT、ROLLBACK、SAVEPOINT)。

      4 結語

      觸發(fā)器技術是保證數(shù)據(jù)完整性、一致性的一種方法,在數(shù)據(jù)庫開發(fā)中具有強大功能。在實際開發(fā)應用中,如能熟練地將觸發(fā)器與數(shù)據(jù)庫視圖、函數(shù)、存儲過程有機結合起來使用,將極大地提高計算機系統(tǒng)的運行效率,達到滿意的效果。

      參考文獻:

      [1] 楊永健,劉尚毅.ORACLE數(shù)據(jù)庫管理、開發(fā)與實踐[M].北京:人民郵電出版社,2012(12):141150.

      [2] 顧云鋒,楊素霞.Oracle數(shù)據(jù)庫中存儲過程開發(fā)研究[J].計算機與現(xiàn)代化,2011(10):138142.

      [3] 劉維學,喬麗平.SQL Server數(shù)據(jù)庫DML觸發(fā)器的研究與應用[J].計算機技術與發(fā)展,2013(11):6673.

      [4] 楊桂霞.存儲過程及觸發(fā)器在SQL Server數(shù)據(jù)庫開發(fā)中的應用[J].計算機光盤軟件與應用,2012(1):6667.

      [5] 石道生,張士軍,孫山.SQL Server數(shù)據(jù)庫觸發(fā)器與存儲過程技術在自定義數(shù)據(jù)表中的應用[J].計算機與現(xiàn)代化,2004(3):22-27.

      [6] 程凡,張維勇,王建新. 存儲過程和觸發(fā)器在銀行報表管理系統(tǒng)中的應用[J].合肥工業(yè)大學學報,2004(3):125128.

      責任編輯(責任編輯:杜能鋼)

      猜你喜歡
      觸發(fā)器
      主從JK觸發(fā)器邏輯功能分析
      電子世界(2017年22期)2017-12-02 03:03:45
      使用觸發(fā)器,強化安全性
      幾種常見觸發(fā)器工作方式的討論
      科技傳播(2012年12期)2012-07-05 06:06:22
      對觸發(fā)器邏輯功能轉換的分析
      觸發(fā)器邏輯功能轉換的兩種方法
      巧妙應用SQL Server觸發(fā)器
      石城县| 准格尔旗| 东源县| 宿松县| 阿瓦提县| 沙雅县| 海口市| 留坝县| 谢通门县| 新沂市| 南华县| 连云港市| 全州县| 宜良县| 浙江省| 和顺县| 苍山县| 南靖县| 平远县| 太湖县| 福鼎市| 奇台县| 高尔夫| 左云县| 夏邑县| 松阳县| 思茅市| 清涧县| 昌吉市| 华池县| 乐都县| 贺兰县| 望奎县| 固阳县| 应用必备| 汉沽区| 阿瓦提县| 桐庐县| 台东县| 广东省| 阿合奇县|