?

OracleSpatial空間數據庫的設計及應用

2014-09-24 05:42鄒朝
城市建設理論研究 2014年25期
關鍵詞:設計應用

鄒朝

【摘要】本論文首先對OracleSpatial簡介進行了說明,然后通過OracleSpatial空間數據進行了分析。對于應用程序的開發,論文詳細闡述了每個環節出現的一些問題以及針對這些問題,制定有效的推進方法。

【關鍵詞】空間數據庫,設計,應用

中圖分類號:S611文獻標識碼: A

一、前言

當OracleSpatial空間數據庫的設計還有很大的發展空間,因此對OracleSpatial空間數據庫的設計及應用就顯得尤其重要,投空間數據庫的設計,直接關系到應用的順利進行。

二、OracleSpatial簡介

OracleSpatial支持3種基本集合類型,以及由這些類型組成的幾何體。3種基本類型是:點,線串和N點多邊形,它們都是二維的。二維點是兩個坐標X和Y組成的元素。線串由兩個或更多的點按一定的順序排列構成,這些點定義了線段。線串可以由直線段,弧線段或二者混合構成。多邊形由連接的線串構成,這些線串形成封閉環形,多邊形的內部也就因而確定了。因為多邊形由線串構成,這就意味著一個多邊形可以包含一些直線邊和一些圓弧邊。

空間數據模型是一個由元素幾何體和層組成的層次結構??臻g層由幾何體構成,幾何體又是由元素構成。元素是幾何體的基本組成部分。例如,元素可以作為公用事業供應點(點),道路(線串)或者國界(多邊形)的模型。在有洞的多邊形中(例如湖中的小島),多邊形的外環與內環被視為兩個不同的元素,它們共同構成一個復雜的多邊形。一個幾何體就是一個用戶空間特征的表示,以基本元素的有序集合為模型而構成。

三、OracleSpatial空間數據

1、地理元數據管理模式

OracleSpatial采取元數據表和空間數據表共同管理地理空間數據[1]。MDSYS是OracleSpatial的管理用戶,MDSYS方案中,表SDOGEOMMETADATATABLE存儲所有上載到Oracle中的MapInfo地圖信息,每條記錄描述了一個空間數據表的圖形列名、圖形的坐標維名稱,以及各維坐標的上界、下界和精度等:表SDOINDEXMETADATATABLE存儲與索引相關的信息,如:被索引的列名,索引的方式,索引的級別,索引的所有者等。

2、OracleSpatial空間數據存儲模式

關系式模型:用多行記錄和字段類型為Number的一張表來表示一個空間實體。關系式模型:這種模型使用數據庫表,表中有一個類型為MDSYSSDOGEOMETRY的字段,用一行記錄來存儲一個空間數據實體。兩者的主要區別為:對象關系模式下用列來存儲對象,而關系模式下用二維表來存儲對象。Oracle為管理空間數據提供了對象、關系模式SDO(SpatialDataObject),同時提供優秀的空間索引機制。OracleSpatial的對象、關系模型實現方法有一組對象數據類型、一種類型的索引方法以及在這些類型上的操作符組成。Oracle9iSpatial空間數據表的每條記錄存儲了一個空間實體(對象)的屬性和圖形信息。屬性信息為數字或文本,是非對象數據:圖形信息,即空間數據,存放在字段名為GEOLOC,字段類型為SDOGEOMETRY的對象類型記錄中。擁有該字段的任何一個表,必須要有另外一列或幾列用于定義這個表的唯一主鍵。

3、MapInfo上載空間數據

MapInfo提供了一個數據上載工具EasyLoader,可以用手工的方式把Tab文件上載到OracleSpatial數據庫中。EasyLoader通過ODBC向一般關系數據庫上載數據,通過OCI向OracleSpatial上載數據。上載數據時,選擇OracleSpatial,輸入用戶名和口令,在圖層列表中選擇要上載的Tab文件,以及記錄數目,選擇Upload即可上載數據。上載結束后EasyLoader會有提示信息。通過EasyLoader上載空間數據后,在OracleSpatial中會自動創建PRINX或MI_PRINX字段作為地圖索引主關鍵字段。注意在上載選項中,要事先選定是向已有的表添加數據,還是新建/覆蓋一個表。

