基于OCI的GIS數(shù)據(jù)庫的開發(fā)與應用
O 引言
Oracle憑借其優(yōu)越的穩(wěn)定性和卓越的性能在眾多領域里有著廣泛的應用。高性能是Oracle優(yōu)于其他數(shù)據(jù)庫的關鍵因素,隨著圖形科學、空間分析等科學廣泛深入,GIS(Geographic Information System)數(shù)據(jù)庫在空間數(shù)據(jù)庫方面中應用越來越廣泛。
與此同時在數(shù)據(jù)庫應用開發(fā)過程中,應用程序的開發(fā)語言和開發(fā)方式對終端應用程序的性能有著重要的影響。數(shù)據(jù)庫開發(fā)有多種接口方式,如OCI/OCCI,ADO通用接口,ODBC,0040,OLEDB。其中以OCI(Oracle Call Interface)應用最廣,性能最好。本文通過實例分析介紹GIS數(shù)據(jù)庫系統(tǒng)中OCI應用以及GIS數(shù)據(jù)庫發(fā)展方向。
1 GIS介紹
Oracle Spatial是Oracle數(shù)據(jù)庫中非常重要的組件選項,它提供了一套SQL方案和函數(shù),用來存儲、檢索、更新和查詢數(shù)據(jù)庫中的空間要素集合,它包括一個方案(MDSYS),描述支持幾何數(shù)據(jù)類型的存儲、語法以及語義。添加了Spatial的Oracle是一個完整的空間數(shù)據(jù)庫。GIS是以信息的采集、存儲、描述、分析和應用與空間地理分布有關的數(shù)據(jù)的計算機系統(tǒng)。作為數(shù)據(jù)庫管理技術、計算機圖形學以及空間分析方法的共同產(chǎn)物,已在科教、軍事、政府等部門得到了長足的應用。
2 OCI應用及特點
OCI是Oracle數(shù)據(jù)庫調(diào)用接口,是由Oracle提供的用于開發(fā)前端應用程序及中間件的C/C++開發(fā)類庫。
通過OCI,可以控制所有類型的SQL語句的執(zhí)行,包括DDL、控制語句(事務、會話、系統(tǒng))、查詢、DML、PL/SQL,以及嵌入式SQL。OCI能夠最大程度地控制程序的運行,執(zhí)行Oracle服務器所允許的多有數(shù)據(jù)庫操作,可以訪問Oracle數(shù)據(jù)庫服務器里的所有數(shù)據(jù)類型,包括標量值、集合和所有對象類型的實例,可以以引用的方式訪問對象及其元數(shù)據(jù),可以動態(tài)獲取、修改對象的屬性值。其開發(fā)過程如圖1所示。
OCI是Oracle開發(fā)接口的底層實現(xiàn),而ADO,JDBC都是在OCI上層的封裝。因此,OCI少了很多層的封裝,可以提供應用程序與Oracle的直接連接,所以OCI可以提供最佳的性能。并且OCI程序具有SQL非過程性的優(yōu)點,使開發(fā)的編程技術具有更強的數(shù)據(jù)處理能力。
3 跨域?qū)嵗龑崿F(xiàn)分析
某大型跨地域商城監(jiān)控管理系統(tǒng)利用GIS模塊,可以在監(jiān)控管理界面上引入電子地圖來實現(xiàn)各分散地域的集中管控、重點部門監(jiān)控以及所有靜態(tài)信息的聯(lián)動。其中,在連接各地數(shù)據(jù)庫實現(xiàn)信息交互時根據(jù)要求調(diào)用統(tǒng)一接口開發(fā)程序,并利用統(tǒng)一的信息傳輸體制實現(xiàn)整個系統(tǒng)的維護和使用。
3.1 整體方案設計
系統(tǒng)開發(fā)平臺選用VC++6.0,使用OCI組件連接Oracle數(shù)據(jù)庫,其中各單位的地理信息通過地圖采集輸入。軟件的設計方案如圖2所示。
在使用OCI進行對象類型訪問時,必須遵循以下步驟:
(1)在數(shù)據(jù)庫中創(chuàng)建對象類型或者集合類型,并保存在數(shù)據(jù)庫中。
(2)調(diào)用對象類型轉(zhuǎn)換器,特定的參數(shù)由intype提供。
舉例向本系統(tǒng)表product中添加對象類型的記錄行,關鍵步驟為:
3.2 系統(tǒng)的主要功能及技術分析
主要功能包括:
(1)顯示功能。如全屏、全地圖顯示,區(qū)域?qū)ο蟮目s放等。
(2)信息查詢??呻S時在主監(jiān)控界面上選擇任意監(jiān)控設備后查詢其編號、型號、狀態(tài)等詳細信息。
(3)告警提示。接受控制中心的告警指令,在地圖上高亮閃爍提示具體報警地點。
(4)實時顯示監(jiān)控設備的地域從屬關系,便于對監(jiān)控設備的管理和調(diào)度。
OCI數(shù)據(jù)接口調(diào)用:由于本系統(tǒng)中數(shù)據(jù)庫的接口是相對獨立的,數(shù)據(jù)接口主要面向的是采集信息的處理顯示模塊。各種數(shù)據(jù)的采集工作非常多而且關系復雜。面對多個不同數(shù)據(jù)源中抽取相關的數(shù)據(jù)并匯集在數(shù)據(jù)中轉(zhuǎn)區(qū),為數(shù)據(jù)倉庫服務的數(shù)據(jù)采集做準備,必然對數(shù)據(jù)接口的要求非常的嚴格。一般的ODBC或JDBC間的數(shù)據(jù)交換每秒在100~300條記錄左右。而以OCI抽取轉(zhuǎn)換文本進行交換的方式,處理速度可以達到每秒1~2萬條甚至更多。同時,對系統(tǒng)的性能影響也差距很大。
另外,數(shù)據(jù)庫內(nèi)容組織的有效程度將影響整個GIS數(shù)據(jù)庫應用系統(tǒng)的運行效率。數(shù)據(jù)的組織則屬于數(shù)據(jù)庫設計的范疇,根據(jù)不同應用的要求。地理數(shù)據(jù)有矢量和柵格之分,各種數(shù)據(jù)又同時具有空間和屬性特征,GIS數(shù)據(jù)庫既要存儲和管理屬性數(shù)據(jù)和空間數(shù)據(jù),又要存儲和管理空間拓撲關系數(shù)據(jù),GIS中涉及的數(shù)據(jù)不同于常規(guī)管理信息中的數(shù)據(jù),它是具有豐富地理特征的地理數(shù)據(jù)的集合。因此在設計過程中充分考慮空間數(shù)據(jù)的特征。系統(tǒng)通過統(tǒng)計確定各部門裝備的應用目的,滿足不同用戶的應用需求,從而建立一個適時有效的、完整的商業(yè)GIS數(shù)據(jù)庫。
4 結語
對GIS數(shù)據(jù)庫進行了闡述,針對OCI應用的GIS數(shù)據(jù)庫實例進行了分析。隨著網(wǎng)絡信息交互能力的提高和GIS軟件技術的發(fā)展,網(wǎng)絡GIS數(shù)據(jù)庫系統(tǒng)在服務能力、用戶界面、易接近性、跨平臺操作等方面將有長足的進步,并且在以后一段時間內(nèi),將成為GIS研究的主要發(fā)展方向。