版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、XML文件樹狀途徑查詢優(yōu)化研究摘要XL查詢優(yōu)化成為XL數據庫研究熱門,此中的布局毗連是其重要操縱。毗連挨次的選擇是XL查詢的焦點題目。本文提出在片斷途徑樹的底子上,提出了一種毗連及組合途徑表達式的計謀,該計謀是起首得到最優(yōu)化途徑序列,末了將最優(yōu)化序列組合成完備的查詢效果。關鍵詞XL;查詢優(yōu)化;途徑表達XQuery是由3訂定的,其目的是提供一種查詢語言,讓利用者可以從XL文檔中尋出所必要的資料。XQuery根本上包羅三個子句,在Fr語句中,利用者可以利用XPath指定所要依序處置懲罰的元素并將其設置給一個變量,here語句那么是可以對每個變量舉行條件限定,而Return語句那么是可以指定所盼望返
2、回的元素及其格式。在XL查詢中,可以將XPath轉化為一棵樹,稱為查詢樹。從初始查詢樹開始,選擇查詢樹中的某一條邊,對該邊上相毗連的兩個結點做毗連,毗連的效果用一個新的結點表現,并取代原樹中的兩個結點。每次毗連時都市使結點淘汰一個,同時產生一個新的樹。當樹只包羅一個結點時,整個求解歷程便竣事。在查詢樹中,可以將樹中的結點分為五種范例,別離是:根節(jié)點(Rt),葉節(jié)點(LN),分支節(jié)點(GN),孫子節(jié)點(DN),孩子節(jié)點(N)。此中與通常環(huán)境差異的是,孫子節(jié)點是指在查詢樹中與其下一個節(jié)點為祖孫干系的節(jié)點。孩子節(jié)點是指在查詢樹中與下一個節(jié)點為父子干系的節(jié)點。將查詢中必要返回的結點,界說為返回節(jié)點。界
3、說1:給定一個查詢樹QT(N,E),及節(jié)點NiN,假設Ni為GN或LN或DN,那么將此節(jié)點稱為GLDNde。界說2:給定一個查詢樹QT(N,E),及QT中的一條途徑P為EiNi.Ni+nEi+nNi+n+1,假設Ni與Ni+n+1為GLDNde或根節(jié)點,且對付全部的節(jié)點Nj屬于Ni+1到Ni+n皆不為GLDNde或根節(jié)點,那么我們稱EiNi.Ni+nEi+nNi+n+1為一個后置途徑SuffixPath。界說3:給定一個查詢樹,由根節(jié)點開始向下拜候,假設走訪的節(jié)點屬于GLDNde,那么將其創(chuàng)立在片斷途徑樹中,PT(N,E),N是節(jié)點的聚集,E是邊的聚集。對付每個niN都有一個TagNae,且n
4、i的范例只屬于GN或LN或DN。對付每個eiE為“/,代表節(jié)點與節(jié)點之間的相鄰干系為父子干系。稱如許的樹為片斷途徑樹。界說4:假設A為SuffixPath的末了一個節(jié)點,那么XL文檔中切合SuffixPath的文件所構成的聚集,稱之為A的PartialData,記作Ap。界說5:在片斷途徑樹FPT(FN,FE)中,假設NiFN且以Ni為起始點的途徑P為EiNiEi+1Ni+1Ei+2Ei+nNi+n,假設Ni為葉節(jié)點或分支節(jié)點,Ni+n為最靠近Ni的根節(jié)點或分支節(jié)點,那么稱途徑P為一個片斷途徑,并以“Ni-Ni+n表現。圖1所表現的是將XQueryTree拆分成SuffixPath,即“/a、
5、“/b、“/、“/d。圖1環(huán)境1:假設我們“/b/、“/b/d、“/a/b組合文件,那么/b/的效果有(b1,1)、(b2,2)、(b3,3)共三種選擇,其次切合“/b/d的有(b1,d1)一種選擇,以是,沒有對應文件的b2,b3會從b中刪除。/a/b有一種選擇。在此挨次下必要五次選擇毗連。末了將其組合成末了效果,顯然只有一種選擇。以是根據如上方法一共做了六次選擇毗連。環(huán)境2:假設創(chuàng)立的挨次為“/b/d、“/b/、“/a/b,根據環(huán)境1的闡發(fā)方法,得到3種選擇,末了根據“/a/b、“/b/、“/b/d的方法組合只有一種選擇。顯然通過四次選擇毗連就得到了末了效果。通過上例,可以看到差異的創(chuàng)立及組
6、合挨次對查詢效果確有影響。這正是本文所研究的內容。本文所研究的要領是基于片斷途徑樹的。根本框架為:起首尋到最優(yōu)化的片斷途徑序列,然后根據PartialData創(chuàng)立切合片斷途徑布局的文檔,末了得到具有完備布局的查詢效果。本文根據文獻1的要領得到片斷途徑樹及樹中每個節(jié)點所對應的PartialData。起首根據途徑樹及對應的PartialData舉行最正確化處置懲罰。根本頭腦是:根據起始點和中心點兩種差異的范例節(jié)點舉行拜候。PartialData大的先拜候大概小的先拜候。算法的終極目的是輸出最正確片斷途徑序列。算法3.1funtin()輸入:帶有PartialData的片斷途徑樹PT_TREE;st
7、artNde(PT_TREE);/從根節(jié)點大概葉節(jié)點開始拜候set(PatatialData);/設置拜候計謀,選擇PartialData大的先拜候或小的先拜候startNde.ark();/將起始點為標識下一個要拜候的節(jié)點fpList.reate();/創(chuàng)立一個表用來存放已拜候結點fpSequene(ptiizatin(startNde,fpList,set);/舉行最優(yōu)化處置懲罰輸出:fpSequene;通過算法3.1可以得到最優(yōu)化片斷途徑序列。那么此中的ptiizatin算法是怎樣實現的呢,我們將在算法3.2給出詳細求解歷程。在樹拜候歷程中,會有遺漏的結點臨時未被拜候,用單向鏈表link
8、List來存儲這些節(jié)點。鏈表中每個節(jié)點的內容是兩個指向途徑樹的指針,別離為urrentGTNde、PGNde,urrentGTNde指向當前節(jié)點,PGNde指向一個相鄰的范例為GN的節(jié)點。算法3.2ptiizatin(startNde,fpList,set)輸入:startNde,fpList,set;fpList.add(urrentNde);/將當前節(jié)點放入fpList表中,并斷定當前節(jié)點的環(huán)境if(父親節(jié)點兒子節(jié)點都已拜候過)if(fpList.size()0)調解fpList,將fpList放入fpSequene中;if(linkList為空)輸出fpSequene;else/將PGN
9、de放入表中,由于linkList中的節(jié)點是由于該節(jié)點而遺漏的,將PGNde/放入表中,表現是從該PGNde節(jié)點走向linkList中的節(jié)點的ptiizatin(urrentGTNde,fpList,set);if(節(jié)點范例為DN)探求下一節(jié)點,遞歸ptiizatin(nextNde,fpList,set);繼承拜候下一節(jié)點nextNde;elsenextNde.set();/設置下一節(jié)點拜候計謀探求鄰近當前節(jié)點,且被遺漏拜候的節(jié)點;將臨時遺漏節(jié)點安排在linkList中;/linkList的元素根據PartialData舉行擺列ptiizatin(nextNde,fpList,set);接下
10、來對得到的最優(yōu)化片斷途徑序列舉行處置懲罰,重要是對每一個節(jié)點的PartialData舉行組合,創(chuàng)立切合片斷途徑布局的文檔。假設有些片斷無法匹配,將其刪除。并將匹配效果存到FP_TABLE表中。創(chuàng)立片斷途徑的詳細要領拜見參考文獻1。下面根據FP_TABLE組合出完備的效果。在題目的提出那一節(jié),我們清楚的看到,差異的組合效果,所必要的代價是差異的。因此,本文接納組合挨次方法為由數目小的FP_TABLE到數目大的FP_TABLE。如容許以最大程度上淘汰組合代價。因此必要將得到的FP_TABLE舉行由小到大的擺列。下面通過算法3.3探究詳細組合歷程。算法3.3輸入:片斷序列中第一個節(jié)點所構成的聚集FN
11、de;/緣故原由在于這些節(jié)點與FP_TABLE對應FNde.getIndex(0);/獲得第一個節(jié)點fr(該節(jié)點的FP_TABLE中每一筆切合的片斷GT)FNde.urrentGT=GT;/保存第一筆GT記載,以便在遞歸調用時得到前次處置懲罰的記載假設必要返回效果,那么將效果放到效果表中;if(Fnde的比來的鄰節(jié)點為根節(jié)點)Result=Rebine(Fnde,index,Result);/index為節(jié)點編號,Result需返回的節(jié)點尋到一組切合的答案,將其參加到ResultTable中;/鄰近的節(jié)點為GNelse獲得上方鄰近的GN獲得在該節(jié)點的FP_TABLE中和urrentGT可以或許
12、組合的記載GTTable;對GTTable中的每一筆GT舉行遞歸處置懲罰Result=Rebine(Fnde,index,Result);繼承探求下一節(jié)點,并針對FP_TABLE舉行組合;/endfrRebine算法為組合片斷途徑,算法歷程如下:算法:3.4輸入:片斷序列中第一個節(jié)點所構成的聚集FNde;假設全部途徑都已處置懲罰完,那么返回處置懲罰效果;獲得下一個需處置懲罰節(jié)點及與該節(jié)點在布局上比來的GN節(jié)點lastNde。if(lastNde為空)Rebine(Fnde,index,Result);/對根節(jié)點遞歸處置懲罰Reset(FNde.urrentGT);if(存在GN且GN.urre
13、ntGT尚未被拜候)獲得GN節(jié)點FP_TABLE中和urrentGT可以或許組合的序列;針對這些記載舉行遞歸處置懲罰;if(GN存在,但urrentGT已被拜候)獲得該節(jié)點的FP_TABLE中和其上GN節(jié)點的urrentGT可以或許組合的序列;遞歸處置懲罰這些記載,并探求下一組合節(jié)點;小我私家盤算機作為實行的平臺,其PU為Pentiu42.40GHz,內存為512B,接納的操縱體系為irsftinds2000,接納V+編程,對本文所接納的最正確化計謀與文獻1及窮舉法舉行比力。得到的實行效果是本文所接納的計謀要快于文獻1及窮舉法。本文探究了最優(yōu)化的組合計謀,包羅最正確化算法處置懲罰片斷途徑樹及將所得到的途徑序列舉行最優(yōu)化組合。進步了查詢的服從,到達了查詢優(yōu)化的目的。將來可以對查詢語句舉行更準確的闡發(fā),可以在無文檔布局下快速尋到最正確處置懲罰計謀。2NingZhang,VarunKahlia,.Taerzsu,“ASuintPh
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度某公司電子商務事業(yè)部跨境電商營銷推廣合作協(xié)議2篇
- 2025版融創(chuàng)集團房地產合同檔案安全保護與保密要求3篇
- 二零二五年度外匯期貨居間經紀業(yè)務合同修訂版4篇
- 2025版全新煤炭居間合作協(xié)議范本下載6篇
- 個性化勞動協(xié)議模板2024年版參考版B版
- 個性化咨詢顧問服務協(xié)議精簡版版
- 2025年配電工程進度款支付合同
- 2025年度新材料研發(fā)與產業(yè)化合作協(xié)議
- 二零二五年度內退員工離職補償及經濟補償合同
- 二零二五年度品牌策劃與品牌維權服務合同2篇
- 2024年上海市第二十七屆初中物理競賽初賽試題及答案
- 信息技術部年終述職報告總結
- 高考滿分作文常見結構完全解讀
- 理光投影機pj k360功能介紹
- 六年級數學上冊100道口算題(全冊完整版)
- 八年級數學下冊《第十九章 一次函數》單元檢測卷帶答案-人教版
- 帕薩特B5維修手冊及帕薩特B5全車電路圖
- 系統(tǒng)解剖學考試重點筆記
- 小學五年級解方程應用題6
- 年月江西省南昌市某綜合樓工程造價指標及
- 作物栽培學課件棉花
評論
0/150
提交評論