專利名稱:一種部分最值查詢方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)查詢技術(shù)領(lǐng)域,具體地說,本發(fā)明涉及一種部分最值查詢方法。
背景技術(shù):
在大規(guī)模網(wǎng)絡(luò)安全信息系統(tǒng)態(tài)勢分析的過程中,經(jīng)常會遇到以下的數(shù)據(jù)庫查詢操作查詢當(dāng)前網(wǎng)段中漏洞最多的主機或者查詢某個局域網(wǎng)中受攻擊最多的主機等,此類查詢通常是隨著需求不同而不斷變化的。而且這些數(shù)據(jù)庫查詢操作有個共同的特點,即它們都是針對數(shù)據(jù)庫中的部分記錄進(jìn)行統(tǒng)計,如“當(dāng)前網(wǎng)段”或“某個局域網(wǎng)”,此類操作都可以歸到部分查詢技術(shù)中。而部分最值查詢是部分查詢技術(shù)中的一個重要方面。部分最值查詢是指規(guī)定了部分維屬性取值的基礎(chǔ)上,在這些維屬性取值所確定的數(shù)據(jù)單元中查詢滿足條件的數(shù)據(jù),并按照要求對選取的數(shù)據(jù)單元進(jìn)行聚集操作(MAX或 MIN)。以網(wǎng)絡(luò)安全態(tài)勢分析中多維數(shù)據(jù)立方體為例假設(shè)一個數(shù)據(jù)立方體有3個維屬性時間維、地點維和網(wǎng)絡(luò)攻擊種類維;度量屬性有攻擊的數(shù)目。其中,度量屬性一般就是數(shù)值信息。例如查詢時間維={2010年4月,2010年5月},地點={長沙,武漢,廣州},攻擊種類={木馬,蠕蟲}時攻擊的數(shù)目。這就是一個典型的部分最值查詢的例子。現(xiàn)有技術(shù)中,部分最值查詢通常的方法就是為查詢的數(shù)據(jù)建立一個排序索引,然后順序地搜索該索引的各數(shù)據(jù)單元,并檢驗索引數(shù)據(jù)單元內(nèi)數(shù)值所指示的數(shù)組D的數(shù)據(jù)單元是否屬于查詢范圍。這種方法結(jié)構(gòu)簡單,實現(xiàn)較容易,但由于這種方法需要順序地搜索索引的每個數(shù)據(jù)單元,如果查詢目標(biāo)位于索引的靠后部分,則會導(dǎo)致響應(yīng)時間較長,難以實現(xiàn)快速查詢??偟脕碚f,這種基于排序索引的查詢方法效率較低。因此,當(dāng)前迫切需要一種具有更高效率的部分最值查詢方法,以顯著縮短查詢響應(yīng)時間,實現(xiàn)快速查詢。
發(fā)明內(nèi)容
本發(fā)明的目的是一種效率高,能夠顯著縮短查詢響應(yīng)時間,實現(xiàn)快速查詢的部分最值查詢方法。為實現(xiàn)上述發(fā)明目的,本發(fā)明提供了部分最值查詢方法,包括下列步驟1)確定部分最值查詢的初始查詢范圍;2)從待查詢數(shù)據(jù)結(jié)構(gòu)的排序決策樹的根節(jié)點開始,逐層向下搜索所述部分最值位于哪一個排序決策樹的節(jié)點內(nèi),直至得出部分最值查詢結(jié)果;所述數(shù)據(jù)結(jié)構(gòu)的排序決策樹的定義如下數(shù)據(jù)結(jié)構(gòu)D是一個具有m個數(shù)據(jù)單元的數(shù)據(jù)結(jié)構(gòu),m> 1,R是該數(shù)據(jù)結(jié)構(gòu)的排序索引,則D的排序?qū)Ψ址鸕BS是一個比特向量Vs = ^ob1. · · V1),滿足
=^第一狀態(tài),當(dāng)0 9+<[w/2] R[1]—i第二狀態(tài),其他
其中,第一狀態(tài)與第二狀態(tài)互為反狀態(tài);數(shù)據(jù)結(jié)構(gòu)D的排序決策樹是滿足下列條件的二叉樹(1)樹的根節(jié)點是RBStl^1 ;(2)樹的葉節(jié)點是RBSV:U,滿足U-V = I;(3) RBSviu的左孩子節(jié)點是RBSv1,w是RBSviu的權(quán)重(注=RBSviu的權(quán)重為 [(u-v+l)/2)]);(4)當(dāng)RBSV:U的權(quán)重大于2時,RBSviu的右孩子節(jié)點是RBS(V+W):U,否則右孩子不存在。以上RBS的下標(biāo)對應(yīng)于排序區(qū)間,RBSi:j表示在數(shù)據(jù)結(jié)構(gòu)D中排序在第i至第j的數(shù)據(jù)單元所組成的子數(shù)據(jù)結(jié)構(gòu)Di:j所對應(yīng)的RBS,其中0 < i < j < m-1。其中,所述待查詢數(shù)據(jù)結(jié)構(gòu)為數(shù)組。其中,所述步驟1)還包括根據(jù)部分最值查詢的初始查詢范圍確定初始查詢向量。其中,所述第一狀態(tài)為1,所述第二狀態(tài)為0 ;所述步驟2、包括下列子步驟21)對待查詢的數(shù)組,讀取該數(shù)組的排序決策樹,取其根節(jié)點作為當(dāng)前節(jié)點,將初始查詢向量作為當(dāng)前查詢向量;22)對當(dāng)前節(jié)點的排序?qū)Ψ址彤?dāng)前查詢向量進(jìn)行按位與運算得到判據(jù)向量V, 如果|v| = 1,則向量ν中值為ι的比特位所對應(yīng)的數(shù)據(jù)單元即為部分最值所在的數(shù)據(jù)單元,本次部分最值查詢結(jié)束;如果|v| =0或Ivl >1,則執(zhí)行步驟23);其中,Ivl表示判據(jù)向量ν的權(quán)重,在查詢部分最大值時,判據(jù)向量ν的權(quán)重是ν中值為ι的比特位的個數(shù),在查詢部分最小值時,判據(jù)向量V的權(quán)重是V中值為0的比特位的個數(shù);23)如果|V| > 1則部分最值位于左孩子節(jié)點中,則取左孩子節(jié)點作為下一層搜索的目標(biāo)節(jié)點;如果|V| =0則部分最值位于右孩子節(jié)點中,則取右孩子節(jié)點作為下一層搜索的目標(biāo)節(jié)點;根據(jù)當(dāng)前節(jié)點的排序?qū)Ψ址蛗V|的值,重新確定縮小范圍后的部分最值查詢范圍,從而更新查詢向量;24)將步驟23)所確定的進(jìn)行下一層搜索的目標(biāo)節(jié)點作為新的當(dāng)前節(jié)點,以及步驟2 所得出的更新后的查詢向量作為當(dāng)前查詢向量,然后返回執(zhí)行步驟22),這樣不斷循環(huán),直至查詢出所需的部分最值。其中,所述步驟23)中,如果|V| > 1,則按當(dāng)前節(jié)點的排序?qū)Ψ址兄禐?的位對 ν進(jìn)行截取,得到新的查詢向量;如果|V| =0,則按當(dāng)前節(jié)點的排序?qū)Ψ址次蝗》春蟮玫降闹禐棣傻奈粚Ζ瓦M(jìn)行截取,得到新的查詢向量。本發(fā)明還提供了一種對數(shù)據(jù)結(jié)構(gòu)D構(gòu)建排序決策樹的方法,包括下列步驟1)對數(shù)據(jù)結(jié)構(gòu)D排序并構(gòu)建排序索引R,根據(jù)R將數(shù)據(jù)結(jié)構(gòu)D中數(shù)值大小排在前半部分的數(shù)據(jù)單元對應(yīng)的排序?qū)Ψ址鸕BS比特位置為第一狀態(tài),后半部分的數(shù)據(jù)單元對應(yīng)的RBS比特位置為第二狀態(tài);從而構(gòu)建排序?qū)Ψ址鸕BS作為根節(jié)點;第一狀態(tài)與第二狀態(tài)互為反狀態(tài);2)取數(shù)據(jù)結(jié)構(gòu)D作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl ;3)檢測當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl的排序?qū)Ψ址鸕BS中第一狀態(tài)的比特位的個數(shù),如果大于1則繼續(xù)執(zhí)行步驟4),否則停止執(zhí)行后續(xù)步驟;4)將當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl拆分,構(gòu)建新的數(shù)據(jù)結(jié)構(gòu)Dlrft和1\_,其中Dlrft由當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl中數(shù)值大小排在前半部分的數(shù)據(jù)單元組成,Dright由當(dāng)前數(shù)組Dtl中數(shù)值大小排在后半部分的數(shù)據(jù)單元組成;分別構(gòu)建新的數(shù)據(jù)結(jié)構(gòu)Dlrft和Dright的排序索引Rlrft和Rright,然后構(gòu)建對應(yīng)的排序?qū)Ψ址鸕BSleft和RBSHght,RB^eft作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)D。對應(yīng)的排序決策樹節(jié)點的左孩子節(jié)點,RBSright作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl對應(yīng)的排序決策樹節(jié)點的右孩子節(jié)點;5)分別將新的數(shù)據(jù)結(jié)構(gòu)Dlrft和作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl并重新執(zhí)行步驟3),直至所有當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl的排序?qū)Ψ址鸕BS中第一狀態(tài)的比特位的個數(shù)不大于1,此時排序決策樹的所有節(jié)點均構(gòu)造完成。其中,所述數(shù)據(jù)結(jié)構(gòu)為數(shù)組。相對于現(xiàn)有技術(shù),本發(fā)明具有下列技術(shù)效果本發(fā)明的查詢效率高,能夠顯著縮短查詢響應(yīng)時間,實現(xiàn)快速查詢。
圖1示出了一個排序索引結(jié)構(gòu)的示例;圖2示出了本發(fā)明一個RD-Rree的示例;圖3示出了本發(fā)明一個RD-Tree的搜索過程的示例;圖4示出了本發(fā)明一個RD-Tree的搜索過程中| V | = 0的情況的示例;圖5示出了本發(fā)明一個得出搜索結(jié)果返回值的方法示例。
具體實施例方式現(xiàn)有技術(shù)中,最值問題通常按下面的方式描述。假設(shè)D是一個大小為η的數(shù)組,數(shù)組的索引從0到n-1。設(shè)N= {0,1, ... , η-1} 為數(shù)組D索引的集合。給定一個查詢I,它由D中的部分索引域的值來表示,Ι^Ν。關(guān)于數(shù)組D中部分?jǐn)?shù)據(jù)的最值查詢問題,有如下定義
權(quán)利要求
1.一種部分最值查詢方法,其特征在于,包括下列步驟1)確定部分最值查詢的初始查詢范圍;2)從待查詢數(shù)據(jù)結(jié)構(gòu)的排序決策樹的根節(jié)點開始,逐層向下搜索所述部分最值位于哪一個排序決策樹的節(jié)點內(nèi),直至得出部分最值查詢結(jié)果;所述數(shù)據(jù)結(jié)構(gòu)的排序決策樹的定義如下數(shù)據(jù)結(jié)構(gòu)D是一個具有m個數(shù)據(jù)單元的數(shù)據(jù)結(jié)構(gòu),m > 1,R是該數(shù)據(jù)結(jié)構(gòu)的排序索引, 則D的排序?qū)Ψ址鸕BS是一個比特向量Vs = ^ob1. · · V1),滿足=^第一狀態(tài),當(dāng)0 9+<[w/2] R[1]—i第二狀態(tài),其他其中,第一狀態(tài)與第二狀態(tài)互為反狀態(tài); 數(shù)據(jù)結(jié)構(gòu)D的排序決策樹是滿足下列條件的二叉樹(1)樹的根節(jié)點是RBStlI1;(2)樹的葉節(jié)點是RBSV:U,滿足u-v= 1 ;(3)RBSviu的左孩子節(jié)點是RBSpt1,w是RBSV:U的權(quán)重(注RBSV:U的權(quán)重為 [(u-v+l)/2)]);(4)當(dāng)RBSV:U的權(quán)重大于2時,RBSviu的右孩子節(jié)點是RBS(V+W):u,否則右孩子不存在。 以上RBS的下標(biāo)對應(yīng)于排序區(qū)間,RBSi:j表示在數(shù)據(jù)結(jié)構(gòu)D中排序在第i至第j的數(shù)據(jù)單元所組成的子數(shù)據(jù)結(jié)構(gòu)Di:j所對應(yīng)的RBS,其中0 < i < j < m-1。
2.根據(jù)權(quán)利要求1所述的部分最值查詢方法,其特征在于,所述待查詢數(shù)據(jù)結(jié)構(gòu)為數(shù)組。
3.根據(jù)權(quán)利要求2所述的部分最值查詢方法,其特征在于,所述步驟1)還包括根據(jù)部分最值查詢的初始查詢范圍確定初始查詢向量。
4.根據(jù)權(quán)利要求3所述的部分最值查詢方法,其特征在于,所述第一狀態(tài)為1,所述第二狀態(tài)為0 ;所述步驟2~)包括下列子步驟21)對待查詢的數(shù)組,讀取該數(shù)組的排序決策樹,取其根節(jié)點作為當(dāng)前節(jié)點,將初始查詢向量作為當(dāng)前查詢向量;22)對當(dāng)前節(jié)點的排序?qū)Ψ址彤?dāng)前查詢向量進(jìn)行按位與運算得到判據(jù)向量V,如果 |v| = 1,則向量ν中值為ι的比特位所對應(yīng)的數(shù)據(jù)單元即為部分最值所在的數(shù)據(jù)單元,本次部分最值查詢結(jié)束;如果|v| =0或Ivl > 1,則執(zhí)行步驟23);其中,Ivl表示判據(jù)向量 V的權(quán)重,在查詢部分最大值時,判據(jù)向量V的權(quán)重是V中值為1的比特位的個數(shù),在查詢部分最小值時,判據(jù)向量V的權(quán)重是V中值為0的比特位的個數(shù);23)如果|V|> 1則部分最值位于左孩子節(jié)點中,則取左孩子節(jié)點作為下一層搜索的目標(biāo)節(jié)點;如果|V| =0則部分最值位于右孩子節(jié)點中,則取右孩子節(jié)點作為下一層搜索的目標(biāo)節(jié)點;根據(jù)當(dāng)前節(jié)點的排序?qū)Ψ址蛗v|的值,重新確定縮小范圍后的部分最值查詢范圍, 從而更新查詢向量;24)將步驟2 所確定的進(jìn)行下一層搜索的目標(biāo)節(jié)點作為新的當(dāng)前節(jié)點,以及步驟23) 所得出的更新后的查詢向量作為當(dāng)前查詢向量,然后返回執(zhí)行步驟22),這樣不斷循環(huán),直至查詢出所需的部分最值。
5.根據(jù)權(quán)利要求4所述的部分最值查詢方法,其特征在于,所述步驟23)中,如果|V| > 1,則按當(dāng)前節(jié)點的排序?qū)Ψ址兄禐?的位對V進(jìn)行截取,得到新的查詢向量;如果|V| =0,則按當(dāng)前節(jié)點的排序?qū)Ψ址次蝗》春蟮玫降闹禐?的位對V進(jìn)行截取,得到新的查詢向量。
6.一種對數(shù)據(jù)結(jié)構(gòu)D構(gòu)建排序決策樹的方法,其特征在于,包括下列步驟1)對數(shù)據(jù)結(jié)構(gòu)D排序并構(gòu)建排序索引R,根據(jù)R將數(shù)據(jù)結(jié)構(gòu)D中數(shù)值大小排在前半部分的數(shù)據(jù)單元對應(yīng)的排序?qū)Ψ址鸕BS比特位置為第一狀態(tài),后半部分的數(shù)據(jù)單元對應(yīng)的RBS 比特位置為第二狀態(tài);從而構(gòu)建排序?qū)Ψ址鸕BS作為根節(jié)點;第一狀態(tài)與第二狀態(tài)互為反狀態(tài);2)取數(shù)據(jù)結(jié)構(gòu)D作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl;3)檢測當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl的排序?qū)Ψ址鸕BS中第一狀態(tài)的比特位的個數(shù),如果大于1則繼續(xù)執(zhí)行步驟4),否則停止執(zhí)行后續(xù)步驟;4)將當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl拆分,構(gòu)建新的數(shù)據(jù)結(jié)構(gòu)Dlrft,其中Dlrft由當(dāng)前數(shù)據(jù)結(jié)構(gòu) D0中數(shù)值大小排在前半部分的數(shù)據(jù)單元組成,DHght由當(dāng)前數(shù)組Dtl中數(shù)值大小排在后半部分的數(shù)據(jù)單元組成;分別構(gòu)建新的數(shù)據(jù)結(jié)構(gòu)Dlrft和Aight的排序索引Rlrft和RHght,然后構(gòu)建對應(yīng)的排序?qū)Ψ址鸕BSleft和RB、ght,RBSleft作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)D。對應(yīng)的排序決策樹節(jié)點的左孩子節(jié)點, RBSright作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl對應(yīng)的排序決策樹節(jié)點的右孩子節(jié)點;5)分別將新的數(shù)據(jù)結(jié)構(gòu)Dlrft和DHght作為當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl并重新執(zhí)行步驟3),直至所有當(dāng)前數(shù)據(jù)結(jié)構(gòu)Dtl的排序?qū)Ψ址鸕BS中第一狀態(tài)的比特位的個數(shù)不大于1,此時排序決策樹的所有節(jié)點均構(gòu)造完成。
7.根據(jù)權(quán)利要求6所述的部分最值查詢方法,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)為數(shù)組。
全文摘要
本發(fā)明提供一種部分最值查詢方法,包括下列步驟1)確定待查詢數(shù)據(jù)結(jié)構(gòu)中符合部分最值查詢條件的數(shù)據(jù)單元,從而獲得初始查詢范圍;2)從所述數(shù)據(jù)結(jié)構(gòu)的排序決策樹的根節(jié)點開始,逐層向下搜索所述部分最值位于哪一個排序決策樹的節(jié)點內(nèi),直至得出部分最值查詢結(jié)果。本發(fā)明的查詢效率高,能夠顯著縮短查詢響應(yīng)時間,實現(xiàn)快速查詢。
文檔編號G06F17/30GK102456073SQ201110343309
公開日2012年5月16日 申請日期2011年11月3日 優(yōu)先權(quán)日2011年11月3日
發(fā)明者劉 東, 劉斐, 周斌, 夏榕澤, 張建鋒, 徐鏡湖, 李遠(yuǎn)征, 楊樹強, 王雯霞, 賈焰, 鄭黎明, 韓偉紅 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)