欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

移動(dòng)數(shù)據(jù)庫(kù)中移動(dòng)終端上跨節(jié)點(diǎn)約束的優(yōu)化檢查方法

文檔序號(hào):6550449閱讀:221來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):移動(dòng)數(shù)據(jù)庫(kù)中移動(dòng)終端上跨節(jié)點(diǎn)約束的優(yōu)化檢查方法
技術(shù)領(lǐng)域
本技術(shù)涉及在移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)中的移動(dòng)主機(jī)上的跨節(jié)點(diǎn)約束的一種優(yōu)化檢查方法,尤其涉及移動(dòng)數(shù)據(jù)庫(kù)在斷接狀態(tài)(包括主動(dòng)和被動(dòng)斷接狀態(tài))下,在一個(gè)移動(dòng)主機(jī)節(jié)點(diǎn)上,只利用本地?cái)?shù)據(jù)及全局約束信息,生成一個(gè)本地條件,僅通過(guò)驗(yàn)證本地?cái)?shù)據(jù)是否滿(mǎn)足這個(gè)本地條件來(lái)檢查全局完整性約束的方法。該方法能夠極大的提高移動(dòng)數(shù)據(jù)庫(kù)中完整性約束檢查的效率。
背景技術(shù)
移動(dòng)設(shè)備和無(wú)線通訊技術(shù)的發(fā)展帶動(dòng)了移動(dòng)計(jì)算環(huán)境的發(fā)展。為了支持移動(dòng)環(huán)境中的各種數(shù)據(jù)應(yīng)用,移動(dòng)數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生。移動(dòng)數(shù)據(jù)庫(kù)能夠滿(mǎn)足在任意地點(diǎn)、任意時(shí)刻訪問(wèn)任意數(shù)據(jù)的要求。
如圖1所示,為移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)模型。在一個(gè)移動(dòng)環(huán)境中,移動(dòng)主機(jī)MH(101)通常是通過(guò)移動(dòng)服務(wù)支持站點(diǎn)MSS(102)與固定網(wǎng)絡(luò)(105)連接的。固定網(wǎng)絡(luò)中有若干個(gè)移動(dòng)服務(wù)支持站點(diǎn)MSS,每個(gè)MSS負(fù)責(zé)建立一個(gè)無(wú)線網(wǎng)絡(luò)單元(106)。固定網(wǎng)絡(luò)內(nèi)還有固定主機(jī)FH(103)和中央數(shù)據(jù)庫(kù)服務(wù)器DBS(104)。
如圖2所示,為移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)軟件分布圖。在MH(101)上,有一個(gè)嵌入式數(shù)據(jù)庫(kù)EDBMS(202),它從DBS(104)處緩存了一部分?jǐn)?shù)據(jù)到移動(dòng)端的嵌入式數(shù)據(jù)庫(kù)EDB(203)中,用戶(hù)可以對(duì)該EDBMS(202)進(jìn)行操作或建立自己的移動(dòng)應(yīng)用程序MA(201)。EDBMS(202)除了存儲(chǔ)功能之外,還擔(dān)負(fù)著與MSS(102)同步的功能,通過(guò)與MSS(102)上的同步服務(wù)器軟件SS(204)通信完成數(shù)據(jù)的上載、下載、同步等問(wèn)題。同步服務(wù)器軟件SS(204)則通過(guò)數(shù)據(jù)庫(kù)連接205與中央數(shù)據(jù)庫(kù)DBS(104)連接,205可以是開(kāi)放數(shù)據(jù)庫(kù)連接(Open Database Connectivity,ODBC),或者是Java數(shù)據(jù)庫(kù)連接(JavaDatabase Connectivity,JDBC)等。
圖2將移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)主要分為三部分移動(dòng)主機(jī)MH(101)、移動(dòng)支持站MSS(102)、中央數(shù)據(jù)庫(kù)DBS(104),對(duì)各部分詳細(xì)說(shuō)明如下1)移動(dòng)主機(jī)MH(101)為大小不定的移動(dòng)設(shè)備,包括手機(jī)、PDA等小型的資源和處理能力非常有限的手持設(shè)備,也包括筆記本電腦這類(lèi)具有移動(dòng)性的計(jì)算和存儲(chǔ)資源比較豐富的設(shè)備。在移動(dòng)主機(jī)上,數(shù)據(jù)存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中,在手持設(shè)備上即為一個(gè)嵌入式數(shù)據(jù)庫(kù),我們將其稱(chēng)為EDB(203)(雖然在筆記本電腦上的數(shù)據(jù)庫(kù)不一定是嵌入式的,但由于功能是一樣的,因而我們?cè)诖硕家訣DB(203)稱(chēng)呼,以便與中心數(shù)據(jù)庫(kù)區(qū)分)。對(duì)于EDB(203)由嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)EDBMS(202)對(duì)其進(jìn)行管理,這是一個(gè)微小型數(shù)據(jù)庫(kù)。它不僅具備基本的數(shù)據(jù)庫(kù)管理功能,還能夠與中央數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換,具備數(shù)據(jù)同步功能。在移動(dòng)主機(jī)MH(101)上,我們不僅可以通過(guò)無(wú)線網(wǎng)絡(luò)實(shí)時(shí)查詢(xún)和操作固定網(wǎng)絡(luò)中的最新數(shù)據(jù),同時(shí)還能夠在網(wǎng)絡(luò)斷接時(shí)對(duì)本地EDBMS(202)緩存的數(shù)據(jù)進(jìn)行操作。移動(dòng)設(shè)備的用戶(hù)通過(guò)基于EDBMS(202)來(lái)定制移動(dòng)應(yīng)用程序MA(201)。
2)移動(dòng)支持站MSS(102)位于高速固定網(wǎng)絡(luò)(105)中。每個(gè)移動(dòng)支持站MSS(102)負(fù)責(zé)建立一個(gè)無(wú)線網(wǎng)絡(luò)單元(也稱(chēng)為無(wú)線蜂窩)(106)。單元內(nèi)的MH(101)與MSS(102)之間通過(guò)無(wú)線網(wǎng)絡(luò)(206)連接。除了無(wú)線通信接口之外,MSS(102)還具有有線通信接口,與固定網(wǎng)絡(luò)(105)內(nèi)的固定主機(jī)FH(103)、中央數(shù)據(jù)庫(kù)DBS(104)、其他MSS(102)進(jìn)行連接。這樣MSS(102)能夠支持多種通信協(xié)議,包括網(wǎng)絡(luò)通信協(xié)議TCP/IP、GSM、WAP、HTFP等,也支持串口等通信方式。MSS(102)的重要功能主要由其上的同步服務(wù)器SS(204)來(lái)承擔(dān)。同步服務(wù)器SS(204)提供的功能包括通過(guò)MSS(102)的各種有線和無(wú)線通信方式與DBS(104)和MH(102)進(jìn)行交互,實(shí)現(xiàn)數(shù)據(jù)交換的功能;并且提供了同步與沖突處理機(jī)制來(lái)保證數(shù)據(jù)的正確處理。
3)中央數(shù)據(jù)庫(kù)DBS(104)。在此,出于簡(jiǎn)化說(shuō)明的目的,我們將高性能的數(shù)據(jù)庫(kù)服務(wù)器與其數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)稱(chēng)為DBS(104)??梢允侨鏞RACLE、SYBASE等的大型數(shù)據(jù)庫(kù)系統(tǒng)。DBS(104)上存儲(chǔ)著大量數(shù)據(jù),MH(101)上緩存的數(shù)據(jù)都來(lái)自于中央數(shù)據(jù)庫(kù),在MH(101)上所更新的數(shù)據(jù)最終也會(huì)通過(guò)同步服務(wù)器SS(204)的處理存儲(chǔ)在中央數(shù)據(jù)庫(kù)DBS(104)中。同步服務(wù)器SS(204)通過(guò)數(shù)據(jù)庫(kù)連接(205)與DBS(104)進(jìn)行連接,將MH(101)上的數(shù)據(jù)同步請(qǐng)求提交給DBS(104),然后進(jìn)行實(shí)際的數(shù)據(jù)存取。
盡管移動(dòng)數(shù)據(jù)庫(kù)技術(shù)能夠有效的支持移動(dòng)計(jì)算環(huán)境中的各種數(shù)據(jù)應(yīng)用,但也給目前的數(shù)據(jù)庫(kù)實(shí)現(xiàn)技術(shù)帶來(lái)了新的挑戰(zhàn),如移動(dòng)客戶(hù)端的移動(dòng)特性和頻繁斷接。如何在這樣的移動(dòng)環(huán)境下進(jìn)行數(shù)據(jù)管理引起了大家的關(guān)注。
在傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)中,客戶(hù)端始終與數(shù)據(jù)庫(kù)服務(wù)器保持連接,任何斷開(kāi)連接的情況均被視為故障事務(wù)而進(jìn)行處理。而在移動(dòng)計(jì)算環(huán)境中,由于移動(dòng)環(huán)境本身的條件限制,即出于移動(dòng)計(jì)算機(jī)電源容量相當(dāng)有限、無(wú)線網(wǎng)絡(luò)通信開(kāi)銷(xiāo)較大、網(wǎng)絡(luò)條件、移動(dòng)性以及使用方式等原因,使得移動(dòng)計(jì)算機(jī)在使用過(guò)程中不采用保持持續(xù)聯(lián)網(wǎng)的工作方式,而是主動(dòng)或被動(dòng)的經(jīng)常處于斷接狀態(tài),且通常是移動(dòng)端的主動(dòng)斷接。因而移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)重要特點(diǎn)是能夠在移動(dòng)設(shè)備與網(wǎng)絡(luò)斷接的狀態(tài)下提供本地查詢(xún)、修改等能力。
這樣移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)在數(shù)據(jù)處理上與傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)有了很大的不同。本發(fā)明針對(duì)移動(dòng)數(shù)據(jù)庫(kù)的斷接特點(diǎn)提出一個(gè)移動(dòng)主機(jī)MH(101)上跨節(jié)點(diǎn)完整性約束的優(yōu)化檢查方法,旨在對(duì)EDBMS(202)做出一定的改進(jìn),使其能夠快速有效的進(jìn)行跨節(jié)點(diǎn)的完整性約束檢查。
首先,我們通過(guò)一個(gè)例子來(lái)說(shuō)明移動(dòng)環(huán)境中采取新的完整性約束檢查機(jī)制的必要性。
有一個(gè)移動(dòng)銷(xiāo)售管理系統(tǒng)。每個(gè)銷(xiāo)售人員有一個(gè)手持設(shè)備,定期從中央數(shù)據(jù)庫(kù)DBS(104)上下載商品及價(jià)格信息,并記錄由他經(jīng)手的銷(xiāo)售信息。作出如下設(shè)計(jì)在移動(dòng)主機(jī)MH(101)存儲(chǔ)關(guān)系commodity和discount_order,ordinary_order(銷(xiāo)售記錄分為兩種,一種是普通的,一種是會(huì)員專(zhuān)用,兩種關(guān)系屬性有所不同),中央數(shù)據(jù)庫(kù)DBS(104)上存有關(guān)系vip。
移動(dòng)主機(jī)MH(101)上的關(guān)系說(shuō)明commodity(commodity,price),//存儲(chǔ)商品號(hào)及該商品的基本價(jià)格。
discount_order(customer,commodity,quantity),//存儲(chǔ)該推銷(xiāo)員對(duì)vip貴賓客戶(hù)銷(xiāo)售商品的信息,客戶(hù)customer購(gòu)買(mǎi)了數(shù)量為quantity的商品commodity。
ordinary_order(commodity,quantity),//賣(mài)出數(shù)量為quantity的商品commodity。
固定端上的關(guān)系說(shuō)明vip(customer,quota_quantity),//存有貴賓客戶(hù)的信息客戶(hù)customer及他每次以vip身份最多購(gòu)買(mǎi)商品的最大數(shù)量。
因?yàn)橐苿?dòng)主機(jī)MH(101)存儲(chǔ)容量有限,它僅存有商品信息。而一家商戶(hù)有很多貴賓客戶(hù)信息,貴賓客戶(hù)可以享受打折待遇?;蛘叱鲇诒C茉?,或者由于移動(dòng)主機(jī)存儲(chǔ)容量有限,這些信息僅存儲(chǔ)在固定網(wǎng)絡(luò)的DBS(104)上。當(dāng)一名客戶(hù)要求以折扣價(jià)格購(gòu)買(mǎi)商品時(shí),移動(dòng)推銷(xiāo)員需要將移動(dòng)主機(jī)與網(wǎng)絡(luò)連接上,查詢(xún)?cè)撚脩?hù)是否是貴賓客戶(hù)。如果是,即可用折扣價(jià)格購(gòu)買(mǎi),并將該條包含客戶(hù)姓名的銷(xiāo)售記錄插入到discount_order中。如果不是,則只能以普通價(jià)格購(gòu)買(mǎi),關(guān)系ordinary_order用來(lái)存儲(chǔ)對(duì)普通客戶(hù)的銷(xiāo)售記錄,不需包含客戶(hù)信息。
在實(shí)際操作中,大部分是普通用戶(hù),則對(duì)他們的銷(xiāo)售是普通模式,生成的銷(xiāo)售訂單插入ordinary_order。約束驗(yàn)證所需信息也都來(lái)自本地,在此不過(guò)多討論。
當(dāng)向關(guān)系discount_order插入一條信息時(shí),就會(huì)檢查三個(gè)參考完整性完整性約束C1檢查關(guān)系commodity中是否存在該商品記錄,這里只需在移動(dòng)主機(jī)自身就可檢驗(yàn)。
完整性約束C2當(dāng)向一個(gè)關(guān)系discount_order插入一條信息時(shí),會(huì)檢查在關(guān)系vip中是否存在該用戶(hù)的一條記錄,如果存在,則該參考完整性滿(mǎn)足,如果不存在,則不滿(mǎn)足該參考完整性,不能執(zhí)行插入操作。
完整性約束C3貴賓客戶(hù)customer每次以vip身份最多購(gòu)買(mǎi)商品的最大數(shù)量quota_quantity,即向關(guān)系discount_order插入一條交易信息時(shí),必須檢查待插入記錄屬性quantity的值是否小于該客戶(hù)在customer表中的quota_quantity值,如果是,則不允許插入。
對(duì)于約束C2和C3,傳統(tǒng)的驗(yàn)證方法需要與主數(shù)據(jù)庫(kù)連接才能進(jìn)行驗(yàn)證。但是在移動(dòng)數(shù)據(jù)庫(kù)中直接這樣做的話代價(jià)很大,包括移動(dòng)事務(wù)并發(fā)控制、網(wǎng)絡(luò)通信開(kāi)銷(xiāo)、連接操作、上下載操作、同步及沖突處理、還有由于移動(dòng)主機(jī)與固定端的數(shù)據(jù)庫(kù)不是同一種類(lèi),還需經(jīng)過(guò)相應(yīng)的內(nèi)部協(xié)議及界面層轉(zhuǎn)換。
為了盡可能節(jié)約以上這些開(kāi)銷(xiāo),我們提出了一種斷接狀態(tài)下的移動(dòng)數(shù)據(jù)完整性約束檢查方法。

