国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

探析觸發(fā)器在大型數(shù)據(jù)庫(kù)中的應(yīng)用

2018-12-05 18:40何勰緋
中國(guó)信息化 2018年11期
關(guān)鍵詞:機(jī)主數(shù)據(jù)表觸發(fā)器

何勰緋

在對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)的過程中,保證數(shù)據(jù)的完整性是尤為重要的,而觸發(fā)器是有效解決復(fù)雜數(shù)據(jù)完整性的一種科學(xué)、合理方法。通過大量實(shí)踐,本論文主要研究了四類觸發(fā)器的典型應(yīng)用,包括:不同數(shù)據(jù)庫(kù)系統(tǒng)之間的轉(zhuǎn)換(即系統(tǒng)集成)、對(duì)數(shù)據(jù)進(jìn)行有效拆分、對(duì)數(shù)據(jù)進(jìn)行有效合并、及數(shù)據(jù)級(jí)聯(lián)更新,并科學(xué)設(shè)計(jì)出對(duì)應(yīng)的模型。

一、前言

隨著數(shù)據(jù)的日益復(fù)雜及計(jì)算機(jī)被廣泛應(yīng)用,相應(yīng)的大型數(shù)據(jù)庫(kù)也受到了更加深入、更加廣泛的應(yīng)用。而對(duì)于大型數(shù)據(jù)庫(kù)來(lái)講,采取何種措施來(lái)保障數(shù)據(jù)的完整性、安全性等則是數(shù)據(jù)庫(kù)設(shè)計(jì)的一個(gè)特別重要的內(nèi)容。尤其是處理復(fù)雜程度很高并且要求較強(qiáng)數(shù)據(jù)完整性,這便是現(xiàn)階段數(shù)據(jù)庫(kù)設(shè)計(jì)的一個(gè)難點(diǎn)。本論文的作者通過大量工作實(shí)踐,明確發(fā)現(xiàn)觸發(fā)器能夠有效解決上述問題。

二、觸發(fā)器的定義

在數(shù)據(jù)庫(kù)(即SQL)中,觸發(fā)器是一種特殊類型的存儲(chǔ)過程。它能有效利用事件來(lái)觸發(fā)并被準(zhǔn)確、合理執(zhí)行,在存儲(chǔ)過程中能憑借相應(yīng)的存儲(chǔ)名字而被直接調(diào)用。倘若對(duì)某表執(zhí)行如下操作(即:DELETE、UPDATE等)的時(shí)候,SQL Server會(huì)自動(dòng)準(zhǔn)確、嚴(yán)格執(zhí)行觸發(fā)器定義的相關(guān)SQL語(yǔ)句,以便更好的保證對(duì)數(shù)據(jù)的處理是滿足SQL語(yǔ)句定義的規(guī)則。

三、觸發(fā)器的典型應(yīng)用

(一)不同數(shù)據(jù)庫(kù)系統(tǒng)之間的轉(zhuǎn)換

隨著企業(yè)規(guī)模的擴(kuò)展及業(yè)務(wù)的不斷發(fā)展,其對(duì)信息化的需求也在不斷發(fā)生著改變,要么是增加新的業(yè)務(wù),要么是對(duì)企業(yè)內(nèi)部的業(yè)務(wù)流程進(jìn)行優(yōu)化再造,要么是對(duì)數(shù)據(jù)的處理方式在發(fā)生著改變等,這些都需求企業(yè)增加新的業(yè)務(wù)模塊或者是對(duì)現(xiàn)有系統(tǒng)進(jìn)行優(yōu)化設(shè)計(jì)或者是設(shè)計(jì)新的業(yè)務(wù)系統(tǒng)。盡管企業(yè)原有信息管理系統(tǒng)也考慮到將來(lái)的可擴(kuò)展性,也相應(yīng)的為系統(tǒng)預(yù)留了接口或字段,但其很可能出現(xiàn)不能最大化的滿足新的業(yè)務(wù)需求。在這樣的情況下,要把企業(yè)原有的信息管理系統(tǒng)全盤推翻也是不太現(xiàn)實(shí)的,更不可能快速新建一個(gè)統(tǒng)一的信息管理系統(tǒng)。針對(duì)此種情況,通常采取數(shù)據(jù)耦合。

