亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

XML路徑表達式的查詢優(yōu)化技術(shù)

  • 相關(guān)推薦

XML路徑表達式的查詢優(yōu)化技術(shù)

  摘要:XML查詢語言的共同特點是利用路徑表達式來導(dǎo)航XML文檔的查詢并返回指定路徑所能訪問到的節(jié)點集,因此路徑表達式的查詢優(yōu)化是XML數(shù)據(jù)庫查詢優(yōu)化的關(guān)鍵,本文詳細分析了當前路徑表達式查詢的幾種優(yōu)化技術(shù),指出了它們要解決的關(guān)鍵問題和主要技術(shù)特點。
  
  1 基本概念
  
  1.1 XML數(shù)據(jù)模型和XML數(shù)據(jù)模式
  一個XML文檔樹是一個有序標簽樹(如果考慮元素之間的應(yīng)用關(guān)系則以XML文檔的基本結(jié)構(gòu)為圖),每個節(jié)點與一個元素或值(文本)相對應(yīng),邊表示元素和子元素(或值)之間的嵌套關(guān)系。XML文檔的數(shù)據(jù)模式是一個有向圖,它為XML數(shù)據(jù)提供完整性約束。
  1.2 XML數(shù)據(jù)的編碼方法
  到目前為止處理路徑表達式查詢有兩種方法:一種是基于樹遍歷的方法,另一種不遍歷文檔樹就可以快速決定節(jié)點之間結(jié)構(gòu)關(guān)系的方法,元素之間結(jié)構(gòu)關(guān)系的確定主要依賴于有效的XML節(jié)點編碼方法。
  1.2.1 基于區(qū)域的編碼方案
  目前,最常用的編碼方法是區(qū)域編碼方法,最先使用區(qū)域編碼確定樹節(jié)點之間的結(jié)構(gòu)關(guān)系的是Dietz。它給每個節(jié)點賦予一個(pre,post)編碼,其中,pre是節(jié)點的前序遍歷值,post是節(jié)點的后序遍歷值,對于任意兩個不同的節(jié)點x和y,x是y的一個祖先當且僅當x.pre  文獻。給每個節(jié)點賦予一個(start,end)編碼,一個節(jié)點的start和end值是該元素的開始和結(jié)尾的絕對物理或邏輯位移,如果一個節(jié)點的編碼所覆蓋的區(qū)域被另一個節(jié)點的編碼所覆蓋的區(qū)域完全包含,則這個節(jié)點是另一個節(jié)點的后代節(jié)點。為適用于多個文檔查詢和父子關(guān)系的確定,還可以將元素的編碼擴展為(D,cid,start,end,levd),Docid是文檔的標識符,Level是節(jié)點在文檔樹中的層數(shù)。文獻提出一種類似于區(qū)域編碼方案——擴展的前序和后代范圍編碼,其目是的為了支持數(shù)據(jù)的動態(tài)插入和刪除,每個節(jié)點被賦予一個(order,size),order是節(jié)點的前序遍歷序號。size表示節(jié)點所覆蓋的范圍,它可以是任意一個大于該節(jié)點后代節(jié)點總數(shù)的整數(shù)值。
  除了區(qū)域編碼以外還有另外一種相對區(qū)域編碼方,每個節(jié)點被賦予一個到其父節(jié)點的相對位移。這種編碼可以轉(zhuǎn)換成區(qū)域編碼,其主要缺點是為了確定節(jié)點的絕對位置查詢代價沿著查詢路徑從祖先節(jié)點到被查詢節(jié)點逐步增加。
  1.2.2 基于前綴的編碼方法
  不同于區(qū)域編碼方法,基于前綴的編碼方式保存路徑信息。在這種編碼方法中祖先后代關(guān)系和前綴子串的包含關(guān)系相對應(yīng)。文獻提出了K-ary編碼,該方法通過增加虛節(jié)點把文檔看成一個完全k分樹,根據(jù)樹的層次遍歷順序給樹中的節(jié)點編碼,在這種編碼方法中節(jié)點的編碼帶有文檔的結(jié)構(gòu)信息。類似于K-ary編碼,文獻提出了一種特殊的PBiTree編碼,這種編碼方案是通過增加虛擬節(jié)點將文檔樹嵌入到一個完全二叉樹中。這種編碼的優(yōu)點是可以利用完全二叉樹的優(yōu)良特性來計算節(jié)點間的結(jié)構(gòu)關(guān)系。PBiTree中的虛擬節(jié)點起著—個占位符的作用,這樣有利于數(shù)據(jù)的動態(tài)更新,同時它們對查詢性能也有一定的影響。
  1.3 XML數(shù)據(jù)索引
  為了提高查詢的性能,許多專家和學(xué)者都致力于索引的研究與開發(fā)。目前提出的索引有兩種:一種是基于結(jié)構(gòu)連接的索引;另一種是基于路徑的索引;诮Y(jié)構(gòu)連接的索引M首先將文檔樹中的所有節(jié)點以的形式進行分解后存儲在多張表中。這樣,當處理查詢//E1/E2/……/En時,對包含Ei(i=-1,…,m)的表按次序要進行多次連接操作得到查詢結(jié)果;诼窂降乃饕齽t是以文檔樹為基本數(shù)據(jù)結(jié)構(gòu),按照路徑將樹中的節(jié)點進行拆分、合并等操作,索引結(jié)構(gòu)仍然是一個樹,使用這種索引處理查詢//El/E2/……/En時,基本上要遍歷整個索引樹才能得到結(jié)果。文獻提出了一種自適應(yīng)的路徑索引結(jié)構(gòu),這種索引利用頻繁使用的路徑來改善查詢性能,并且這種索引可以隨著查詢工作量的不同而動態(tài)改變,從而有效地縮小了索引文件。
  2 路徑表達式的查詢處理方式
  
  2.1 樹遍歷方法
  最樸素的路徑訪問方法是樹遍歷的方法:一般采用自頂向下的方式遍歷文檔樹,使用該方法進行查詢時需要遍歷某元素通往葉子節(jié)點的所有可能路徑。為了減少樹遍歷的代價引入自底向上的方法,首先查找符合謂詞條件的所有原子節(jié)點,然后再尋找它們的父節(jié)點。這種方法一般情況下比較簡單、耗時較少。但對于符合謂詞條件的節(jié)點數(shù)目很大而符合路徑表達式的路徑很少時,這種遍歷方式的代價可能會高于自頂向下方式。一種折中的方法是同時按自頂向下和自底向上兩種方法進行遍歷,最后在路徑的某個中間位置匯合,從而得到查詢結(jié)果。當路徑上某節(jié)點的扇人度(在文檔中的)很大而符合謂詞條件的原子節(jié)點很少時,該方法可以達到最優(yōu)。在這種方法中優(yōu)化路徑表達式查詢的一個中心思想是設(shè)法縮小查詢范圍。使得不需要遍歷整個樹就可以獲得符合條件的查詢結(jié)果。
  2.2 路徑分解法
  這一種方法是目前用的比較多的,它的基本思路是將復(fù)雜的查詢路徑分解成簡單路徑,簡單路徑可以是由一個元素、一個謂詞條件或一個元素加一個謂詞條件,還可以是由兩個元素組成的路徑。首先計算這些簡單路徑表達式,再將每個簡單路徑表達式的計算結(jié)果連接起來。其本質(zhì)確定節(jié)點間的結(jié)構(gòu)關(guān)系(祖先后代或父子關(guān)系),因此這種操作叫結(jié)構(gòu)連接。像關(guān)系數(shù)據(jù)庫中的連接運算一樣,結(jié)構(gòu)連接操作的代價非常昂貴,結(jié)構(gòu)連接又是查詢處理的核心操作,因此在這種查詢處理模式中查詢優(yōu)化的關(guān)鍵開發(fā)高效的結(jié)構(gòu)連接算法,同時結(jié)構(gòu)連接的順序也極大地影響著結(jié)構(gòu)連接運算的性能。
  
  3 路徑表達查詢優(yōu)化的一般方法
  
  3.1 路徑表達式的重寫優(yōu)化
  路徑表達式重寫優(yōu)化的基本思想將復(fù)雜的、高代價的查詢路徑表達式轉(zhuǎn)換為簡單的、低代價的等價路徑表達式。查詢重寫技術(shù)的一般特征可以概括如下:①重寫優(yōu)化發(fā)生在查詢解析之后查詢計劃生成之前;②重寫優(yōu)化是將一個查詢轉(zhuǎn)換為一個等價的查詢;③要使用啟發(fā)式方法選擇查詢轉(zhuǎn)換方法,被選擇的查詢轉(zhuǎn)換方法能改善大多數(shù)查詢的執(zhí)行性能;④查詢重寫的依據(jù)通常是查詢本身獲得信息、完整性約束或數(shù)據(jù)模式,而不考慮數(shù)據(jù)以及數(shù)據(jù)的存儲方式和數(shù)據(jù)的統(tǒng)計信息。
  3.1.1 根據(jù)結(jié)構(gòu)約束刪除冗余
  最先研究路徑表達式最小化問題是和,文獻中只對不包括祖先后代邊“//”的簡單路徑表達式進行最小化,而文獻研究了不包含*的路徑表達式的最小化問題。其基本思想是將查詢中的路徑表示為查詢模式樹,根據(jù)給定的結(jié)構(gòu)約束,逐步查詢模式樹中冗余路徑節(jié)點或冗余謂詞。
  文獻對包含全部操作符{/,//[],*}的路徑表達式的最小化進行了研究,算法的基本思想是遞歸地從原模式樹中查找最小子模式并連接它們,證明了這是一個NP完全問題,同時,它還指出:在對路徑表達式分支個數(shù)和形狀加以一定限制的情況下。表達式最小化算法的復(fù)雜度可以達到多項式級。很顯然,在實際查詢中用戶不可能將查詢限制成一種特定形式的路徑表達式。

  3.1.2 刪除路徑表達式中的固有冗余
  文獻中提出了兩種優(yōu)化策略:縮短路徑策略和補路徑策略?s短路徑法是試圖用等價相對路徑取代絕對路徑,縮短路徑表達式本身,從而降低查詢的代價。這種方法利用元素的唯一訪問路徑、唯一父元素、關(guān)鍵祖先等幾個概念把絕對路徑表達式轉(zhuǎn)換為相對路徑表達式,這樣路徑表達式的查詢匹配就不再從根元素開始,從而縮短了路徑表達式查詢時間。如假定某查詢的絕對路徑表達式EIClE2C2E3…CnEn,如果UAP(E2)=C1E2,則可以用C2E3…CnEn代替EIClE2C2E3…CnEn。這里的關(guān)鍵問題確定唯一訪問路徑、唯一父元素和關(guān)鍵祖先。
  在補路徑法中定義了互補路徑,相對于某元素的互補路徑是等價的,這樣就可以用補路徑替換原查詢。其基本思想是把用戶書寫的復(fù)雜的、代價高的查詢路徑表達式用一些簡單的、查詢代價低的互補路徑表達式來替代。這種策略的目的是減少連接次數(shù)和連接結(jié)果集的大小,因此怎樣確定查詢路徑的互補路徑并進行代價估算成為其關(guān)鍵問題。
  3.1.3 刪除非冗余的通配符步
  當在某條路徑中一個元素名未知或無關(guān)緊要時通常采用通配符。進行路徑匹配時,通配符需要和當前節(jié)點的所有子節(jié)點(或后代節(jié)點)匹配,由此可見,通配符的計算代價相當高。文獻中提出消除路徑表達式中的非冗余的通配符步,從而降低路徑表達式的計算代價。為了消除路徑中的通配符步,引入一個layer∞ds重寫有通配符的路徑表達式查詢,在形如child::*/…/child*/ehild1:的查詢中,layer axis可以用來替代所有路徑通配步,從而把查詢等價地表示為Li::t1。這樣一方面縮短了路徑表達式,另一方面使得系統(tǒng)僅僅加載與查詢相關(guān)的XML數(shù)據(jù),從而大大的優(yōu)化了查詢。
  3.2 基于樹遍歷的路徑查詢優(yōu)化
  基于樹遍歷的查詢優(yōu)化要使用路徑索引縮小搜索范圍,這種優(yōu)化方法的關(guān)鍵問題是要設(shè)計出有效合理的便于維護的路徑索引。DataGuides算得上是最早的路徑索引,也是路徑索引中最有影響力的代表。它采用了一種標簽路徑合并策略對文檔結(jié)構(gòu)進行縮減,DmGuides中的每個節(jié)點都有一個目標集。這個目標集記錄了通過這個標簽路徑可訪問到的數(shù)據(jù)節(jié)點,這樣執(zhí)行一個路徑查詢時只需要在Dataguides中查找該路徑,獲得的目標集即為滿足條件的查詢結(jié)果。當文檔的數(shù)據(jù)結(jié)構(gòu)比較規(guī)則時Dataguides能很好地縮減文檔的結(jié)構(gòu),從而極大地改善查詢的性能。
  文獻中提出了一種使用圖模式(Graph Schemas)縮小查詢范圍的方法。這里的圖模式也起著DataGuides的作用,但是它采用了合并同類邊的策略。圖模式中的節(jié)點叫狀態(tài),每個狀態(tài)都對應(yīng)一個狀態(tài)擴展,集即該狀態(tài)在文檔中所對應(yīng)的節(jié)點集。在此基礎(chǔ)上文檔提出了兩種查詢優(yōu)化策略:剪切查詢和使用狀態(tài)擴展集重寫查詢。剪切查詢是將查詢的搜索限制在僅與查詢結(jié)果有關(guān)的子樹上,后者則是將原查詢改寫為在圖模式上的查詢,兩種方法都使用非確定自動機為剪切工具。
  不同于以上兩種方式,文獻提出了一種新的路徑查詢方法,該方法將XML文檔中的文本數(shù)據(jù)抽取出來單獨存儲,這樣文檔樹僅由帶標簽的元素或?qū)傩越M成,這樣的結(jié)構(gòu)被叫做文檔的骨架(skeleton)。為了使大的文檔的骨架盡可能地放入內(nèi)存中。這個樹骨架進一步通過共享的公共子樹被壓縮,被壓縮的樹骨架的每個節(jié)點與未壓縮樹的一組節(jié)點相對應(yīng),他們之間的對應(yīng)關(guān)系用雙向相似關(guān)系表示。
  3.3 基于路徑分解的查詢優(yōu)化
  結(jié)構(gòu)連接是基于節(jié)點在NML文檔中的位置表示確定XML節(jié)點間的包含關(guān)系。給定一個祖先(或父)節(jié)點集合A和一個后代(或子)節(jié)點集合D,結(jié)構(gòu)連接操作的任務(wù)就是要用高效的方法找到所有的節(jié)點對(ai,di),其中ai是di的祖先(或父親),ai、di分別是A、D中的元素。A、D可能來自索引掃描也可能是某個計算的中間結(jié)果。結(jié)構(gòu)連接運算的代價非常昂貴,因此結(jié)構(gòu)連接算法的好壞直接影響著查詢的效率,同時結(jié)構(gòu)連接的順序也極大地影響著結(jié)構(gòu)連接運算的性能。
  3.3.1 結(jié)構(gòu)連接算法
  目前,已經(jīng)提出的結(jié)構(gòu)連接算法有兩種:排序合并[2,3,7,19]和劃分方法。排序合并法的主要特點是:①節(jié)點采用區(qū)域編碼確定節(jié)點間的結(jié)構(gòu)關(guān)系;②要求輸入的數(shù)據(jù)集有序或在數(shù)據(jù)集上建立索引;③為了快速定位某類節(jié)點,可以利用元素索引、路徑索引或值索引。文獻中提出了一種多謂詞合并連接算法(MP-MGJN),該算法需要多次掃描數(shù)據(jù)集;文獻中提出的ε-jion、εA-lion和κe-iion算法存在同樣的缺點。文獻提出了兩類算法:樹合并(Tree-Merge)算法和堆棧合并(stack-Tree)算法,前者是傳統(tǒng)數(shù)據(jù)庫合并連接的推廣,后者是一種基于堆棧的結(jié)構(gòu)連接的算法,通過內(nèi)存中保留一個棧結(jié)構(gòu)來達到對輸入數(shù)據(jù)的一次掃描的目標。文獻對Stack-Tree算法做了改進,利用附加的索引跳過不需要參加連接的節(jié)點。堆棧合并算法(stack-Tree)既可以應(yīng)用在XML的關(guān)系存儲系統(tǒng)中,也可以應(yīng)用在原生XML系統(tǒng)中。
  除了基于區(qū)域編碼的結(jié)構(gòu)連接算法,文獻目中還針對它提出的PBiTree編碼提出了基于劃分的結(jié)構(gòu)連接算法,其劃分策略有兩種:水平劃分和垂直劃分,分別按節(jié)點在樹中的高度和所在分支對數(shù)據(jù)集合的劃分,這種算法不要求輸入的數(shù)據(jù)有序或建立索引。結(jié)構(gòu)連接算法在一定程度上依賴于節(jié)點的編碼方法,目前普遍使用的編碼方法是區(qū)域編碼。由于使用區(qū)域編碼可以快速確定節(jié)點間的包含關(guān)系,開發(fā)高效基于區(qū)域編碼的結(jié)構(gòu)連接算法仍然是一個值得研究的課題。
  3.3.2 結(jié)構(gòu)連接的順序選擇
  在結(jié)構(gòu)連接中,無論采用什么樣的結(jié)構(gòu)連接算法,結(jié)構(gòu)連接的順序極大地影響著結(jié)構(gòu)連接運算的性能,文獻使用簡單的代價估算模型提出了5種結(jié)構(gòu)連接的順序選擇算法。其基本思想是使用動態(tài)規(guī)劃算法在整個解空間中搜索代價最小的連接計劃,當連接節(jié)點過多時解空間會發(fā)生組合爆炸,使用動態(tài)規(guī)劃算法進行搜索將會變得非常緩慢。為了加速搜索速度,在動態(tài)規(guī)劃算法中引入了各種不同的啟發(fā)式規(guī)則,這雖然極大地提高了搜索速度卻冒著一些可能丟失最優(yōu)解的風(fēng)險。結(jié)構(gòu)連接順序選擇的目標是用較小的代價獲得最優(yōu)的連接計劃,要實現(xiàn)這個目標還有待于新的結(jié)構(gòu)連接順序選擇算法的提出。
  
  4 總結(jié)
  
  XML路徑表達式查詢優(yōu)化技術(shù)是XML查詢優(yōu)化的關(guān)鍵技術(shù)。文中概括了3種優(yōu)化技術(shù)。重寫優(yōu)化技術(shù)在查詢解析之后查詢計劃生成之前使用,其目的是消除路徑中的冗余步,把長的查詢路徑變?yōu)榈葍r的短路徑,一方面在基于路徑分解查詢中減少連接次數(shù)和中間連接結(jié)果,另一方面在樹遍歷方法中也可以減少掃描的節(jié)點數(shù),從而極大地優(yōu)化了查詢性能;跇浔闅v的查詢優(yōu)化和基于路徑分解的查詢優(yōu)化則是在查詢計劃生成階段使用的。采用什么樣的優(yōu)化技術(shù)主要取決于路徑表達式的處理方法。節(jié)點編碼技術(shù)和結(jié)構(gòu)連接緊密相關(guān),索引技術(shù)也是XML查詢優(yōu)化的關(guān)鍵技術(shù),在這些優(yōu)化技術(shù)中很少使用到XML的數(shù)據(jù)模式(DTD或Schame)。在查詢中合理有效地使用數(shù)據(jù)模式將會給查詢優(yōu)化帶來一片新的天地。

【XML路徑表達式的查詢優(yōu)化技術(shù)】相關(guān)文章:

影視公司并購重組的路徑與效應(yīng)08-21

民事審判錯案的國家救濟路徑04-29

論我國消費環(huán)境的優(yōu)化05-11

金融貿(mào)易結(jié)構(gòu)優(yōu)化研討05-30

企業(yè)法律風(fēng)險防范體系建立的原因及實現(xiàn)路徑08-06

教育供給側(cè)改革下大學(xué)英語教改路徑論文04-28

變電站接地網(wǎng)優(yōu)化設(shè)計08-24

稅制改革、優(yōu)化與稅收征管均衡發(fā)展06-01

商品期貨優(yōu)化投資組合的實證檢驗08-26

電視新聞傳播中三網(wǎng)融合的規(guī)制路徑論文04-12