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