而觸發(fā)器的出現(xiàn)便為科學(xué)、合理解決上述問題提供了有效的方法,具體如下圖1所示的系統(tǒng)集成模型示意圖。從圖中可以明顯的看出,轉(zhuǎn)換表不但可以建立在新的系統(tǒng)里面,也可以在原有系統(tǒng)里面進(jìn)行建立。此外,有關(guān)轉(zhuǎn)換表的設(shè)計(jì)是嚴(yán)格按照新系統(tǒng)的要求、格式等來(lái)進(jìn)行設(shè)計(jì)的,是完全符合新系統(tǒng)設(shè)計(jì)格式,與此同時(shí),轉(zhuǎn)換表里面的數(shù)據(jù)也是來(lái)自原有數(shù)據(jù)庫(kù)系統(tǒng)之中。

(二)數(shù)據(jù)的拆分

通常來(lái)講,手機(jī)處理過程(如手機(jī)信息查詢、手機(jī)掛失、登入等)都具備如下要求,若用戶發(fā)送相應(yīng)的短信,其就會(huì)借助移動(dòng)網(wǎng)關(guān)自動(dòng)準(zhǔn)確無(wú)誤的增加到數(shù)據(jù)庫(kù)的表里面,而對(duì)編輯的短信內(nèi)容也規(guī)定有格式要求。其中,手機(jī)查詢格式為(LSGS#手機(jī)串號(hào)#手機(jī)型號(hào)#手機(jī)品牌#手機(jī)機(jī)主的姓名#機(jī)主聯(lián)系地址);登入格式為(LSGA#手機(jī)串號(hào)#手機(jī)型號(hào)#手機(jī)品牌#手機(jī)機(jī)主姓名#機(jī)主聯(lián)系地址);手機(jī)掛失的格式(LSGD#手機(jī)串號(hào)#手機(jī)型號(hào)#手機(jī)品牌#手機(jī)機(jī)主姓名#機(jī)主聯(lián)系地址)。一旦出現(xiàn)新的記錄,就會(huì)嚴(yán)格把手機(jī)短信的內(nèi)容根據(jù)“#”的格式來(lái)恰當(dāng)、準(zhǔn)確統(tǒng)計(jì),之后,再把相關(guān)的內(nèi)容分別存儲(chǔ)到其它數(shù)據(jù)庫(kù)里面。倘若是LSGS,就把相應(yīng)的內(nèi)容存儲(chǔ)到C表里;倘若是LSGA,就把相應(yīng)的內(nèi)容存儲(chǔ)到A表里;倘若是LSGD,就把相應(yīng)的內(nèi)容存儲(chǔ)到B表里。

倘若借助存儲(chǔ)過程來(lái)對(duì)相關(guān)的程序進(jìn)行編寫,存在的不足之處就是數(shù)據(jù)不具備實(shí)時(shí)性。為了更好解決上述問題,可以借助觸發(fā)器來(lái)對(duì)數(shù)據(jù)進(jìn)行有效拆分,通過觸發(fā)器來(lái)判定新寫入的數(shù)據(jù)是存到A表、還是B表或C表。圖2為數(shù)據(jù)拆分的模型示意圖。

(三)數(shù)據(jù)的合并

在實(shí)際業(yè)務(wù)開發(fā)實(shí)踐過程中,在對(duì)數(shù)據(jù)進(jìn)行維護(hù)的過程中通常會(huì)遇到如下一些需求:某單位由若干個(gè)部門來(lái)有效組成,其期望每一個(gè)部門都能夠單獨(dú)維護(hù)各自部門的數(shù)據(jù)信息,同時(shí),其又期望能夠得到本單位的所有匯總數(shù)據(jù)信息(即把單位不同部門的數(shù)據(jù)進(jìn)行集中匯總)。比如:某工廠擁有多個(gè)生產(chǎn)車間,但工廠上級(jí)領(lǐng)導(dǎo)希望看到的是各車間的產(chǎn)量匯總;某單位擁有若干個(gè)銷售部門,但是,公司上層期望得到的數(shù)據(jù)是各銷售部門的銷量匯總數(shù)據(jù);某公司擁有多個(gè)財(cái)務(wù)人員,其都具備輸入財(cái)務(wù)數(shù)據(jù)的權(quán)限,但公司領(lǐng)導(dǎo)期望看到的是全部財(cái)務(wù)數(shù)據(jù)信息等。此時(shí),若公司為每一個(gè)部門都建立相應(yīng)的表,而某些數(shù)據(jù)庫(kù)對(duì)instead of觸發(fā)器是不支持的,這樣的情況也很難得到部門間集中起來(lái)的匯總數(shù)據(jù);另外,若公司全部部門都共享同一張數(shù)據(jù)表,盡管這樣能夠得到公司所需求的匯總數(shù)據(jù)信息,但由于公司每一個(gè)部門對(duì)表都擁有修改權(quán)限,也需要各自部門去維護(hù)自己的數(shù)據(jù)信息等,所以,很難有效控制數(shù)據(jù)的安全性、可靠性等。

通過合理應(yīng)用觸發(fā)器,便能有效解決上述問題。通過對(duì)公司的每一個(gè)部門設(shè)置結(jié)構(gòu)相同的數(shù)據(jù)表,并且,各自部門僅擁有對(duì)自己部門數(shù)據(jù)表進(jìn)行修改的權(quán)限;此外,再針對(duì)公司匯總數(shù)據(jù)也相應(yīng)建立一個(gè)表,并準(zhǔn)確在公司每一個(gè)部門的數(shù)據(jù)表上搭建觸發(fā)器,這樣,只要某部門的數(shù)據(jù)出現(xiàn)修改或更新,而匯總表里面對(duì)應(yīng)的數(shù)據(jù)也會(huì)做出相應(yīng)的修改或更新。涉及到的數(shù)據(jù)合并模型示意圖如圖3所示。

(四)數(shù)據(jù)的級(jí)聯(lián)更新

在對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)的過程中,一旦設(shè)置外鍵也就相應(yīng)的搭建了不同表間的主從關(guān)系。而在實(shí)際業(yè)務(wù)執(zhí)行過程中,若主表的外鍵出現(xiàn)記錄刪除或被修改的情況,那么,從表也務(wù)必對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行更改。由于大型數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)復(fù)雜且被許多人所共享,它是不能夠像單機(jī)數(shù)據(jù)庫(kù)系統(tǒng)采用設(shè)置級(jí)聯(lián)來(lái)自動(dòng)完成的。在這樣的情況下,若要實(shí)現(xiàn)上述功能,就需借助觸發(fā)器來(lái)有效、合理完成。具體實(shí)現(xiàn)過程如圖4所示的數(shù)據(jù)級(jí)聯(lián)更新模型示意圖。通過觸發(fā)器來(lái)進(jìn)行科學(xué)判定,倘若要?jiǎng)h除相關(guān)的記錄,那么,就直接對(duì)從表里面的記錄進(jìn)行刪除;倘若是更改記錄,需先判定是否對(duì)外鍵進(jìn)行更改,若是需對(duì)外鍵進(jìn)行更改,那么,從表里面相應(yīng)的記錄進(jìn)行更改就行。