四、應用程序的開發

1、創建數據庫

建立一個數據庫,需許多準備工作和計劃,主要有:設計數據庫邏輯結構;設計數據庫物理結構;選取全局數據庫名(GlobalDatabaseName);決定字符集(CharacterSet)。上述準備工作做好后,開始進行本次開發所涉及的空間數據庫的實現工作,具體如下:

(一)、空間圖層

在Oracle數據庫中空間幾何數據按照空間圖層、幾何圖形、元素來分層組織??臻g圖層是由幾何圖形構成,而幾何圖形是由元素來構成的??臻g圖層的設計至關重要。

(二)、查詢和索引

OracleSpatial中,空間幾何數據的查詢分為兩步:根據條件檢索出要查詢內容的范圍,在服務器端完成:在上步所查詢的范圍中進一步檢索,找出所要查詢的空間幾何數據,在服務器或客戶端進行。OracleSpatial使用兩極查詢模型來解決空間查詢和連接問題。OracleSpatial兩級是指為解決該問題,使用兩種不同的操作。如果兩種操作同時被執行,那么將返回最精確的結果集。

OracleSpatial使用二叉樹索引完成第一步查詢工作,將所要查詢的空間幾何圖形用小方格覆蓋,以確定空間幾何圖形的范圍。索引又可以分為固定索引和混合索引。固定索引就是索引時,對所有圖形都以相同的小方格覆蓋,而混合索引只對重點區域進行方格覆蓋。32MapX從OracleSpatial中讀取數據通過*tab或*gst文件,MapX可以實時的存取空間數據庫中的數據。*tab文件是一個文本文件:*gst是MapXGeosetManager的生成格式,是多個tab文件的集合。一旦創建了文件,開發人員可以在程序中實現地圖數據的存取功能,其中涉及到數據庫的連接及數據的讀取。通過圖層對象Layers的Add方法,可以添加圖層到集合并在地圖上顯示。具體的調用方法:[Layer=]LayersAdd(LayerInfo,[position])其中:LayerInfo可以是Tab文件的完整路徑,也可以是一個LayerInfo對象:position是該添加的圖層在地圖中的疊加順序。LayerInfo描述了新圖層的定義,利用LayerInfoAddParameter方法可將LayerInfo的參數添加到LayerInfo對象中,格式如下:LayerInfoAddParameter(name,value)。

MapX訪問空間數據,首先訪問元數據表,獲取Oracle9iSpatial空間數據表的描述信息。通過Oracle9i的安全驗證,被賦予適當權限的合法用戶,可讀取元數據表信息。其次訪問某一用戶的空間數據表,獲取詳細的空間數據。

2、基于OracleSpatial的空間分析

(一)、OracleSpatial的空間分析函數

OracleSpatial的空間分析主要依賴于空間數據操作函數,主要有:用于相交查詢的SDORELATE,SDOFILTER,SDOWITHINDISTANCE:用于緩沖區分析的SDOBUFFER,用于面積、長度計算函數的SDOGEOM.AREA,SDOGEOM.LENGTH等。本文重點介紹用于相交查詢的SDORELATE函數。該函數的功能為確定與某一指定空間對象具有相交關系的對象(集合)有哪些。調用規則為:SDOFILETER(geometry1,geometry2,params),其中,參數geometry1和geometry2是要判斷關系的空間對象,params是空間操作符。

猜你喜歡
設計應用
BUBA臺燈設計
有種設計叫而專
陳國興設計作品
多媒體技術在小學語文教學中的應用研究
分析膜技術及其在電廠水處理中的應用
GM(1,1)白化微分優化方程預測模型建模過程應用分析
煤礦井下坑道鉆機人機工程學應用分析
氣體分離提純應用變壓吸附技術的分析
會計與統計的比較研究
匠心獨運的場地設計畫上完美句點
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合