發(fā)明內(nèi)容
針對(duì)傳統(tǒng)約束檢查機(jī)制的不足,我們?yōu)橐苿?dòng)數(shù)據(jù)庫(kù)系統(tǒng)提出一種移動(dòng)主機(jī)MH(101)上跨節(jié)點(diǎn)約束的優(yōu)化檢查方法,對(duì)EDBMS(202)中的約束檢查機(jī)制做出改進(jìn)。該方法的核心是在一個(gè)移動(dòng)主機(jī)MH(101)上只利用本地?cái)?shù)據(jù)及全局約束信息,生成一個(gè)本地條件,僅通過(guò)驗(yàn)證本地?cái)?shù)據(jù)是否滿(mǎn)足這個(gè)本地條件來(lái)檢查全局完整性約束。該方法能夠極大的提高移動(dòng)數(shù)據(jù)庫(kù)中完整性約束檢查的效率。基于這個(gè)核心,如圖3所示,我們對(duì)具體的跨節(jié)點(diǎn)檢查流程在“具體實(shí)施方式
”中進(jìn)行闡述。
參照附圖以及下面的詳細(xì)說(shuō)明,將會(huì)清楚的理解本發(fā)明的其他目的、特征和優(yōu)點(diǎn)。
通過(guò)下面的詳細(xì)說(shuō)明,本領(lǐng)域普通技術(shù)人員將會(huì)清楚的理解本發(fā)明的目的、特征及優(yōu)點(diǎn)。


