基于 oracle Spatial 的空間數(shù)據(jù)庫緩存的關鍵技術

周 芹,李紹俊,宋關福,曾志明

( 1 中國科學院地理科學與資源研究所, 北京 100101; 2 北京超圖地理信息技術公司, 北京 100101 )

論文來源:地球信息科學

摘要:Oracle Spatial 是目前發(fā)展得比較成熟的對象關系型空間數(shù)據(jù)庫存儲模型, 它實現(xiàn)了空間數(shù)據(jù)與屬性數(shù)據(jù)的一體化存儲, 可以定義特定的數(shù)據(jù)類型, 具有開放的存儲格式, 為 GIS 數(shù)據(jù)共享提供新的解決方案; 但由于其采用擴展結構的空間數(shù)據(jù)庫模型, 對空間數(shù)據(jù)進行間接存取, 數(shù)據(jù)存儲和…

關鍵詞: 緩存; oracle Spatial; 空間數(shù)據(jù)庫

1 引言

空間數(shù)據(jù)是 GIS 的重要組成部分。Oracle Spa-tial 是目前發(fā)展得比較成熟的對象關系型數(shù)據(jù)存儲模型, 很多 GIS 應用系統(tǒng)都將其作為后臺數(shù)據(jù)存儲系統(tǒng)存放 GIS 數(shù)據(jù)。Oracle Spatial 與傳統(tǒng)的數(shù)據(jù)庫存儲模型相比優(yōu)勢主要表現(xiàn)在 : ( 1) Oracle Spatial的數(shù)據(jù)存儲結構是開放的, 它明確定義并公開了空間數(shù)據(jù)的邏輯結構, 使得基于 Oracle Spatial 的 GIS空間數(shù)據(jù)共享成為可能, 為 GIS 空間數(shù)據(jù)共享提供了新的解決方案; ( 2) 空間數(shù)據(jù)與屬性數(shù)據(jù)的一體化存儲, 空間數(shù)據(jù)和屬性數(shù)據(jù)的操作在 SQL 一級可以任意地有機結合。

但是這種擴展結構模型的空間數(shù)據(jù)庫對空間數(shù)據(jù)訪問是間接的, 效率比較低; 作為客戶端應用程序, 從數(shù)據(jù)庫獲取的 MDSYS.SDO_GEOMETRY對象一般需要解析成特定的數(shù)據(jù)格式; 而且 Oracle Spatial 的數(shù)據(jù)訪問接口( 如 OCI, Oracle Connection Interface) 不具備一次性獲取多條記錄的能力, 只能逐條獲取記錄, 加重了服務器負擔和網(wǎng)絡負載, 延長了客戶端等待時間。在 GIS 中數(shù)據(jù)的獲取是后期查詢、顯示、分析和處理的基礎 , 面對 GIS 海量數(shù)據(jù), 數(shù)據(jù)訪問效率的問題必須解決。本文旨在研究空間數(shù)據(jù)庫緩存的關鍵技術及應用。

2 擴展結構空間數(shù)據(jù)庫模型的應用分析

實際應用中, 數(shù)據(jù)量的急劇增長、對數(shù)據(jù)安全性、一致性等的要求, 基于傳統(tǒng)文件(Flat File)方式管理空間數(shù)據(jù)越來越不能滿足 GIS 應用的需求。利用數(shù)據(jù)庫系統(tǒng)( DBMS) 來存儲 GIS 數(shù)據(jù), 建立空間數(shù)據(jù)庫系統(tǒng)成為必然趨勢。

2.1 空間數(shù)據(jù)庫模型

理論上空間數(shù)據(jù)庫模型有: 混合數(shù)據(jù)庫模型( Hybrid Model) 、統(tǒng)一數(shù)據(jù)模型( Integrated Model) 、擴展結構模型 ( Extended Model) 、面向?qū)ο竽P? Object- Oriented Model) 和時空數(shù)據(jù)模型( Spatial-Temporal Model) 。隨著各種商業(yè)數(shù)據(jù)庫的發(fā)展, 目前在 GIS 領域中應用比較成熟的是統(tǒng)一數(shù)據(jù)模型、混合數(shù)據(jù)模型和擴展結構模型。

