国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式數(shù)據(jù)庫(kù)中觸發(fā)器的實(shí)現(xiàn)方法

      文檔序號(hào):6460806閱讀:200來(lái)源:國(guó)知局
      專利名稱:一種嵌入式數(shù)據(jù)庫(kù)中觸發(fā)器的實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種在嵌入式數(shù)據(jù)庫(kù)中觸發(fā)器功能實(shí)現(xiàn)的方法,具體涉及 一種具有功能強(qiáng)大的通知消息的觸發(fā)器實(shí)現(xiàn)方法。
      背景技術(shù)
      在嵌入式數(shù)據(jù)庫(kù)中,由于系統(tǒng)的業(yè)務(wù)規(guī)則的特殊性和多樣性,這就導(dǎo) 致業(yè)務(wù)數(shù)據(jù)之間關(guān)系的復(fù)雜性,很難用現(xiàn)有的約束規(guī)則(如值域約束、 外鍵、表互斥等)來(lái)完全表示這種復(fù)雜的關(guān)系。為了實(shí)現(xiàn)這種復(fù)雜的約束 關(guān)系就必須在配置窗口實(shí)現(xiàn)這種約束規(guī)則,由于配置窗口與數(shù)據(jù)庫(kù)數(shù)據(jù)區(qū) 的隔離必然涉及到查表動(dòng)作,這樣必然會(huì)相當(dāng)復(fù)雜,而且效率也不高。無(wú)線通信系統(tǒng)中對(duì)數(shù)據(jù)庫(kù)操作是隨機(jī)、并發(fā)的,這樣某個(gè)上層應(yīng)用在 操作數(shù)據(jù)庫(kù)后,導(dǎo)致數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化,另一個(gè)可能還在保持在原 來(lái)的數(shù)據(jù)下工作,要保持這種數(shù)據(jù)的一致性, 一種方法是上層應(yīng)用的相互 通知,另一種是應(yīng)用定時(shí)查詢數(shù)據(jù)庫(kù),維護(hù)數(shù)據(jù)的一致性。這樣會(huì)增加應(yīng) 用之間很多的不必要交互過(guò)程,增加了應(yīng)用模塊的耦合度。數(shù)據(jù)庫(kù)中觸發(fā)器是一類特殊的存儲(chǔ)過(guò)程,被定義為在對(duì)表或視圖發(fā)UPDATE、 INSERT或DELET語(yǔ)句時(shí)自動(dòng)執(zhí)行特殊的業(yè)務(wù)規(guī)則。嵌入式數(shù) 據(jù)庫(kù)中實(shí)現(xiàn)觸發(fā)器的功能可以對(duì)記錄或字段有特殊約束規(guī)則要求的數(shù)據(jù)檢 查,使數(shù)據(jù)庫(kù)中記錄的數(shù)據(jù)是復(fù)合業(yè)務(wù)規(guī)則的"合法"數(shù)據(jù)。同時(shí)一種通 知消息的觸發(fā)器可以在數(shù)據(jù)庫(kù)中的數(shù)據(jù)有任何變化時(shí)可以及時(shí)通知相關(guān)應(yīng) 用,保證業(yè)務(wù)的運(yùn)行和數(shù)據(jù)的一致性,提高系統(tǒng)處理效率。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種嵌入式數(shù)據(jù)庫(kù)中觸發(fā)器的可靠實(shí)現(xiàn)方法, 對(duì)其現(xiàn)有數(shù)據(jù)庫(kù)中的觸發(fā)器功能進(jìn)行延伸,以形成一種具有功能強(qiáng)大的通 知消息的觸發(fā)器。為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案 本發(fā)明的方法包括以下處理步驟A、 向數(shù)據(jù)庫(kù)注冊(cè)通知消息的觸發(fā)器;B、 當(dāng)檢測(cè)到數(shù)據(jù)庫(kù)有修改操作時(shí),向所述應(yīng)用模塊發(fā)送含有數(shù)據(jù)庫(kù)變 化狀態(tài)的通知消息。其中,所述步驟A還包括以下步驟數(shù)據(jù)庫(kù)校驗(yàn)應(yīng)用模塊注冊(cè)的觸發(fā) 器的正確性,并在校驗(yàn)通過(guò)后,將觸發(fā)器的注冊(cè)內(nèi)容插入到內(nèi)存中。其中,所述方法通過(guò)以下步驟進(jìn)行觸發(fā)器正確性的校驗(yàn)通過(guò)對(duì)觸發(fā)器進(jìn)行約束規(guī)則檢查,以及對(duì)觸發(fā)器注冊(cè)內(nèi)容中的取值進(jìn) 行合法性檢驗(yàn)。其中,所述內(nèi)存包括觸發(fā)器注冊(cè)表。其中,所述步驟B包括以下步驟Bl、應(yīng)用模塊對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改操作;B2、數(shù)據(jù)庫(kù)判斷是否有來(lái)自所述應(yīng)用模塊的修改操作指令;如果是, 則執(zhí)行B3;B3、遍歷觸發(fā)器注冊(cè)表,判斷是否存在所述應(yīng)用模塊注冊(cè)的通知消息 的觸發(fā)器;如果是,則步驟B4;B4、數(shù)據(jù)庫(kù)對(duì)修改操作的數(shù)據(jù)進(jìn)行約束檢查;B5、數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)修改操作;B6、執(zhí)行觸發(fā)器,向所述應(yīng)用模塊發(fā)送通知消息;B7、所述應(yīng)用模塊根據(jù)所述通知消息的內(nèi)容,進(jìn)行自我更新操作。其中,所述步驟B4與步驟B3之間還包括以下步驟當(dāng)判斷存在所述應(yīng)用模塊注冊(cè)的通知消息的觸發(fā)器時(shí),數(shù)據(jù)庫(kù)向所述 應(yīng)用模塊發(fā)送關(guān)于確認(rèn)修改操作是否繼續(xù)執(zhí)行的通知消息。其中,所述應(yīng)用模塊根據(jù)接收到的通知消息,對(duì)修改操作是否繼續(xù)執(zhí) 行進(jìn)行確認(rèn),若所述應(yīng)用模塊停止修改操作,則發(fā)送中斷制止數(shù)據(jù)庫(kù)進(jìn)行 修改操作。其中,所述步驟B6中,數(shù)據(jù)庫(kù)向所述應(yīng)用模塊發(fā)送的是關(guān)于數(shù)據(jù)庫(kù) 修改狀態(tài)的通知消息。其中,所述通知消息中包含數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的內(nèi)容或趨勢(shì)。 本發(fā)明通過(guò)向應(yīng)用模塊發(fā)送通知消息,來(lái)實(shí)時(shí)保證業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)庫(kù) 中數(shù)據(jù)的一致性,使用本發(fā)明的方法可以實(shí)現(xiàn)嵌入式數(shù)據(jù)庫(kù)中除索引約束、 值約束、外鍵約束等復(fù)雜的業(yè)務(wù)規(guī)則約束關(guān)系,保證數(shù)據(jù)庫(kù)中數(shù)據(jù)是符合 業(yè)務(wù)要求的合法數(shù)據(jù);本發(fā)明利用通知消息的觸發(fā)器實(shí)時(shí)地保證了業(yè)務(wù)數(shù) 據(jù)和數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性,保證了系統(tǒng)的正常運(yùn)行,提高了系統(tǒng)的運(yùn)行 效率。


      圖1為本發(fā)明方法的流程圖。
      具體實(shí)施方式
      以下結(jié)合附圖詳細(xì)描述本發(fā)明的技術(shù)方案。如圖l所示,本發(fā)明嵌入式教:據(jù)庫(kù)中觸發(fā)器的可靠實(shí)現(xiàn)方法的核心思 想是如果應(yīng)用模塊(即嵌入式操作系統(tǒng)中完成某一業(yè)務(wù)的功能模塊)需 要監(jiān)控?cái)?shù)據(jù)庫(kù)的變化,則可以向數(shù)據(jù)庫(kù)注冊(cè)具有通知消息的觸發(fā)器, 一旦 數(shù)據(jù)庫(kù)有修改時(shí),該觸發(fā)器可以向應(yīng)用模塊發(fā)送記錄有修改信息的通知消 息,那么應(yīng)用模塊可以隨時(shí)保持和數(shù)據(jù)庫(kù)的一致性。其方法主要包括以下 步驟步驟l、應(yīng)用模塊向數(shù)據(jù)庫(kù)注冊(cè)觸發(fā)器。數(shù)據(jù)庫(kù)中的數(shù)據(jù)一般都有多個(gè)應(yīng)用模塊進(jìn)行讀寫或修改操作,各個(gè)應(yīng) 用模塊的約束規(guī)則也不盡相同, 一般的約束規(guī)則函數(shù)由數(shù)據(jù)庫(kù)設(shè)計(jì)人員先 搜集業(yè)務(wù)規(guī)則,然后在函數(shù)中根據(jù)不同的業(yè)務(wù)實(shí)現(xiàn)約束。通知消息的觸發(fā)器的注冊(cè)內(nèi)容包括如下信息 應(yīng)用標(biāo)識(shí)號(hào)表示是哪個(gè)應(yīng)用注冊(cè)的觸發(fā)器。 表表句柄或表名或表序號(hào)等。觸發(fā)時(shí)間before (數(shù)據(jù)更改前)、after (數(shù)據(jù)更改后)。 觸發(fā)級(jí)別記錄級(jí)還是字段級(jí)。觸發(fā)事件insert (插入)、update (更新)、delete (刪除)等,記錄 級(jí)時(shí)三種方法都有,字段級(jí)時(shí)一般僅限update。 字段描述 一般用字段名。 步驟2、數(shù)據(jù)庫(kù)檢測(cè)觸發(fā)器的正確性。應(yīng)用模塊注冊(cè)的觸發(fā)器首先必須滿足的條件是符合索引約束、值約 束、外鍵約束等一般的約束規(guī)則。對(duì)于應(yīng)用模塊定制的特殊規(guī)則,以函數(shù) 的方式實(shí)現(xiàn), 一般的通過(guò)代碼走查或在實(shí)際應(yīng)用中去校驗(yàn)。而對(duì)于通知消 息的觸發(fā)器,可以對(duì)其中的時(shí)間、方法、類型這些取特定的值進(jìn)行合法性 校驗(yàn),并對(duì)表、索引、字段等和數(shù)據(jù)庫(kù)中的數(shù)據(jù)比較判斷其是否存在,同 時(shí)還要防止完全一樣的注冊(cè)內(nèi)容。在注冊(cè)內(nèi)容通過(guò)校驗(yàn)后,將注冊(cè)內(nèi)容保 存到內(nèi)存中。為了便于查找,可以將應(yīng)用模塊注冊(cè)內(nèi)容保存到相應(yīng)的數(shù)據(jù) 結(jié)構(gòu)中,比如保存到觸發(fā)器注冊(cè)表中。步驟3、應(yīng)用模塊對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改操作,其修改操作包括記錄級(jí)的 插入、刪除、更新:捧作,以及字段值的更新修改。步驟4、判斷是否有來(lái)自所述應(yīng)用模塊的修改操作指令;如果是,則執(zhí) 行步驟5;如果否,則返回步驟3。步驟5、遍歷觸發(fā)器注冊(cè)表,判斷是否存在該應(yīng)用模塊注冊(cè)的通知消息的觸發(fā)器;如果是,則步驟6;如果否,則返回步驟3繼續(xù)在觸發(fā)器注冊(cè)表 尋找匹配的觸發(fā)器,如果始終沒有找到匹配的觸發(fā)器,則按常規(guī)流程進(jìn)行 數(shù)據(jù)庫(kù)的修改操作。步驟6、數(shù)據(jù)庫(kù)向應(yīng)用模塊發(fā)送關(guān)于確認(rèn)修改操作是否繼續(xù)執(zhí)行的通知 消息。在對(duì)某個(gè)修改操作執(zhí)行該步驟時(shí),可以先向應(yīng)用模塊發(fā)送關(guān)于確認(rèn)修 改操作是否繼續(xù)執(zhí)行的通知消息。上述應(yīng)用模塊根據(jù)接收到的通知消息, 對(duì)修改操作是否繼續(xù)執(zhí)行進(jìn)行確認(rèn),若應(yīng)用模塊預(yù)停止修改操作,則發(fā)送 中斷制止數(shù)據(jù)庫(kù)進(jìn)行修改操作,停止執(zhí)行下述步驟8。這樣可以避免數(shù)據(jù)庫(kù) 的誤操作。步驟7、數(shù)據(jù)庫(kù)依據(jù)流程順序?qū)π薷牟僮鞯臄?shù)據(jù)進(jìn)行約束檢查。 步驟8、數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)進(jìn)行實(shí)際的修改操作,比如修改記錄或字段。 步驟9、執(zhí)行觸發(fā)器,向所述應(yīng)用模塊發(fā)送關(guān)于數(shù)據(jù)庫(kù)修改狀態(tài)的通知 消息。在數(shù)據(jù)庫(kù)收到應(yīng)用模塊的操作指令,并要進(jìn)行實(shí)際的操作前,首先要 檢驗(yàn)數(shù)據(jù)的特殊的約束規(guī)則,只有所有的約束規(guī)則都滿足時(shí),數(shù)據(jù)庫(kù)才能 進(jìn)行實(shí)際的操作,特別是關(guān)于數(shù)據(jù)的增刪操作,這里所說(shuō)的約束規(guī)則包括 索引約束、值約束、外鍵約束等。對(duì)于數(shù)據(jù)庫(kù)存在記錄或字段的變化時(shí), 進(jìn)行完約束檢查的同時(shí),以及檢驗(yàn)到注冊(cè)了通知消息的觸發(fā)器時(shí),在操作 完數(shù)據(jù)庫(kù)便有效后,還要向應(yīng)用模塊發(fā)送通知消息。由于業(yè)務(wù)應(yīng)用的特殊性,業(yè)務(wù)要求通知消息中包含變化的內(nèi)容或趨勢(shì),通知消息中就必須保存 "新舊的數(shù)據(jù)",如增加時(shí)只保存新記錄,刪除時(shí)只保存舊記錄,更新操 作時(shí)將新舊記錄都保存。步驟10、應(yīng)用模塊收到通知消息并進(jìn)行相應(yīng)地處理。 應(yīng)用收到通知消息后,進(jìn)行自身數(shù)據(jù)的更新,同時(shí)可以維護(hù)和自身模 塊相關(guān)的其它模塊的數(shù)據(jù),保證系統(tǒng)的正常運(yùn)行。步驟U、應(yīng)用模塊根據(jù)需要注銷觸發(fā)器注冊(cè)器。應(yīng)用模塊若沒有注銷觸發(fā)器,則重復(fù)步驟3至10步。若注銷觸發(fā)器就清除掉通知消息觸發(fā)器注冊(cè)表中的相關(guān)數(shù)據(jù)。本發(fā)明對(duì)數(shù)據(jù)庫(kù)中的觸發(fā)器功能進(jìn)行了延伸,實(shí)現(xiàn)了 一種功能強(qiáng)大通 知消息的觸發(fā)器,其應(yīng)用于一種無(wú)線系統(tǒng)中的嵌入式數(shù)據(jù)庫(kù),在有特殊業(yè) 務(wù)規(guī)則限制,進(jìn)行約束檢查,保證數(shù)據(jù)的"合法性",在數(shù)據(jù)有變化時(shí)通 知相關(guān)業(yè)務(wù)應(yīng)用,及時(shí)正確地處理,保證應(yīng)用和數(shù)據(jù)庫(kù)內(nèi)部數(shù)據(jù)的一致性。上述各具體步驟的舉例說(shuō)明較為具體,并不能因此而認(rèn)為是對(duì)本發(fā)明 的專利保護(hù)范圍的限制,本發(fā)明的專利保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
      權(quán)利要求
      1. 一種嵌入式數(shù)據(jù)庫(kù)中觸發(fā)器的實(shí)現(xiàn)方法,其特征在于,所述方法包括以下步驟進(jìn)行A、向數(shù)據(jù)庫(kù)注冊(cè)通知消息的觸發(fā)器;B、當(dāng)檢測(cè)到數(shù)據(jù)庫(kù)有修改操作時(shí),向所述應(yīng)用模塊發(fā)送含有數(shù)據(jù)庫(kù)變化狀態(tài)的通知消息。
      2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A還包括以 下步驟數(shù)據(jù)庫(kù)校驗(yàn)應(yīng)用模塊注冊(cè)的觸發(fā)器的正確性,并在校驗(yàn)通過(guò)后,將觸 發(fā)器的注冊(cè)內(nèi)容插入到內(nèi)存中。
      3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法通過(guò)以下步驟 進(jìn)行觸發(fā)器正確性的校驗(yàn)通過(guò)對(duì)觸發(fā)器進(jìn)行約束規(guī)則檢查,以及對(duì)觸發(fā)器注冊(cè)內(nèi)容中的取值進(jìn) 行合法性檢驗(yàn)。
      4、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述內(nèi)存包括觸發(fā)器注冊(cè)表。
      5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟B包括以下步驟..Bl、應(yīng)用模塊對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改操作;B2、數(shù)據(jù)庫(kù)判斷是否有來(lái)自所述應(yīng)用模塊的修改操作指令;如果是, 則執(zhí)行B3;B3、遍歷觸發(fā)器注冊(cè)表,判斷是否存在所述應(yīng)用模塊注冊(cè)的通知消息 的觸發(fā)器;如果是,則步驟B4;B4、數(shù)據(jù)庫(kù)對(duì)修改操作的數(shù)據(jù)進(jìn)行約束檢查;B5、數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)修改操作;B6、執(zhí)行觸發(fā)器,向所述應(yīng)用模塊發(fā)送通知消息;B7、所述應(yīng)用模塊根據(jù)所述通知消息的內(nèi)容,進(jìn)行自我更新操作。
      6、根據(jù)權(quán)利要5所述的方法,其特征在于,所述步驟B4與步驟B3 之間還包括以下步驟當(dāng)判斷存在所述應(yīng)用模塊注冊(cè)的通知消息的觸發(fā)器時(shí),數(shù)據(jù)庫(kù)向所述 應(yīng)用模塊發(fā)送關(guān)于確認(rèn)修改操作是否繼續(xù)執(zhí)行的通知消息。
      7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述應(yīng)用模塊根據(jù)接收 到的通知消息,對(duì)修改操作是否繼續(xù)執(zhí)行進(jìn)行確認(rèn),若所述應(yīng)用模塊停止 修改操作,則發(fā)送中斷制止數(shù)據(jù)庫(kù)進(jìn)行修改操作。
      8、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟B6中,數(shù)據(jù) 庫(kù)向所述應(yīng)用模塊發(fā)送的是關(guān)于數(shù)據(jù)庫(kù)修改狀態(tài)的通知消息。
      9、 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述通知消息中包含 數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的內(nèi)容或趨勢(shì)。
      全文摘要
      本發(fā)明公開了一種嵌入式數(shù)據(jù)庫(kù)中觸發(fā)器的實(shí)現(xiàn)方法,其包括以下步驟A.向數(shù)據(jù)庫(kù)注冊(cè)通知消息的觸發(fā)器;B.當(dāng)檢測(cè)到數(shù)據(jù)庫(kù)有修改操作時(shí),向所述應(yīng)用模塊發(fā)送含有數(shù)據(jù)庫(kù)變化狀態(tài)的通知消息。本發(fā)明通過(guò)向應(yīng)用模塊發(fā)送通知消息,來(lái)實(shí)時(shí)保證業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性。使用本發(fā)明的方法可以實(shí)現(xiàn)嵌入式數(shù)據(jù)庫(kù)中除索引約束、值約束、外鍵約束等復(fù)雜的業(yè)務(wù)規(guī)則約束關(guān)系,保證數(shù)據(jù)庫(kù)中數(shù)據(jù)是符合業(yè)務(wù)要求的合法數(shù)據(jù)。本發(fā)明利用通知消息的觸發(fā)器實(shí)時(shí)地保證了業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性,保證系統(tǒng)的正常運(yùn)行,提高系統(tǒng)的運(yùn)行效率。
      文檔編號(hào)G06F17/30GK101256577SQ20081006630
      公開日2008年9月3日 申請(qǐng)日期2008年3月18日 優(yōu)先權(quán)日2008年3月18日
      發(fā)明者陳幼柏 申請(qǐng)人:中興通訊股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1