附圖中圖1示出能夠應(yīng)用本發(fā)明的移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)模型。
圖2示出能夠應(yīng)用本發(fā)明的移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的軟件分布圖。
圖3示出本發(fā)明的流程圖——應(yīng)用于移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的LTC約束檢查流程圖。
具體實(shí)施例方式
上面在“背景技術(shù)”一節(jié)中結(jié)合圖1、圖2介紹了移動(dòng)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、軟件分布以及采用新的完整性約束檢查機(jī)制的必要性。
1、下面首先介紹本發(fā)明的核心部分——完整性約束的本地檢查方法(LTC檢查)。
LTC檢查是一個(gè)用本地信息驗(yàn)證全局完整性的方法。這個(gè)方法生成一個(gè)本地測(cè)試條件——如果本地?cái)?shù)據(jù)滿(mǎn)足這個(gè)條件,那么全局約束就會(huì)被滿(mǎn)足。如果不能滿(mǎn)足,則需要進(jìn)一步執(zhí)行傳統(tǒng)的完整性約束檢查。下面對(duì)LTC檢查進(jìn)行概述。(以下“本地”即指移動(dòng)主機(jī)(101))首先必須滿(mǎn)足以下條件1)對(duì)本地關(guān)系L進(jìn)行修改;2)一個(gè)完整性約束C覆蓋了本地和遠(yuǎn)程關(guān)系;3)假定修改之前L沒(méi)有違背這個(gè)約束。
這個(gè)測(cè)試條件能在編譯時(shí)一次生成,并能在運(yùn)行時(shí)使用進(jìn)行修改的元組來(lái)實(shí)例化。因?yàn)閮?yōu)化生成條件僅是在本地?cái)?shù)據(jù)上,所以這種方法不會(huì)產(chǎn)生并發(fā)問(wèn)題。
在此,我們使用一階邏輯描述完整性約束斷言語(yǔ)言。完整性約束斷言的這種邏輯形式使得本地測(cè)試條件和驗(yàn)證它的正確性更為方便。一個(gè)完整性約束斷言有以下描述形式(C)XYZ[(L(X)∧R1(Y1)∧...∧Rk(Yk)∧g(X,Y,Z,c))(S1(Y1’,Z1’)∨...∨Sn(Yn’,Zn’))]說(shuō)明L代表本地關(guān)系;R1,...Rk,S1,...,Sn代表遠(yuǎn)程關(guān)系;X={X1,...,Xt}是僅在L和g中出現(xiàn)的受全稱(chēng)量詞約束的變?cè)稀?br> Y={Y1,...,Yu}是僅在R1,...,Rk,Si,...,Sn和g中出現(xiàn)的受全稱(chēng)量詞約束的變?cè)稀?br> Z={Z1,...,Zv}是僅在S1,...,Sn和g中出現(xiàn)的受存在量詞約束的變?cè)稀?br> c={c1,...,cw}是僅在g中出現(xiàn)的常量集合。
g(X,Y,Z,c)是“=”連接符合非等于連接符“<,>,=,=”。
YiY,是在關(guān)系Ri中出現(xiàn)的變?cè)希?=i=k;Yi’Y,是在關(guān)系Si中出現(xiàn)的受全稱(chēng)量詞約束的變?cè)希?=i=n;Zi’Z,是在關(guān)系Si中出現(xiàn)的受存在量詞約束的變?cè)希?=i=n;對(duì)這個(gè)完整性約束有以下限制1)受存在量詞約束的變?cè)獌H能夠出現(xiàn)在完整性約束斷言對(duì)應(yīng)蘊(yùn)含公式的遠(yuǎn)程關(guān)系上。
2)受全稱(chēng)量詞約束的變?cè)霈F(xiàn)在一個(gè)遠(yuǎn)程關(guān)系上,斷言或者等于一個(gè)常量,或者出現(xiàn)在本地的一些關(guān)系上,等價(jià)于出現(xiàn)在本地的一個(gè)關(guān)系上的一個(gè)變?cè)?br> 3)出現(xiàn)在g里的受存在量詞約束的變?cè)扔谝粋€(gè)常量或一個(gè)受全稱(chēng)量詞約束的變?cè)?br> 為了確保約束的實(shí)際驗(yàn)證,必須保證1)、2)、3)的完整性約束上的限制。
在一個(gè)完整性約束斷言C中,對(duì)每個(gè)在X,Y,和Z里的變?cè)?,令變?cè)膫€(gè)體域是變?cè)霈F(xiàn)的關(guān)系的列的域。如果對(duì)于X和Y里的變?cè)乃械闹档姆峙?,都存在Z中的一個(gè)變?cè)闹档姆峙洌瑵M(mǎn)足如果1)在關(guān)系L里有一個(gè)值被分配給X的元組;2)對(duì)每個(gè)Ri,C里1≤i≤k,關(guān)系Ri中有一個(gè)元組值被分配給Yi;3)謂詞g滿(mǎn)足使用常量c和分配給X,Y,和Z的值。
這樣對(duì)一些Si,C中1≤i≤n,關(guān)系Si中有一個(gè)元組,它的值分配給Yi’和Zi’。
本發(fā)明提出的LTC約束檢查方法對(duì)于一個(gè)完整性約束CX YZ[(L(X)∧R1(Y1)∧...∧Rk(Yk)∧g(X,Y,Z,c))(S1(Y1’,Z1’)∨...∨Sn(Yn’,Zn’))],令v是在本地關(guān)系L上被操作后的元組。則本地測(cè)試條件如下(LTC(C,v))XYZ[L(X)∧(g(v,Y,Z,c)g(X,Y,Z,c))]。
如果關(guān)系L滿(mǎn)足LTC(C,v),那么元組v在L中不違背約束C。注意只有關(guān)系L被包含在LTC(C,v)中,這個(gè)測(cè)試條件并不引用任何遠(yuǎn)程關(guān)系R1,...,Rk,S1,...Sn。
這樣,考慮一個(gè)完整性約束C和在關(guān)系L操作之后的一個(gè)元組v。如果在修改操作前之前數(shù)據(jù)庫(kù)滿(mǎn)足完整性約束謂詞,且如果本地測(cè)試條件LTC(C,v)通過(guò)本地關(guān)系L滿(mǎn)足,那么數(shù)據(jù)庫(kù)在得到新元組v的修改操作之后滿(mǎn)足完整性約束斷言C。
LTC方法在編譯時(shí)間里獲得,通過(guò)將v作為一個(gè)參數(shù)來(lái)替代使用得到元組的實(shí)際值。當(dāng)一個(gè)元組在執(zhí)行的時(shí)候,被實(shí)際的作用到本地關(guān)系L中,LTC(C,v)通過(guò)這個(gè)元組來(lái)示例,且使用本地關(guān)系來(lái)評(píng)估。為了本地驗(yàn)證LTC(C,v),需要從蘊(yùn)含式(g(v,Y,Z,c)g(X,Y,Z,c))里消除Y和Z里的受全稱(chēng)量詞約束的變?cè)O齓和Z里的受全稱(chēng)量詞約束的變?cè)獙?dǎo)致了X里的變?cè)系囊粋€(gè)約束的集合成為了本地關(guān)系中覆蓋元組的選擇條件。
2、蘊(yùn)含式復(fù)雜度及性能LTC條件有一個(gè)包含g的蘊(yùn)含式,g是算術(shù)謂詞的連接。如果本地關(guān)系L包含一個(gè)滿(mǎn)足這個(gè)蘊(yùn)含式的元組,那么我們說(shuō)本地關(guān)系滿(mǎn)足測(cè)試。為了評(píng)估測(cè)試條件,蘊(yùn)含式的可滿(mǎn)足性需要被簡(jiǎn)化為在關(guān)系L上的一個(gè)查詢(xún)。因而我們需要從蘊(yùn)含式Y(jié)和Z里消除變?cè)和Z里的變?cè)獙?duì)應(yīng)于遠(yuǎn)程關(guān)系。上例中說(shuō)明了消除變?cè)谋匾?。如果g包含了等式謂詞,那么消除受全稱(chēng)量詞約束的變?cè)莻鬟f等式就很簡(jiǎn)單。這個(gè)傳遞的花費(fèi)與g中等式的數(shù)量是線性關(guān)系。但如果蘊(yùn)含式中包含了多個(gè)不等式,則用數(shù)學(xué)方法比較簡(jiǎn)化蘊(yùn)含式的復(fù)雜度是O(n3),這里n是g中不等式的數(shù)量。所以考慮到移動(dòng)端有限的資源條件,蘊(yùn)含式復(fù)雜度如果在一定范圍之內(nèi),根據(jù)LTC條件進(jìn)行驗(yàn)證將會(huì)減少聯(lián)機(jī)概率,大大提高運(yùn)行效率。
3、下面基于以上方法——完整性約束的本地檢查方法(LTC),結(jié)合圖3說(shuō)明本發(fā)明的具體實(shí)施流程。
本發(fā)明允許一個(gè)全局約束可以跨越了一個(gè)或多個(gè)移動(dòng)數(shù)據(jù)庫(kù)結(jié)點(diǎn)以及主數(shù)據(jù)庫(kù)接點(diǎn),但我們只在一個(gè)移動(dòng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上通過(guò)存取本地?cái)?shù)據(jù)及這個(gè)全局的約束信息就能夠測(cè)試一致性是否滿(mǎn)足。這個(gè)方法生成一個(gè)本地條件——如果本地?cái)?shù)據(jù)滿(mǎn)足這個(gè)條件,那么全局約束就會(huì)被滿(mǎn)足。如果不能滿(mǎn)足,則需要在移動(dòng)節(jié)點(diǎn)重新聯(lián)機(jī)時(shí),進(jìn)一步執(zhí)行約束檢查。該方法按以下幾個(gè)步驟進(jìn)行移動(dòng)數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性約束檢查(其流程如圖3所示)1)首先用戶(hù)對(duì)移動(dòng)數(shù)據(jù)庫(kù)做修改操作;2)對(duì)這個(gè)修改操作進(jìn)行約束判斷如果它所涉及的關(guān)系不包含完整性約束,則跳過(guò)完整性約束檢查,直接進(jìn)行修改操作。否則我們需要對(duì)其進(jìn)行進(jìn)一步檢查操作。
3)檢查該修改操作的關(guān)系中是否包含非本地關(guān)系。如果不存在,可以按照原有的完整性約束檢查機(jī)制進(jìn)行驗(yàn)證。如果存在非本地關(guān)系,則進(jìn)行蘊(yùn)含式復(fù)雜度計(jì)算。
4)由于移動(dòng)系統(tǒng)計(jì)算資源有限,且不同移動(dòng)設(shè)備的計(jì)算能力不同,預(yù)先根據(jù)系統(tǒng)資源配置設(shè)定系統(tǒng)承受值,如果這個(gè)蘊(yùn)含式復(fù)雜度超過(guò)了系統(tǒng)承受值,則要求聯(lián)機(jī)做全局完整性約束檢查。如果在系統(tǒng)承受范圍之內(nèi),則執(zhí)行LTC檢查。如果滿(mǎn)足LTC條件,則全局約束得到滿(mǎn)足。如果LTC條件不能得到滿(mǎn)足,則也要求聯(lián)機(jī)進(jìn)行進(jìn)一步檢查。
5)對(duì)上一步中需要做聯(lián)機(jī)約束檢查的作連接同步操作,然后進(jìn)行進(jìn)一步的驗(yàn)證。
6)根據(jù)以上幾點(diǎn)及聯(lián)機(jī)檢查的結(jié)果,有以下幾種約束檢查的結(jié)果狀態(tài)狀態(tài)1使用原有檢查機(jī)制,執(zhí)行本地檢查,滿(mǎn)足完整性約束;狀態(tài)2使用原有檢查機(jī)制,執(zhí)行本地檢查,不滿(mǎn)足完整性約束;狀態(tài)3執(zhí)行LTC本地檢查,滿(mǎn)足完整性約束;狀態(tài)4本地未能檢查出完整性約束,也不能即時(shí)進(jìn)行執(zhí)行聯(lián)機(jī)檢查;狀態(tài)5本地未能檢查出完整性約束,聯(lián)機(jī)但不成功;
狀態(tài)6本地未能檢查出完整性約束,聯(lián)機(jī)成功,檢查得知滿(mǎn)足完整性約束;狀態(tài)7本地未能檢查出完整性約束,聯(lián)機(jī)成功,檢查得知不滿(mǎn)足完整性約束記錄所有的檢查結(jié)果,約束檢查過(guò)程結(jié)束。
最后需要根據(jù)檢查結(jié)果狀態(tài)值來(lái)決定是否執(zhí)行這個(gè)移動(dòng)端的本地修改。如果檢查結(jié)果滿(mǎn)足所有的完整性約束條件,則允許執(zhí)行本地修改;否則,因?yàn)橐苿?dòng)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)與它將要應(yīng)用的領(lǐng)域有一定關(guān)系,所以應(yīng)結(jié)合領(lǐng)域特點(diǎn)及各狀態(tài)做出相應(yīng)實(shí)現(xiàn)。這不屬于完整性約束檢查內(nèi)容,不再詳述。
根據(jù)以上流程,我們針對(duì)“背景技術(shù)”中的移動(dòng)銷(xiāo)售管理系統(tǒng)給出了具體的驗(yàn)證過(guò)程示例。此處著重描述該驗(yàn)證示例的LTC驗(yàn)證過(guò)程。
在準(zhǔn)備向關(guān)系discount_order插入一條訂單記錄時(shí),首先確定該關(guān)系上的完整性約束。與之關(guān)聯(lián)有兩條參考完整性約束C1和C2、C3需要檢查。由于約束C1中只有本地關(guān)系參與,因此可以直接進(jìn)行檢查。對(duì)于C2、C3,由于該約束包含了遠(yuǎn)程關(guān)系vip,為了盡量避免移動(dòng)事務(wù)操作和減小網(wǎng)絡(luò)代價(jià),希望能夠采用移動(dòng)主機(jī)測(cè)試條件LTC先進(jìn)行本地檢查。
檢查1)按照前面的方法,可以將約束C2表述如下customer,commodity,quantitycustomer’,quota_quantity[(discount_order(customer,commodity,quantity)∧(customer=customer’))vip(customer,quota_quantity)]這里移動(dòng)主機(jī)上的本地關(guān)系就是關(guān)系discount_order,r就是customer=customer’。首先計(jì)算蘊(yùn)含式復(fù)雜度,這里r中只包含等式謂詞,復(fù)雜度是O(n),移動(dòng)主機(jī)計(jì)算代價(jià)很小,那么可以進(jìn)移動(dòng)主機(jī)本地測(cè)試。
被插入的元組的參數(shù)為<customerv,commodityv,quantityv>。那么根據(jù)移動(dòng)主機(jī)本地測(cè)試條件LTC,本地測(cè)試即為customer,commodity,quantitycustomer’[discount_order(customer,commodity,quantity)∧((customer’=customerv)(customer=customer’))]假定元組(customer105,commodityAA,50)被插入到關(guān)系discount_order中,那么參數(shù)變?cè)蜁?huì)被customev代替,生成了以下測(cè)試條件(MT1)customer,commodity,quantitycustomer’[discount_order(customer,commodity,quantity)∧((customer’=customer105)(customer’=customer))]然后,將受全稱(chēng)量詞約束的變?cè)獜臏y(cè)試條件(MT1)中消除,最后得出一個(gè)僅包含了移動(dòng)主機(jī)本地關(guān)系變?cè)臏y(cè)試條件。變?cè)猶uota_quantity因?yàn)椴辉?MT1)中出現(xiàn),因而可以被消除;而變?cè)猚ustomer’可以通過(guò)傳遞等式customer’=customer105被消除。這樣我們得出customer,commodity,quantity 根據(jù)這個(gè)式子,我們就可以在discount_order關(guān)系中查詢(xún)是否已經(jīng)存在一個(gè)元組,它的customer屬性值就是customer105。如果這個(gè)查詢(xún)得出一個(gè)非空的集合,那么(customer105,commodityAA,50)就沒(méi)有違背約束C2。否則的話,如果原來(lái)不存在這樣一條customer屬性值customer105記錄,我們還必須根據(jù)移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)際應(yīng)用,申請(qǐng)聯(lián)機(jī)檢查,在合適的情況下與固定端連接來(lái)進(jìn)行統(tǒng)一的參考完整性約束檢查。
測(cè)試2)按照前面的方法,可以將約束C3表述如下customer,commodity,quantity,customer’,quota_quantity[(discount_order(customer,commodity,quantity)∧(customer=customer’)∧vip(customer,quota_quantity))(quantity<quota_quantity)]亦即customer,commodity,quantity,customer’,quota_quantity[(discount_order(customer,commodity,quantity)∧(customer=customer’)∧vip(customer,quota_quantity)∧(quantity>=quota_quantity))FALSE]這里移動(dòng)主機(jī)上的本地關(guān)系仍然是關(guān)系discount_order,g就是(customer=customer’)∧vip(customer,quota_quantity)∧(quantity>=quota_quantity).
被插入的元組的參數(shù)為<customerv,commodityv,quantityv>。那么移動(dòng)主機(jī)本地測(cè)試即為customer,commodity,quantitycustomer’,quota_quantity[ discount_order(customer,commodity,quantity)∧((customer’=customerv∧quantityv>=quota_quantity)(customer=customer’)∧(quantity>=quota_quantity)))]假定元組(customer105,commodityAA,50)被插入到關(guān)系discount_order中,那么參數(shù)變?cè)蜁?huì)被customerv代替,生成了以下測(cè)試條件(MT2)customer,commodity,quantitycustomer’[discount_order(customer,commodity,quantity)∧((customer’=customer105∧50>=quota_quantity)(customer’=customer∧quantity>=quota_quantity)]然后,將受全稱(chēng)量詞約束的變?cè)獜臏y(cè)試條件(MT2)中消除,最后得出一個(gè)僅包含了移動(dòng)主機(jī)本地關(guān)系變?cè)臏y(cè)試條件。因而可以被消除;而變?cè)猚ustomer’可以通過(guò)傳遞等式customer’=customer105被消除,quota_quantity也可通過(guò)傳遞不等式50>=quota_quantity消除。這樣我們得出customer,commodity,quantity[discount_order(customer,commodity,quantity)∧customer=customer105∧quantity>=50]根據(jù)這個(gè)式子,我們就可以在discount_order關(guān)系中查詢(xún)是否已經(jīng)存在一個(gè)元組,它的customer屬性值就是customer105,并且quantity值大于或等于50。如果這個(gè)查詢(xún)得出一個(gè)非空的集合,那么(customer105,commodityAA,50)就沒(méi)有違背約束C3。否則的話,約束條件在移動(dòng)主機(jī)不能檢查出是否滿(mǎn)足,我們還必須根據(jù)移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)際應(yīng)用,申請(qǐng)聯(lián)機(jī)檢查,在合適的情況下與固定端連接來(lái)進(jìn)行統(tǒng)一的參考完整性約束檢查。
上面說(shuō)明了一種移動(dòng)數(shù)據(jù)庫(kù)中移動(dòng)主機(jī)上跨節(jié)點(diǎn)約束的優(yōu)化檢查方法。本領(lǐng)域普通技術(shù)人員應(yīng)理解,在不脫離本發(fā)明范圍的情況下,可以對(duì)本發(fā)明各成分的內(nèi)容或安排進(jìn)行各種改變和修改。本發(fā)明完全符合發(fā)明專(zhuān)利申請(qǐng)要件,故依法提出發(fā)明專(zhuān)利申請(qǐng),請(qǐng)?jiān)敳椴⑴鷾?zhǔn)授予專(zhuān)利權(quán),以保障發(fā)明者的權(quán)益。
權(quán)利要求
1.一種移動(dòng)數(shù)據(jù)庫(kù)中移動(dòng)主機(jī)上跨節(jié)點(diǎn)約束的優(yōu)化檢查方法,包括用戶(hù)通過(guò)移動(dòng)主機(jī)上的嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)EDBMS對(duì)嵌入式數(shù)據(jù)庫(kù)EDB做修改操作;對(duì)這個(gè)修改操作進(jìn)行約束判斷,以決定跳過(guò)完整性約束檢查還是需要進(jìn)行完整性約束檢查;檢查該修改操作的關(guān)系中是否包含非本地關(guān)系,以決定按原有的完整性約束檢查機(jī)制檢查還是進(jìn)行蘊(yùn)含式復(fù)雜度計(jì)算;蘊(yùn)含式復(fù)雜度計(jì)算,以決定是否執(zhí)行LTC檢查;LTC檢查,即為本地檢查全局約束方法,如果滿(mǎn)足LTC條件,則全局約束得到滿(mǎn)足,如果LTC條件不能得到滿(mǎn)足,則也要求聯(lián)機(jī)進(jìn)行進(jìn)一步檢查;確定是否做聯(lián)機(jī)檢查;聯(lián)機(jī)約束檢查,如需要聯(lián)機(jī)約束檢查則聯(lián)機(jī)與同步服務(wù)器通信進(jìn)行全局約束檢查;記錄約束檢查的結(jié)果狀態(tài)。
2.如權(quán)利要求1所述的方法,還包括對(duì)用戶(hù)輸入的修改操作進(jìn)行約束判斷如果它所涉及的關(guān)系不包含完整性約束,則跳過(guò)完整性約束檢查,直接進(jìn)行修改操作,否則我們需要對(duì)其進(jìn)行進(jìn)一步檢查操作。
3.如權(quán)利要求1所述的方法,還包括檢查該修改操作的關(guān)系中是否包含非本地關(guān)系如果不存在,可以按照原有的完整性約束檢查機(jī)制進(jìn)行驗(yàn)證,如果存在非本地關(guān)系,則進(jìn)行蘊(yùn)含式復(fù)雜度計(jì)算。
4.如權(quán)利要求1所述的方法,還包括蘊(yùn)含式復(fù)雜度計(jì)算由于移動(dòng)系統(tǒng)計(jì)算資源有限,且不同移動(dòng)設(shè)備的計(jì)算能力不同,預(yù)先根據(jù)系統(tǒng)資源配置設(shè)定系統(tǒng)承受值,如果這個(gè)蘊(yùn)含式復(fù)雜度超過(guò)了系統(tǒng)承受值,則要求聯(lián)機(jī)做全局完整性約束檢查;如果在系統(tǒng)承受范圍之內(nèi),則執(zhí)行LTC檢查;如果滿(mǎn)足LTC條件,則全局約束得到滿(mǎn)足;如果LTC條件不能得到滿(mǎn)足,則也要求聯(lián)機(jī)進(jìn)行進(jìn)一步檢查。
5.如權(quán)利要求1所述的方法,還包括LTC檢查允許一個(gè)全局約束可以跨越了一個(gè)或多個(gè)移動(dòng)數(shù)據(jù)庫(kù)的結(jié)點(diǎn)以及中央數(shù)據(jù)庫(kù)結(jié)點(diǎn),但我們只在一個(gè)移動(dòng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上通過(guò)存取本地?cái)?shù)據(jù)及這個(gè)全局的約束信息就能夠測(cè)試一致性是否滿(mǎn)足,這個(gè)方法生成一個(gè)本地條件——如果本地?cái)?shù)據(jù)滿(mǎn)足這個(gè)條件,那么全局約束就會(huì)被滿(mǎn)足,如果不能滿(mǎn)足,則需要在移動(dòng)節(jié)點(diǎn)重新聯(lián)機(jī)時(shí),進(jìn)一步執(zhí)行約束檢查。
6.如權(quán)利要求1所述的方法,還包括確定是否做聯(lián)機(jī)約束檢查通過(guò)計(jì)算蘊(yùn)含式復(fù)雜度,判斷蘊(yùn)含式復(fù)雜度是否小于移動(dòng)系統(tǒng)承受度設(shè)定值,如果小于,可根據(jù)系統(tǒng)特點(diǎn)確定是否做聯(lián)機(jī)檢查;通過(guò)執(zhí)行LTC檢查,如本地?cái)?shù)據(jù)不能確定滿(mǎn)足全局約束,可根據(jù)系統(tǒng)特點(diǎn)確定是否做聯(lián)機(jī)檢查。
7.如權(quán)利要求6所述的方法,還包括聯(lián)機(jī)約束檢查若需要做聯(lián)機(jī)約束檢查,則作連接同步操作,然后按傳統(tǒng)方法進(jìn)行進(jìn)一步的驗(yàn)證。
8.如權(quán)利要求1所述的方法,還包括記錄約束檢查的結(jié)果狀態(tài),約束檢查過(guò)程結(jié)束,根據(jù)以上幾點(diǎn)及聯(lián)機(jī)檢查的結(jié)果,有以下幾種約束檢查的結(jié)果狀態(tài)狀態(tài)1使用原有檢查機(jī)制,執(zhí)行本地檢查,滿(mǎn)足完整性約束;狀態(tài)2使用原有檢查機(jī)制,執(zhí)行本地檢查,不滿(mǎn)足完整性約束;狀態(tài)3執(zhí)行LTC本地檢查,滿(mǎn)足完整性約束;狀態(tài)4本地未能檢查出完整性約束,也不能即時(shí)進(jìn)行執(zhí)行聯(lián)機(jī)檢查;狀態(tài)5本地未能檢查出完整性約束,聯(lián)機(jī)但不成功;狀態(tài)6本地未能檢查出完整性約束,聯(lián)機(jī)成功,檢查得知滿(mǎn)足完整性約束;狀態(tài)7本地未能檢查出完整性約束,聯(lián)機(jī)成功,檢查得知不滿(mǎn)足完整性約束。
全文摘要
本技術(shù)涉及在移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)中的移動(dòng)主機(jī)上的跨節(jié)點(diǎn)約束的一種優(yōu)化檢查方法,尤其涉及移動(dòng)數(shù)據(jù)庫(kù)在斷接狀態(tài)(包括主動(dòng)和被動(dòng)斷接狀態(tài))下,在一個(gè)移動(dòng)主機(jī)節(jié)點(diǎn)上,只利用本地?cái)?shù)據(jù)及全局約束信息,生成一個(gè)本地條件,僅通過(guò)驗(yàn)證本地?cái)?shù)據(jù)是否滿(mǎn)足這個(gè)本地條件來(lái)檢查全局完整性約束的方法。該方法能夠極大的提高移動(dòng)數(shù)據(jù)庫(kù)中完整性約束檢查的效率。
文檔編號(hào)G06F17/30GK1862531SQ20051006926
公開(kāi)日2006年11月15日 申請(qǐng)日期2005年5月13日 優(yōu)先權(quán)日2005年5月13日
發(fā)明者蔣寧 申請(qǐng)人:蔣寧
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
垦利县| 申扎县| 阳东县| 泽普县| 连江县| 永靖县| 卢龙县| 和龙市| 太和县| 五莲县| 腾冲县| 东明县| 剑川县| 武鸣县| 汕尾市| 高邑县| 铜陵市| 鲁甸县| 江山市| 旅游| 友谊县| 砀山县| 赞皇县| 象州县| 泸州市| 同德县| 吉首市| 诸暨市| 金平| 辽源市| 大姚县| 寻甸| 子长县| 阿克苏市| 新宁县| 贵定县| 宁乡县| 尼木县| 淳化县| 甘谷县| 久治县|