混合數(shù)據(jù)庫模型把空間數(shù)據(jù)和屬性數(shù)據(jù)分開存儲: 空間數(shù)據(jù)及其拓撲關系存放在文件中, 屬性數(shù)據(jù)存放在關系數(shù)據(jù)庫中, 二者通過唯一的標識符建立聯(lián)系。SuperMap 的 SDB 和 MapInfo 的 Table 格式采用的都是混合模型。

統(tǒng)一數(shù)據(jù)模型是一種純關系數(shù)據(jù)模型, 其空間數(shù)據(jù)和屬性數(shù)據(jù)都用關系數(shù)據(jù)庫的二維關系表來存儲, 使用標準關系連接機制建立空間數(shù)據(jù)與屬性數(shù)據(jù)的關聯(lián)。SuperMap SDX+和 ESRI 的 Arc SDE均采用了統(tǒng)一數(shù)據(jù)模型。

擴展結構模型采用統(tǒng)一的 DBMS 存儲幾何數(shù)據(jù)和屬性數(shù)據(jù), 與統(tǒng)一數(shù)據(jù)模型不同的是, 它在標準的關系數(shù)據(jù)庫上增加幾何管理層, 也可稱為對象- 關系模型。

Oralce Spatial 采用擴展結構模型, 作為 Oracle管理空間數(shù)據(jù)的插件, 是 Oracle 在原有純關系數(shù)據(jù)庫基礎上增加的空間數(shù)據(jù)管理層。

2.2 擴展結構模型的應用問題

擴展結構模型雖然省去了混合數(shù)據(jù)模型中空間數(shù)據(jù)和屬性數(shù)據(jù)繁瑣的連接, 也避免了統(tǒng)一數(shù)據(jù)模型中數(shù)據(jù)類型定義的局限性, 可以定義特定的空間數(shù)據(jù)類型, 但是由于通過標準數(shù)據(jù)庫之上的空間數(shù)據(jù)管理層對空間數(shù)據(jù)進行間接操作, 其數(shù)據(jù)存儲和訪問的效率比較低, 在訪問大數(shù)據(jù)量空間數(shù)據(jù)時表現(xiàn)得尤為明顯。

( 1) Oracle Spatial 的數(shù)據(jù)存儲機制。Oracle Spatial 實現(xiàn)了空間數(shù)據(jù)和屬性數(shù)據(jù)的一體化存儲,使兩者數(shù)據(jù)存放在一張二維數(shù)據(jù)表中。幾何對象存儲 為 MDSYS.SDO_GEOMETRY 類 型 。 SDO_GE-OMETRY 通過存儲實體的類型、參數(shù)化對象的控制點或者非參數(shù)化對象的坐標點來描述一個幾何對象, 可以表現(xiàn)為點、線、多邊形、復合對象等 GIS 中常用的空間數(shù)據(jù)類型, 也可描述多維信息; 幾何對象對應的屬性數(shù)據(jù)存放在同一條記錄的其他列。

( 2) Oracle Spatial 中用 SDO_GEOMETRY 對象存儲空間數(shù)據(jù), 而不是直接把空間數(shù)據(jù)以二進制塊的形式存放在關系數(shù)據(jù)庫中, 雖然實現(xiàn)了數(shù)據(jù)存儲格式的透明化, 任何客戶端應用程序都可以從數(shù)據(jù)庫中讀取空間數(shù)據(jù), 但是服務器和客戶端存取數(shù)據(jù)時都存在對空間數(shù)據(jù)的構造和解析的過程, 這種間接操作有損效率。且由于 Oracle Spatial 的客戶端數(shù)據(jù)訪問接口不具備從服務器端批量地獲取記錄的能力, 只能逐條取出, 對服務器的訪問頻繁, 且增加了網(wǎng)絡傳輸?shù)呢摀涂蛻舳说牡却龝r間。因此Or-acle Spatial 的數(shù)據(jù)訪問能力成為影響其在 GIS 領域廣泛應用的重要因素。

更多內(nèi)容請查看pdf