專(zhuān)利名稱(chēng):一種分區(qū)域雙樹(shù)結(jié)構(gòu)的空間數(shù)據(jù)庫(kù)索引方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種空間數(shù)據(jù)庫(kù)索引方法。主要用于解決空間數(shù)據(jù)索引效率和準(zhǔn)確性的問(wèn)題,屬于空間數(shù)據(jù)庫(kù)領(lǐng)域的技術(shù)。
背景技術(shù):
空間索引的目的是為了在GIS系統(tǒng)中快速定位到所選中的空間要素,從而提高空間操作的速度和效率??臻g索引的技術(shù)和方法是GIS關(guān)鍵技術(shù)之一,是快速、高效的查詢(xún)、 檢索和顯示地理空間數(shù)據(jù)的重要指標(biāo),它的優(yōu)劣直接影響空間數(shù)據(jù)庫(kù)和GIS系統(tǒng)的整體性能??臻g數(shù)據(jù)索引技術(shù)還處在不斷的發(fā)展和完善階段。目前對(duì)于空間數(shù)據(jù)索引技術(shù)及基于它的空間數(shù)據(jù)查詢(xún)還存在很多問(wèn)題有待進(jìn)一步解決,如高效索弓I算法的改進(jìn);復(fù)雜空間查詢(xún)方法的優(yōu)化;查詢(xún)操作中幾何過(guò)濾方法;動(dòng)態(tài)索引結(jié)構(gòu)的建立等。傳統(tǒng)的數(shù)據(jù)索引技術(shù)有B-樹(shù)、B+-樹(shù)、二叉樹(shù)、ISAM索引、哈希索引等,這些技術(shù)都是針對(duì)一維屬性數(shù)據(jù)的主關(guān)鍵字索引而設(shè)計(jì)的,并不能直接應(yīng)用于空間數(shù)據(jù)庫(kù)的索引。I、基于二叉樹(shù)的索引技術(shù)
基于二叉樹(shù)索引結(jié)構(gòu)的典型范例有kd-樹(shù)、K-D-B-樹(shù)、LSD樹(shù)等。這種索弓I結(jié)構(gòu)的典型 kd-樹(shù)一種二分索引樹(shù)結(jié)構(gòu),主要用于索引多維數(shù)據(jù)點(diǎn),但對(duì)復(fù)雜的空間目標(biāo),如折線(xiàn)、多邊形、多面體等得索引卻必須采用近似方法和空間映射技術(shù)。由此針對(duì)空間關(guān)系的查詢(xún)效率非常低。為了能索引復(fù)雜的空間目標(biāo),一種是和索引二維空間目標(biāo)的基于實(shí)體標(biāo)志重復(fù)存儲(chǔ)技術(shù)的Mkd-樹(shù)被踢出了;為了將kd-樹(shù)存儲(chǔ)組織到外存,將Kd-樹(shù)與B-樹(shù)結(jié)合,提出了 K-D-B樹(shù);Skd-樹(shù)的提出避免了空間目標(biāo)的重復(fù)存儲(chǔ)和空間映射,用空間目標(biāo)的中心點(diǎn)來(lái)對(duì)空間目標(biāo)集進(jìn)行二分索引。但是所有這些方法對(duì)非點(diǎn)狀空間目標(biāo)的索引效率都較低。2、基于B-樹(shù)的索引技術(shù)
B-樹(shù)及其變體,被廣泛應(yīng)用于常規(guī)的數(shù)據(jù)庫(kù)管理系統(tǒng)之中,實(shí)踐證明其對(duì)大型數(shù)據(jù)庫(kù)的索引具有出色表現(xiàn)。目前的空間數(shù)據(jù)索引技術(shù),很多都是基于B-樹(shù),如Guttman提出的 R-樹(shù)。R-樹(shù)的思想是將空間目標(biāo)及其索引空進(jìn)用最小包圍矩形來(lái)近似表示,可以簡(jiǎn)化計(jì)算、減少存儲(chǔ)空間;將空間上鄰近的目標(biāo)組織在同一節(jié)點(diǎn)或同一分枝,可以減少外存訪(fǎng)問(wèn)次數(shù)。然而由于允許區(qū)間的重疊,導(dǎo)致了搜索路徑的平均數(shù)量的增加,每一維的區(qū)間都要儲(chǔ)存,需要較多的存儲(chǔ)空間。為此,為了避免索引空間重疊的問(wèn)題,之后提出了 R+-樹(shù);為了減少了查詢(xún)對(duì)外存的訪(fǎng)問(wèn)次數(shù),出現(xiàn)了 Cell-樹(shù)等??傊@類(lèi)索引結(jié)構(gòu)需要解決的主要問(wèn)題仍然是減少區(qū)域的重疊,提高搜索效率。3、基于哈希的格網(wǎng)技術(shù)
這種方法的基本思路是將索引空間劃分為相等或不相等的一些小方格網(wǎng),與每個(gè)格網(wǎng)相關(guān)的空間目標(biāo)則存儲(chǔ)在同一磁盤(pán)頁(yè),而格網(wǎng)的訪(fǎng)問(wèn)地址則可以直接通過(guò)求數(shù)組下標(biāo)或某種算法得到。如Grid file, R-file等。這類(lèi)方法主要用于索引多維空間點(diǎn)。4、空間目標(biāo)排序法
其基本思想是將索引空間劃分為許多小的格子,然后每個(gè)格子指定一個(gè)唯一的數(shù)字活編碼,空間則用與其相交的一個(gè)或多個(gè)格子的數(shù)字來(lái)表示,或用與其相交格子的編碼求得另一唯一編碼來(lái)表示。實(shí)質(zhì)是將k維空間的實(shí)體映射到一維空間。用一維的數(shù)值對(duì)多維的空間目標(biāo)進(jìn)行排序,常見(jiàn)的方法有位置鍵(Location Keys), Z-排序(Z_ording)等。
發(fā)明內(nèi)容
技術(shù)問(wèn)題本發(fā)明是針對(duì)空間數(shù)據(jù)庫(kù)索引方法的解決方案。主要用于解決空間數(shù)據(jù)索引效率和準(zhǔn)確性的問(wèn)題。技術(shù)方案本發(fā)明的方法是一種策略性的方法,通過(guò)將空間區(qū)域分塊,構(gòu)建兩級(jí)空間索引樹(shù),分步索引,達(dá)到提高索引效率和索引準(zhǔn)確性的目的。一、體系結(jié)構(gòu)
本發(fā)明分區(qū)域雙樹(shù)結(jié)構(gòu)的索引方法是基于新構(gòu)建的索引樹(shù),該索引樹(shù)是由兩個(gè)空間索引樹(shù)組成的。第一個(gè)是擴(kuò)展的R-樹(shù),它是根據(jù)地理空間特征來(lái)存放空間對(duì)象。第二個(gè)是空間關(guān)系索引樹(shù),根據(jù)它是用來(lái)表示空間區(qū)域的空間關(guān)系。兩個(gè)空間索引樹(shù)由在節(jié)點(diǎn)上相應(yīng)的指針連接。其體系結(jié)構(gòu)如圖I所示。 擴(kuò)展的R-樹(shù)擴(kuò)展的R-樹(shù)是在R-樹(shù)的基礎(chǔ)上,構(gòu)建一個(gè)平衡樹(shù)。它符合R -樹(shù)的基本條件。根據(jù)空間檢索的需要,R-樹(shù)的節(jié)點(diǎn)將被重新定義。定義擴(kuò)展的R-樹(shù)的葉節(jié)點(diǎn)定義如下
(KI,*P)},A)(I)
(I, *P)是R-樹(shù)葉節(jié)點(diǎn)中包含的一對(duì)數(shù)組,其中*P是空間對(duì)象的指針,I是索引空間對(duì)象的MBR。A是該空間區(qū)域包含的空間對(duì)象。定義擴(kuò)展的R-樹(shù)的非葉子節(jié)點(diǎn)的定義如下
({(I,child _p*)}, R)(2)
({(I,child_p*)},R)是R-樹(shù)非葉節(jié)點(diǎn)中包含的一對(duì)數(shù)組,其中孩子指針是指向下級(jí)節(jié)點(diǎn)的指針,I是所有孩子節(jié)點(diǎn)所涵蓋的MBR。R是空間關(guān)系的特征向量。該擴(kuò)展的R-樹(shù)具有樹(shù)下特點(diǎn)
I)設(shè)m(2〈=m〈=M/2)為節(jié)點(diǎn)包含索引項(xiàng)的最小數(shù)目(m通常取M/2,如果節(jié)點(diǎn)包含項(xiàng)目數(shù)小于m,則節(jié)點(diǎn)下溢,如果節(jié)點(diǎn)包含項(xiàng)目數(shù)大于M,則節(jié)點(diǎn)上溢),在一層的MBR的數(shù)量必須滿(mǎn)足m彡η彡M的條件。換句話(huà)說(shuō),每一個(gè)空間區(qū)域至少包含m個(gè)MBR,最多包含M個(gè)MBR, 這自然限制了空間區(qū)域的面積,減少現(xiàn)場(chǎng)空間關(guān)系的計(jì)算復(fù)雜性。2)非葉節(jié)點(diǎn)的每個(gè)數(shù)組是其子節(jié)點(diǎn)的粗粒度的抽象。對(duì)于任何兩個(gè)相鄰層的節(jié)點(diǎn),在第i層的節(jié)點(diǎn)代表第i+Ι層的粗粒度;相反第i+Ι層節(jié)點(diǎn)代表第i層的精細(xì)粒度??臻g關(guān)系索引樹(shù)空間關(guān)系索引樹(shù)是上面擴(kuò)展R-樹(shù)的一個(gè)補(bǔ)充,它反映了空間區(qū)域的關(guān)系,通過(guò)聚類(lèi)將空間區(qū)域聚集在一起。在空間關(guān)系索引樹(shù)的每個(gè)節(jié)點(diǎn)上有一個(gè)指針, 指針指向相應(yīng)的在擴(kuò)展的R樹(shù)上具有相同的特征向量的節(jié)點(diǎn)??臻g關(guān)系檢索樹(shù)的構(gòu)造是基于點(diǎn)的聚類(lèi)原則??紤]的R-樹(shù)不僅可以執(zhí)行基于地區(qū)的搜索,也可以執(zhí)行基于點(diǎn)的搜索,在構(gòu)建空間關(guān)系索引樹(shù)時(shí),不但要具備R-樹(shù)的的構(gòu)建規(guī)則,還要具備如下的規(guī)則
O空間關(guān)系索引樹(shù)的構(gòu)建原則是點(diǎn)集的聚類(lèi)。在最近距離的點(diǎn)應(yīng)在同一節(jié)點(diǎn),這意味著,類(lèi)似的場(chǎng)景特征向量應(yīng)放在同一節(jié)點(diǎn)。
2)在空間關(guān)系索引樹(shù)的葉節(jié)點(diǎn)中的指針不指向?qū)嶋H的空間對(duì)象,而指向ER-樹(shù)的相應(yīng)節(jié)點(diǎn)。3)類(lèi)似空間場(chǎng)景的檢索是通過(guò)在空間關(guān)系索引樹(shù)中搜索最近的空間關(guān)系特征點(diǎn)執(zhí)行的。二、方法流程
1、查找方法
當(dāng)要查找一個(gè)空間數(shù)據(jù)時(shí),首先對(duì)其聚類(lèi),得其空間關(guān)系向量,查找所有與其重疊的空間目標(biāo)或完全落入其的空間目標(biāo),必須對(duì)所有與其相交的子空間所關(guān)聯(lián)的索引樹(shù)進(jìn)行查找操作,當(dāng)找到與其相交的空間區(qū)域后,用R-樹(shù)的查找算法對(duì)其進(jìn)行索引,如果此空間區(qū)域的葉子節(jié)點(diǎn)已經(jīng)是孩子結(jié)點(diǎn),則所引到的目標(biāo)結(jié)點(diǎn)就是所要查找的數(shù)據(jù);如果不是孩子結(jié)點(diǎn),則再向下一級(jí)進(jìn)行查找。具體方法描述如下
Algorithm Search (N, ff) //W為所要查找的數(shù)據(jù)矩形,N為在索引樹(shù)中結(jié)點(diǎn)的數(shù)據(jù)
矩形
Begin
R*: the space associated with W R: the space associated with N;
If R* is overlap with R Then
R—Search (N,W) ; //調(diào)用R-樹(shù)的查找算法 For Each child node of N Do Search (N. Child, W);
Else return;
End;
2、插入方法
當(dāng)插入一個(gè)空間數(shù)據(jù)時(shí),如果插入的結(jié)點(diǎn)位置已經(jīng)是葉子結(jié)點(diǎn),則直接用R-樹(shù)算法將其插入其中,如果插入的位置不是葉子結(jié)點(diǎn),則判斷此位置的孩子結(jié)點(diǎn)是否包含所要插入的空間數(shù)據(jù);如果包含,則繼續(xù)進(jìn)行插入,如果不包含則直接插入到此結(jié)點(diǎn)位置。插入后重新調(diào)整空間關(guān)系。具體方法描述如下
Algorithm Insert (N. P) //將MBR為P的物體插入到節(jié)點(diǎn)為N的索引樹(shù)上 Begin
If N is a leaf node of the tree Then R—Insert (N,P);
Else
Begin
Il決定N的下一層空間是否包含P node of N Do
Found:=False;
For Each child Begin
R:=the space associated with N
child;
5If R contain P completely Then Begin
Found:=True;
Insert (N. child, P);
Break;
End;
End;
If Not Found Then R—Insert (N,P);
End;
End;
3、刪除方法
刪除方法當(dāng)刪除一個(gè)數(shù)據(jù)時(shí),如果刪除的結(jié)點(diǎn)位置已經(jīng)是葉子結(jié)點(diǎn),則直接用R-樹(shù)算法將其插入其中,如果刪除的位置不是葉子結(jié)點(diǎn),則判斷此位置的孩子結(jié)點(diǎn)是否包含所要?jiǎng)h除的空間數(shù)據(jù),如果包含,則繼續(xù)進(jìn)行刪除,如果不包含則直接刪除數(shù)據(jù)。刪除后重新調(diào)整空間關(guān)系。方法描述如下
Algorithm Delete (N, P) //從結(jié)點(diǎn)N中刪除MBR為P的物體 Begin
If N is a leaf node of the tree Then
R—Delete (N,P) //調(diào)用R樹(shù)的刪除算法
Else
Begin
Found: =False; //決定N的下一層空間是否包含P
For Each child node of N Do
Begin
R:=the space associated with N’ s child;
If R contain P completely Then Begin
Found:=True;
Delete (N. P);
Break;
End;
End;
If Not Found Then R—Delete(N,P);
End;
End;
有益效果
本發(fā)明提出了一種新的空間數(shù)據(jù)索引的方法,針對(duì)空間數(shù)據(jù)索引時(shí),當(dāng)數(shù)據(jù)量很大、范圍很廣時(shí)索引效率非常低的問(wèn)題,提出了一種解決方案。通過(guò)本方法構(gòu)建空間索引樹(shù),可以適當(dāng)?shù)奶岣呖臻g索引效率和準(zhǔn)確性,尤其當(dāng)面對(duì)海量數(shù)據(jù)時(shí),隨著數(shù)據(jù)量的增加,其索引時(shí)間的增加會(huì)逐漸減慢。
圖I 一般形式的空間索引樹(shù)結(jié)構(gòu)2原始的空間分布圖
圖3由圖2所構(gòu)建的空間索引樹(shù)結(jié)構(gòu)圖。
具體實(shí)施方案以圖2的空間分布圖為例,首先構(gòu)建索引樹(shù),得圖3,然后對(duì)其進(jìn)行查找,插入和刪除操作。I.查找方法
以圖2為例,給定查找矩形區(qū)域QR,首先對(duì)QR進(jìn)行聚類(lèi),求得其空間關(guān)系特征向量R*, 查找所有R*重疊的空間目標(biāo)或完全落入R*的空間目標(biāo),必須對(duì)所有與R*相交的子空間所關(guān)聯(lián)的R樹(shù)進(jìn)行查找操作。例如在圖(I)中,查找所有與R*重疊的數(shù)據(jù)矩形,過(guò)程如下
(1)搜索類(lèi)似的空間區(qū)域R*與根結(jié)點(diǎn)RO的索引空間相交,因此在RO中查找,返回滿(mǎn)足查找要求的數(shù)據(jù)矩形內(nèi);
(2)R*與Rl不相交,不用繼續(xù)比較;
(3)R*與R2,R3的索引空間相交,因此在R2,R3中查找,返回滿(mǎn)足查找要求的數(shù)據(jù)矩形 B2. O, C3. I;
2.插入方法
以圖2為例,插入一個(gè)數(shù)據(jù)矩形,必須首先確定其屬于的最小子空間及其關(guān)聯(lián)結(jié)點(diǎn),然后再將其插入到對(duì)應(yīng)的R樹(shù)中。例如在上圖中,要插入數(shù)據(jù)矩形Al. 0,首先要求出它的數(shù)據(jù)子空間Rl,然后將其插入到Rl中。3.刪除方法
以圖2為例,刪除一個(gè)數(shù)據(jù)矩形,必須首先確定其屬于的最小子空間及其關(guān)聯(lián)結(jié)點(diǎn),然后再將其從對(duì)應(yīng)的R樹(shù)中刪除該數(shù)據(jù)矩形。例如在上圖中,要?jiǎng)h除數(shù)據(jù)矩形B2. 0,首先要確定包圍它的最小子空間R2,然后從R2中將它刪除。
權(quán)利要求
1.一種分區(qū)域雙樹(shù)結(jié)構(gòu)的空間數(shù)據(jù)庫(kù)索引方法,其特點(diǎn)在于構(gòu)建新的索引樹(shù),該索引樹(shù)是由兩個(gè)空間索引樹(shù)組成的第一個(gè)是擴(kuò)展的R-樹(shù),它是根據(jù)地理空間特征來(lái)存放空間對(duì)象;第二個(gè)是空間關(guān)系索引樹(shù),根據(jù)它是用來(lái)表示空間區(qū)域的空間關(guān)系;兩個(gè)空間索引樹(shù)由在節(jié)點(diǎn)上相應(yīng)的指針連接;空間關(guān)系索引樹(shù)是上面擴(kuò)展R-樹(shù)的一個(gè)補(bǔ)充,它反映了空間區(qū)域的關(guān)系,通過(guò)聚類(lèi)將空間區(qū)域聚集在一起,在空間關(guān)系索引樹(shù)的每個(gè)節(jié)點(diǎn)上有一個(gè)指針,指針指向相應(yīng)的在擴(kuò)展的R樹(shù)上具有相同的特征向量的節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求I所述的空間數(shù)據(jù)庫(kù)索引方法,其特點(diǎn)在于所述的擴(kuò)展的R-樹(shù)是在 R-樹(shù)的基礎(chǔ)上,構(gòu)建一個(gè)平衡樹(shù),它符合R -樹(shù)的基本條件,根據(jù)空間檢索的需要,R-樹(shù)的節(jié)點(diǎn)將被重新定義,擴(kuò)展的R-樹(shù)的葉節(jié)點(diǎn)定義為(KI,*P)},A),其中(I,*p)是R-樹(shù)葉節(jié)點(diǎn)中包含的一對(duì)數(shù)組,其中*P是空間對(duì)象的指針,I是索引空間對(duì)象的MBR,A是該空間區(qū)域包含的空間對(duì)象,擴(kuò)展的R-樹(shù)的非葉子節(jié)點(diǎn)的定義為({(I,child _p*)},R),({(I, child_p*)},R)是R-樹(shù)非葉節(jié)點(diǎn)中包含的一對(duì)數(shù)組,其中孩子指針是指向下級(jí)節(jié)點(diǎn)的指針,I是所有孩子節(jié)點(diǎn)所涵蓋的MBR,R是空間關(guān)系的特征向量,索引空間對(duì)象的MBR和空間對(duì)象。
3.根據(jù)權(quán)利要求I所述的空間數(shù)據(jù)庫(kù)索引方法,其特點(diǎn)在于所述的空間關(guān)系索引樹(shù)是擴(kuò)展R-樹(shù)的一個(gè)補(bǔ)充,它反映了空間區(qū)域的關(guān)系,通過(guò)聚類(lèi)將空間區(qū)域聚集在一起,在空間關(guān)系索引樹(shù)的每個(gè)節(jié)點(diǎn)上有一個(gè)指針,指針指向相應(yīng)的在擴(kuò)展的R樹(shù)上具有相同的特征向量的節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求I所述的空間數(shù)據(jù)庫(kù)索引方法,其特點(diǎn)在于所述的索引方法包括a)查找方法當(dāng)要查找一個(gè)空間數(shù)據(jù)時(shí),首先對(duì)其聚類(lèi),得其空間關(guān)系向量,查找所有與其重疊的空間目標(biāo)或完全落入其的空間目標(biāo),必須對(duì)所有與其相交的子空間所關(guān)聯(lián)的索引樹(shù)進(jìn)行查找操作,當(dāng)找到與其相交的空間區(qū)域后,用R-樹(shù)的查找算法對(duì)其進(jìn)行索引, 如果此空間區(qū)域的葉子節(jié)點(diǎn)已經(jīng)是孩子結(jié)點(diǎn),則所引到的目標(biāo)結(jié)點(diǎn)就是所要查找的數(shù)據(jù); 如果不是孩子結(jié)點(diǎn),則再向下一級(jí)進(jìn)行查找;b)插入方法當(dāng)插入一個(gè)空間數(shù)據(jù)時(shí),如果插入的結(jié)點(diǎn)位置已經(jīng)是葉子結(jié)點(diǎn),則直接用R-樹(shù)算法將其插入其中,如果插入的位置不是葉子結(jié)點(diǎn),則判斷此位置的孩子結(jié)點(diǎn)是否包含所要插入的空間數(shù)據(jù);如果包含,則繼續(xù)進(jìn)行插入,如果不包含則直接插入到此結(jié)點(diǎn)位置,插入后重新調(diào)整空間關(guān)系;c)刪除方法當(dāng)刪除一個(gè)數(shù)據(jù)時(shí),如果刪除的結(jié)點(diǎn)位置已經(jīng)是葉子結(jié)點(diǎn),則直接用 R-樹(shù)算法將其插入其中,如果刪除的位置不是葉子結(jié)點(diǎn),則判斷此位置的孩子結(jié)點(diǎn)是否包含所要?jiǎng)h除的空間數(shù)據(jù),如果包含,則繼續(xù)進(jìn)行刪除,如果不包含則直接刪除數(shù)據(jù),刪除后重新調(diào)整空間關(guān)系。
全文摘要
本發(fā)明涉及一種空間數(shù)據(jù)庫(kù)索引方法。主要用于解決空間數(shù)據(jù)索引效率和準(zhǔn)確性的問(wèn)題,該方法是一種策略性的方法,通過(guò)將空間區(qū)域分塊,構(gòu)建兩級(jí)空間索引樹(shù),分步索引,達(dá)到提高索引效率和索引準(zhǔn)確性的目的??臻g索引的技術(shù)和方法是GIS關(guān)鍵技術(shù)之一,是快速、高效的查詢(xún)、檢索和顯示地理空間數(shù)據(jù)的重要指標(biāo),它的優(yōu)劣直接影響空間數(shù)據(jù)庫(kù)和GIS系統(tǒng)的整體性能。所設(shè)計(jì)的方法是基于新構(gòu)建的索引樹(shù),該索引樹(shù)是由兩個(gè)空間索引樹(shù)組成的。第一個(gè)是擴(kuò)展的R-樹(shù),它是根據(jù)地理空間特征來(lái)存放空間對(duì)象。第二個(gè)是空間關(guān)系索引樹(shù),根據(jù)它是用來(lái)表示空間區(qū)域的空間關(guān)系。兩個(gè)空間索引樹(shù)由在節(jié)點(diǎn)上相應(yīng)的指針連接。
文檔編號(hào)G06F17/30GK102609530SQ20121003217
公開(kāi)日2012年7月25日 申請(qǐng)日期2012年2月14日 優(yōu)先權(quán)日2012年2月14日
發(fā)明者華瑜敏, 吳昊, 張登銀, 程春玲 申請(qǐng)人:江蘇新大誠(chéng)信息技術(shù)有限公司