[摘要]空間數(shù)據(jù)庫索引技術是近些年來在應用中發(fā)展起來的一門新興學科,它具有十分廣闊的應用市場。同時,空間數(shù)據(jù)庫索引技術也是一門隨著相關應用技術及計算機軟硬件技術的進步而不斷發(fā)展和完善的學科。本論文在空間數(shù)據(jù)庫理論的基礎上簡要介紹幾種常用的商用數(shù)據(jù)庫的空間索引技術。
[關鍵詞]空間數(shù)據(jù)庫;索引;Mysql;數(shù)據(jù)引擎
空間數(shù)據(jù)庫是GIS等應用平臺的核心,根據(jù)幾何(含拓撲)和屬性(含語義)數(shù)據(jù)的不同管理方式,空間數(shù)據(jù)的物理存儲結構可以分為傳統(tǒng)的混合結構和現(xiàn)代的集成結構。傳統(tǒng)的混合結構以文件形式存儲幾何數(shù)據(jù),以數(shù)據(jù)表形式存儲屬性數(shù)據(jù),兩者通過公共標識ID相聯(lián)接?,F(xiàn)在的空間數(shù)據(jù)應用平臺紛紛開始尋求向集成結構的空間數(shù)據(jù)庫方向發(fā)展。在基于特征的整體空間數(shù)據(jù)模型支持下,利用成熟的商用擴展關系數(shù)據(jù)庫管理系統(tǒng)來存儲和管理海量數(shù)據(jù),這已經(jīng)成為大型空間數(shù)據(jù)應用平臺管理空間數(shù)據(jù)的主流方式。
1、Oracle Spatial的空間數(shù)據(jù)索引
Oracle8i及其之后的產(chǎn)品是一種新型的對象關系型數(shù)據(jù)庫管理系統(tǒng)。它可以通過用戶定義的功能和索引方式,對用戶定義的數(shù)據(jù)類型進行存儲、恢復和操作,彌補了以往關系數(shù)據(jù)庫管理的不足。在Oracle8i中,通過空間對象數(shù)據(jù)類型能夠處理能夠處理表示空間的信息,通過空間數(shù)據(jù)庫索引方式和功能可以訪問和操作空間數(shù)據(jù)。
Oracle Spatial提供了兩種空間數(shù)據(jù)索引機制,即R樹索引和四叉樹索引。這兩種索引技術即可單獨使用,也可混合使用。不同的空間索引適合不同的情況。用戶可以在同一幾何列上同時維護兩種空間索引。R樹空間索引是默認的空間索引。
(1)R樹索引
R樹空間索引是默認的空間索引。它通過最小邊界矩形(MBR)來匹配每個幾何體,對于一個幾何體圖層,R樹索引包含該層上所有幾何體的分層MBR索引。R樹索引存儲在空間索引表SDO_INDEX_TABLE中,而該表又在視圖USER_SDO_INDEX_METADATA中。R樹索引通過一個順序數(shù)字發(fā)生器來確保當前用戶對索引的實時更新。在創(chuàng)建空間索引的時候,如果不指明任何索引參數(shù)就創(chuàng)建的是R樹索引。
(2)四叉樹索引
在線性四叉樹索引方案中,坐標空間受支配于鑲嵌模型中覆蓋每個幾何體的唯一的像素劃分,所選取的像素劃分都按一定的方式編碼并存放在表SDOINDEX中。鑲嵌處理是通過分解坐標空間來實現(xiàn)的。這種分解師有規(guī)律的、分等級的。坐標空間的范圍被看做一個矩形??臻g劃分既可以使用固定大小的像素來覆蓋幾何體,也可以使用可變大小的像素來覆蓋幾何體。前者受像素分解的控制,后者則受最大像素數(shù)的控制。這兩種方式分別由參數(shù)SDO_LEVEL和SDO_MUMTILES來選取。因此,Oracle Spatial的四叉樹索引還可以進一步分成兩類,一類是固定索引,另一類是混合索引。如果使用合理,索引將極大地提高系統(tǒng)性能。管理員必須首先確定特定系統(tǒng)中的數(shù)據(jù)及數(shù)據(jù)訪問模式是否適合創(chuàng)建索引,確定使用索引后,必須確定為哪個字段創(chuàng)建索引。
2、IBM空間數(shù)據(jù)刀片(Spatial DataBlade)
IBM DB2 Spatial Extender和IBM Informix Spatia DataBlade通過擴展數(shù)據(jù)庫原有標準數(shù)據(jù)類型,使用戶可以為表定義空間列,并且指定空間的類型為ST_Geometry,從而達到存儲空間幾何數(shù)據(jù)的目的。IBM DB2 Spatial Extender提供基于網(wǎng)格的三層空間索引,該索引技術是基于傳統(tǒng)的分層B樹索引形成的。而Informix Spatial DataBlade提供R樹索引,使用戶可以索引多維數(shù)據(jù)。Informix Spatial Extender通過查詢優(yōu)化器,利用成本最小的優(yōu)化技術,通過一組Spatial函數(shù)提高查詢性能。DB2 Spatial Extender擴展了標準SQL,使用戶可以構建用于空間查詢和操作的SQL語句。Informix Spatia DataBlade也提供了一系列的空間操作符和空間函數(shù),并且提供了擴展的SQL以進行空間相關的處理。
3、MySQL空間數(shù)據(jù)擴展
MySQL Spatial Extensions用自己的Geometry數(shù)據(jù)類型存儲空間數(shù)據(jù),符合和遵循OpenGIS中的Geometry模型。在MySQL中可用三種方法生成Geometry的實例。一種是采用WKT函數(shù);第二種是采用WKB函數(shù);第三種是MySQL專有的函數(shù)。MySQL Spatial Extensions采用R樹進行空間索引。MySQL能夠以創(chuàng)建常規(guī)索引相同的方式創(chuàng)建空間索引,不同之處在于將創(chuàng)建常規(guī)索引的SQL語句用Spatial關鍵字進行擴展。MySQL實現(xiàn)了開放GIS聯(lián)盟擴展SQL的一個子集。在空間查詢中,用WKT、WKB兩種標準的空間數(shù)據(jù)格式表示數(shù)據(jù),且提供一系列空間函數(shù),能夠完成對空間數(shù)據(jù)的各種操作。
4、ERSI空間數(shù)據(jù)引擎
空間數(shù)據(jù)引擎是一種處于應用程序和數(shù)據(jù)庫管理系統(tǒng)之間的中間件技術,在用戶和異構空間數(shù)據(jù)庫之間提供了一個開放接口。用戶可通過空間數(shù)據(jù)引擎將不同形式的空間數(shù)據(jù)提交給數(shù)據(jù)庫管理系統(tǒng),由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理;同樣,用戶也可以通過空間數(shù)據(jù)引擎從數(shù)據(jù)庫管理系統(tǒng)中獲取空間類型的數(shù)據(jù),滿足客戶端操作需求。因此,數(shù)據(jù)庫管理系統(tǒng)實質上是形式各異的空間數(shù)據(jù)的容器,而空間數(shù)據(jù)引擎就是空間數(shù)據(jù)出入該容器的通道。
空間數(shù)據(jù)引擎是聯(lián)系空間數(shù)據(jù)和應用程序的中介??臻g數(shù)據(jù)引擎的主要任務和功能為:創(chuàng)建新的空間數(shù)據(jù)庫或存在的空間數(shù)據(jù)庫建立連接;提供空間數(shù)據(jù)類型(SDT)的支持;數(shù)據(jù)定義;數(shù)據(jù)操作;錯誤處理等。
結束語
空間數(shù)據(jù)庫索引技術一直是計算機科學技術及相關研究領域的熱點問題,針對空間數(shù)據(jù)本身的特點及空間數(shù)據(jù)的查詢特點,國內外學者開發(fā)了很多空間索引技術??臻g數(shù)據(jù)庫索引技術是提高空間數(shù)據(jù)庫查找性能的關鍵技術,它將直接影響到空間數(shù)據(jù)庫系統(tǒng)的成敗。
參考文獻
[1]柳建平,楊曉宇,岳麗華,趙振西.一種基于R*-tree的時空索引.計算機工程,2003,29(14):60~62.
[2]王元珍,金光,劉少治,石青青.一種針對時空數(shù)據(jù)設計的時態(tài)索引.計算機工程與應用,2002,23:197~199.
[3]肖偉器,馮玉才,繆勇武.空間對象數(shù)據(jù)的網(wǎng)絡索引機制.計算機學報,1994,10;736~742.
作者簡介
李艷紅(1978-),女,西安外事學院,講師,碩士,研究方向:數(shù)據(jù)庫理論與應用.