四、結(jié)束語(yǔ)

通過上述四個(gè)觸發(fā)器的典型應(yīng)用案例可以明顯看出,面對(duì)大型數(shù)據(jù)庫(kù)及對(duì)數(shù)據(jù)庫(kù)不同表之間的復(fù)雜邏輯關(guān)系進(jìn)行處理的時(shí)候,恰當(dāng)?shù)氖褂糜|發(fā)器能使數(shù)據(jù)庫(kù)的設(shè)計(jì)變得更加簡(jiǎn)潔,而對(duì)于復(fù)雜的表與表之間的處理也將變得更高效。此外,通過觸發(fā)器的機(jī)制能夠明顯看出,一旦操作建立有觸發(fā)器的數(shù)據(jù)表,便會(huì)相應(yīng)對(duì)數(shù)據(jù)庫(kù)里面對(duì)應(yīng)的程序進(jìn)行觸發(fā)。對(duì)于用戶經(jīng)?;蛘吒哳l率使用的表來(lái)講,若使用過長(zhǎng)的觸發(fā)器或者使用過多的觸發(fā)器,這對(duì)提升數(shù)據(jù)庫(kù)的效率是顯得不利的。因此,要結(jié)合實(shí)際需求來(lái)恰當(dāng)、科學(xué)使用觸發(fā)器,與此同時(shí),還需進(jìn)一步更多采用其它存儲(chǔ)過程。

猜你喜歡
機(jī)主數(shù)據(jù)表觸發(fā)器
圖說(shuō)
配置觸發(fā)器有條件啟動(dòng)Windows服務(wù)
基于Multisim14.0的雙D觸發(fā)器應(yīng)用與仿真
湖北省新冠肺炎疫情數(shù)據(jù)表(2.26-3.25)
湖北省新冠肺炎疫情數(shù)據(jù)表
湖北省新冠肺炎疫情數(shù)據(jù)表
觸發(fā)器在酒店管理系統(tǒng)中的應(yīng)用
你的智能手機(jī)將比你更懂你!
英航母出洋相:被無(wú)人機(jī)“突襲”
基于電路原理的觸發(fā)器波形分析