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