嵌入式移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)查詢?cè)O(shè)計(jì)
引 言
移動(dòng)數(shù)據(jù)庫(kù)的應(yīng)用大多嵌入到諸如掌上電腦、PDA等移動(dòng)通信設(shè)備中,屬于移動(dòng)環(huán)境下的分布式數(shù)據(jù)庫(kù)。移動(dòng)計(jì)算是隨著移動(dòng)通信、互聯(lián)網(wǎng)、數(shù)據(jù)庫(kù)、分布式計(jì)算等技術(shù)的發(fā)展而興起的新技術(shù)。移動(dòng)計(jì)算技術(shù)將使計(jì)算機(jī)或其他信息智能終端設(shè)備,在無線環(huán)境下實(shí)現(xiàn)數(shù)據(jù)傳輸及資源共享。它的作用是,與中央信息系統(tǒng)相互作用,分擔(dān)中央信息系統(tǒng)的計(jì)算壓力,將有用、準(zhǔn)確、及時(shí)的信息提供給任何時(shí)間、任何地點(diǎn)的任何客戶。移動(dòng)計(jì)算環(huán)境比傳統(tǒng)的
計(jì)算環(huán)境更為復(fù)雜和靈活,具有移動(dòng)性、低帶寬、頻繁斷接性、網(wǎng)絡(luò)通信的非對(duì)稱性、電源能力的有限性等特點(diǎn),這使得傳統(tǒng)分布式數(shù)據(jù)庫(kù)中的方法和技術(shù)不能直接應(yīng)用于移動(dòng)數(shù)據(jù)庫(kù)。
根據(jù)嵌入式移動(dòng)數(shù)據(jù)庫(kù)自身所具有的特點(diǎn),采用與普通數(shù)據(jù)庫(kù)不同或更優(yōu)的查詢策略變得尤為重要。本文介紹了位置相關(guān)查詢優(yōu)化和數(shù)據(jù)廣播兩種普遍用于移動(dòng)數(shù)據(jù)庫(kù)查詢的方法,結(jié)合移動(dòng)數(shù)據(jù)庫(kù)中的緩存技術(shù),分別從合理分配嵌入式移動(dòng)數(shù)據(jù)庫(kù)資源和在一定程度上解決移動(dòng)數(shù)據(jù)庫(kù)的斷接問題這兩點(diǎn),實(shí)現(xiàn)嵌入式移動(dòng)數(shù)據(jù)庫(kù)的查詢優(yōu)化。
1 位置相關(guān)查詢優(yōu)化
1.1 嵌入式移動(dòng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)體系及特點(diǎn)
在傳統(tǒng)的分布式計(jì)算系統(tǒng)中,各個(gè)計(jì)算節(jié)點(diǎn)之間是通過固定網(wǎng)絡(luò)連接并保持網(wǎng)絡(luò)的持續(xù)連接性的,而移動(dòng)計(jì)算系統(tǒng)改變了這種假設(shè)條件。移動(dòng)計(jì)算系統(tǒng)是固定節(jié)點(diǎn)和移動(dòng)節(jié)點(diǎn)構(gòu)成的分布計(jì)算系統(tǒng)。
移動(dòng)計(jì)算的網(wǎng)絡(luò)環(huán)境具有自身的特點(diǎn):移動(dòng)性、斷接性、帶寬多樣性、可伸縮性、弱可靠性、網(wǎng)絡(luò)通信的非對(duì)稱性、電源能力的局限性等。
移動(dòng)數(shù)據(jù)庫(kù)的計(jì)算環(huán)境是傳統(tǒng)分布式數(shù)據(jù)庫(kù)的擴(kuò)展,可以看作客戶端與固定服務(wù)器節(jié)點(diǎn)動(dòng)態(tài)連接的分布式系統(tǒng),因此移動(dòng)計(jì)算環(huán)境中的數(shù)據(jù)庫(kù)管理系統(tǒng)是一種動(dòng)態(tài)分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。由于移動(dòng)數(shù)據(jù)庫(kù)在移動(dòng)計(jì)算的環(huán)境下應(yīng)用在嵌入式操作系統(tǒng)之上,所以它具有微小內(nèi)核結(jié)構(gòu)、支持標(biāo)準(zhǔn)SQL、事務(wù)管理功能、完善的數(shù)據(jù)同步機(jī)制、支持多種連接協(xié)議、完備的數(shù)據(jù)庫(kù)管理功能,以及支持多種嵌入式操作系統(tǒng)的特點(diǎn)和功能需求。
1.2 位置相關(guān)查詢優(yōu)化方式
在移動(dòng)數(shù)據(jù)庫(kù)中,存在著與位置相關(guān)信息的查詢及更新。查詢通常是與位置相關(guān)的,即使是同一個(gè)問題,在不同的地方所得查詢結(jié)果是不同的。
位置相關(guān)查詢是查詢條件中隱含有查詢者所在位置信息的查詢。其查詢處理不同于普通數(shù)據(jù)庫(kù)查詢處理,它要將移動(dòng)用戶的位置信息加入到查詢條件中,并附加必要的語(yǔ)義信息(如“最近的”等)。類似的位置相關(guān)查詢是一類很重要的查詢問題,例如司機(jī)查詢最近的加油站、救護(hù)車查詢最近的醫(yī)院、旅客查詢最近的飯店等。一般可以把這類地址相關(guān)查詢表示為:
其中:“x1,x2,.,xn”表示移動(dòng)用戶對(duì)象;Users表示所有移動(dòng)用戶的集合;loc表示記錄移動(dòng)用戶最近報(bào)告的地址(無線單元的ID);C(11,12,.,ln)是關(guān)于地址“11,12,.1n”的n元約束條件;W(x1,x2,.,xn)是關(guān)于對(duì)象“x1,x2,.,xn”非地址屬性的n元約束條件。
2 數(shù)據(jù)廣播
2.1 數(shù)據(jù)廣播的優(yōu)點(diǎn)
在一個(gè)無線單元內(nèi),從服務(wù)器到移動(dòng)客戶機(jī)的下行通信帶寬一般要遠(yuǎn)大于從移動(dòng)客戶機(jī)到服務(wù)器的上行通信帶寬,而且移動(dòng)客戶機(jī)從服務(wù)器接收數(shù)據(jù)的開銷也遠(yuǎn)小于發(fā)送開銷,因此在大部分場(chǎng)合中,即使是處于斷接狀態(tài)的移動(dòng)客戶機(jī)也可以選擇接收從服務(wù)器發(fā)送的下行廣播信息。于是,可以利用這種網(wǎng)絡(luò)的非對(duì)稱性,由數(shù)據(jù)庫(kù)服務(wù)器把大多數(shù)用戶頻繁訪問的數(shù)據(jù)(即熱點(diǎn)數(shù)據(jù))組織起來,以周期性的廣播形式提供給移動(dòng)客戶機(jī)訪問,這種數(shù)據(jù)發(fā)布方式稱為“數(shù)據(jù)廣播”。
通俗地講,數(shù)據(jù)廣播是指在移動(dòng)計(jì)算環(huán)境中,利用移動(dòng)客戶機(jī)與服務(wù)器通信的不對(duì)稱性,以周期性廣播的形式向客戶機(jī)發(fā)送數(shù)據(jù)。其最大的優(yōu)點(diǎn)是,廣播開銷不依賴移動(dòng)用戶數(shù)量的變化而變化,借助數(shù)據(jù)廣播,可以在一定程度上解決移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)的斷接問題。數(shù)據(jù)廣播的研究可分為服務(wù)器和移動(dòng)客戶機(jī)兩個(gè)方面:服務(wù)器主要考慮如何組織廣播數(shù)據(jù),即數(shù)據(jù)廣播的調(diào)度;移動(dòng)節(jié)點(diǎn)主要考慮如何利用本地緩存進(jìn)一步減少查詢廣播數(shù)據(jù)的時(shí)間。
它具有以下優(yōu)點(diǎn):
?、俸芎玫目缮炜s性。因?yàn)榉?wù)器廣播數(shù)據(jù)的開銷與接收廣播的客戶機(jī)數(shù)是無關(guān)的,因此它可以以很小的代價(jià)支持大量移動(dòng)客戶機(jī)同時(shí)訪問數(shù)據(jù)。
?、谝苿?dòng)客戶機(jī)可以不需要數(shù)據(jù)緩存。
?、奂词乖跀嘟訒r(shí)也允許移動(dòng)客戶機(jī)訪問到最新數(shù)據(jù)。
?、芤苿?dòng)客戶機(jī)不再需要預(yù)測(cè)未來的數(shù)據(jù)請(qǐng)求。
數(shù)據(jù)廣播是解決移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)用戶規(guī)模龐大及網(wǎng)絡(luò)通信非對(duì)稱問題的一種有效辦法。衡量數(shù)據(jù)廣播調(diào)度算法好壞的參數(shù)主要有2個(gè):訪問時(shí)間和調(diào)諧時(shí)間。
2.2 數(shù)據(jù)廣播的標(biāo)準(zhǔn)
數(shù)據(jù)的傳輸是基于MPEG一2 TS流的。針對(duì)不同的應(yīng)用類型,數(shù)據(jù)廣播定義了以下6種方式:數(shù)據(jù)管道、數(shù)據(jù)流、多協(xié)議封裝、數(shù)據(jù)傳送帶、對(duì)象傳送帶和用戶自定義的服務(wù)。
如圖1所示,數(shù)據(jù)廣播標(biāo)準(zhǔn)針對(duì)不同的應(yīng)用類型規(guī)定了不同的服務(wù)級(jí)別。數(shù)據(jù)管道標(biāo)準(zhǔn)對(duì)如何從MPEG一2 TS流中恢復(fù)數(shù)據(jù)并沒有給出具體的細(xì)節(jié),它只是簡(jiǎn)要描述了如何將數(shù)據(jù)放入MPEG一2 TS流的分組中去。數(shù)據(jù)流標(biāo)準(zhǔn)增加了更多的功能,特別是定時(shí)。這使得進(jìn)行異步的數(shù)據(jù)廣播、被同步的數(shù)據(jù)廣播以及同步的數(shù)據(jù)廣播變得可能。多協(xié)議封裝、數(shù)據(jù)傳送帶、對(duì)象傳送帶標(biāo)準(zhǔn)都是建立在使用MPEG一2的DSM—CC幀結(jié)構(gòu)基礎(chǔ)上的。它是基于MPEG一2ISO/IEC 13818—1中定義的MPEG一2中的私有部分。數(shù)據(jù)廣播增加了一些特定的信息以使該幀結(jié)構(gòu)在DVB環(huán)境中工作,特別是同業(yè)務(wù)信息(SI)的結(jié)合。
3 復(fù)制與數(shù)據(jù)查詢緩存機(jī)制
復(fù)制是在多個(gè)移動(dòng)節(jié)點(diǎn)上維護(hù)數(shù)據(jù)的備份,包括服務(wù)器之間的復(fù)制和移動(dòng)計(jì)算機(jī)上保存數(shù)據(jù)庫(kù)的復(fù)制。一般前者稱為“復(fù)制”,后者稱為“緩存”。復(fù)制的主要目的是提高分布式數(shù)據(jù)庫(kù)系統(tǒng)的可用性、可靠性和訪問性能。首要的問題是如何維護(hù)多個(gè)復(fù)制節(jié)點(diǎn)上數(shù)據(jù)狀態(tài)的一致性。按照維護(hù)復(fù)制一致性的方式來劃分,現(xiàn)有的復(fù)制協(xié)議可以分為嚴(yán)格一致協(xié)議和弱一致協(xié)議兩種。嚴(yán)格一致協(xié)議要求任何時(shí)刻所有數(shù)據(jù)庫(kù)的復(fù)制都是一致的;而弱一致協(xié)議允許各個(gè)復(fù)制之間存在暫時(shí)的不一致,但這種不一致總能夠保持在一定的界限之內(nèi),而且總是能夠趨于一致(收斂性)。緩存是介于應(yīng)用程序和物理數(shù)據(jù)源之間,其作用是降低應(yīng)用程序?qū)ξ锢頂?shù)據(jù)源訪問的頻率,從而提高應(yīng)用的運(yùn)行性能。緩存內(nèi)的數(shù)據(jù)是對(duì)物理數(shù)據(jù)源中數(shù)據(jù)的復(fù)制,應(yīng)用程序在運(yùn)行時(shí)從緩存中讀寫數(shù)據(jù),特定的時(shí)刻或事件會(huì)同步緩存和物理數(shù)據(jù)源的數(shù)據(jù)。移動(dòng)客戶機(jī)與服務(wù)器之間的無線網(wǎng)絡(luò)帶寬有限,而緩存技術(shù)可以有效地減少通信量,從而避免網(wǎng)絡(luò)的擁塞。
傳統(tǒng)的緩存技術(shù)要求移動(dòng)客戶機(jī)保持與服務(wù)器的連接,這樣才能維護(hù)緩存的一致性,而采用移動(dòng)計(jì)算模型的嵌入式移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)與傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)則不同。嵌入式移動(dòng)數(shù)據(jù)庫(kù)的一個(gè)顯著特點(diǎn)是,移動(dòng)終端之間以及與服務(wù)器之間的連接是一種弱連接,即低帶寬、長(zhǎng)延遲、不穩(wěn)定和經(jīng)常性的斷開。在移動(dòng)計(jì)算環(huán)境中.若采用傳統(tǒng)的方法,由于移動(dòng)客戶機(jī)經(jīng)常斷接,斷接期間客戶機(jī)將無法接收到緩存失效信息,因此在重新聯(lián)機(jī)時(shí)必須將整個(gè)緩存作廢,既使緩存失去了其應(yīng)有的作用,又會(huì)嚴(yán)重浪費(fèi)有限的無線網(wǎng)絡(luò)帶寬。
而為了能在這種環(huán)境下對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新操作,嵌入式系統(tǒng)必須提供數(shù)據(jù)復(fù)制與同步功能,使得嵌入式移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)可以隨時(shí)隨地從其他數(shù)據(jù)庫(kù)系統(tǒng)中獲得準(zhǔn)確的、最新的、有用的、一致的數(shù)據(jù)?,F(xiàn)在普遍采用樂觀復(fù).制方法(optimistic replication或lazy replication)允許用戶對(duì)本地緩存上的數(shù)據(jù)副本進(jìn)行操作。待網(wǎng)絡(luò)重新連接后再與數(shù)據(jù)庫(kù)服務(wù)器或其他終端交換數(shù)據(jù)修改信息,并通過沖突檢測(cè)和協(xié)調(diào)來恢復(fù)數(shù)據(jù)的一致性。
4 嵌入式移動(dòng)數(shù)據(jù)庫(kù)優(yōu)化查詢方法
移動(dòng)查詢優(yōu)化技術(shù)是指在傳統(tǒng)分布式數(shù)據(jù)庫(kù)查詢優(yōu)化技術(shù)的基礎(chǔ)上,利用多種方法消除帶寬多樣性、斷接等因素造成的影響,使查詢引擎能夠根據(jù)當(dāng)前可用網(wǎng)絡(luò)條件采取恰當(dāng)?shù)膬?yōu)化策略;同時(shí),針對(duì)移動(dòng)計(jì)算機(jī)有限的電源能力,合理地組織本地?cái)?shù)據(jù)庫(kù)管理、遠(yuǎn)程數(shù)據(jù)庫(kù)訪問等耗電較多的操作,達(dá)到節(jié)能目的并延長(zhǎng)關(guān)鍵數(shù)據(jù)的可用時(shí)間。
研究表明,位置相關(guān)查詢優(yōu)化方法在一定程度上優(yōu)化了嵌入式移動(dòng)數(shù)據(jù)庫(kù)資源問題,而在數(shù)據(jù)發(fā)送方式上,數(shù)據(jù)廣播將客戶要經(jīng)常訪問的、熱點(diǎn)數(shù)據(jù)以周期性廣播的方式發(fā)送給移動(dòng)客戶機(jī),即使是客戶機(jī)處于斷接的情況下,同樣可以收到服務(wù)器廣播的數(shù)據(jù)。通過合理地分配資源,結(jié)合數(shù)據(jù)庫(kù)緩存技術(shù),利用數(shù)據(jù)廣播的優(yōu)點(diǎn),這幾種方法較好地解決了移動(dòng)數(shù)據(jù)庫(kù)的斷接問題,從而實(shí)現(xiàn)嵌入式移動(dòng)數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢優(yōu)化。
作為解決移動(dòng)數(shù)據(jù)庫(kù)斷接問題的關(guān)鍵技術(shù),緩存技術(shù)在傳統(tǒng)的分布式數(shù)據(jù)庫(kù)中得到廣泛應(yīng)用。它通過在客戶機(jī)上緩存部分?jǐn)?shù)據(jù),達(dá)到減少訪問數(shù)據(jù)庫(kù)服務(wù)器的目的,從而提高性能。在嵌入式移動(dòng)數(shù)據(jù)庫(kù)中,在客戶機(jī)斷接的情況下,用戶可以從客戶緩存中查詢到全部或部分?jǐn)?shù)據(jù)。斷接性是移動(dòng)數(shù)據(jù)庫(kù)環(huán)境眾多特點(diǎn)中很重要的一條,采用復(fù)制/緩存技術(shù)是解決移動(dòng)數(shù)據(jù)庫(kù)斷接問題的一種有效途徑。移動(dòng)客戶機(jī)上的數(shù)據(jù)庫(kù)容量有限,并且在實(shí)際運(yùn)行時(shí)會(huì)發(fā)生變化,通過對(duì)數(shù)據(jù)庫(kù)資源的更優(yōu)化分配,可使在處理數(shù)據(jù)時(shí),不再使用或優(yōu)先選擇使用頻率較低的關(guān)系和數(shù)據(jù)。通過使用這些關(guān)系和數(shù)據(jù),降低了對(duì)系統(tǒng)資源的需求,從而實(shí)現(xiàn)嵌入式移動(dòng)數(shù)據(jù)庫(kù)查詢優(yōu)化。
結(jié) 語(yǔ)
現(xiàn)今,隨著嵌入式移動(dòng)技術(shù)的不斷發(fā)展,在其各個(gè)領(lǐng)域內(nèi)各項(xiàng)技術(shù)難關(guān)不斷被突破。其中,嵌入式移動(dòng)數(shù)據(jù)庫(kù)技術(shù)發(fā)展更為迅速,而人們對(duì)嵌入式移動(dòng)數(shù)據(jù)庫(kù)產(chǎn)品的需求也是越來越迫切,要求也越來越高。但逐漸增多的產(chǎn)品也暴露出了嵌入式移動(dòng)數(shù)據(jù)庫(kù)技術(shù)依然存在的各種缺憾。然而,作為國(guó)內(nèi)剛起步的新興產(chǎn)業(yè),對(duì)嵌入式移動(dòng)數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域的研究,必將吸引更多學(xué)者的目光。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論