摘 要:Oracle Spatial在空間數據庫的應用,極大地方便了空間數據庫的管理與維護。GIS作為空間數據庫的典型應用,提高了數據庫系統的有效可查性,并有著良好的應用前景。通過實例分析了GIS數據庫的性能,并介紹了OCI接口程序在使用時的調用機理,同時闡述了GIS數據庫以后的發展趨勢。
關鍵詞:OCI ; GIS; 空間數據庫; Oracle
中圖分類號:TP311文獻標識碼:A
文章編號:1004-373X(2010)15-0190-02
Development and Application of OCI-based GIS Database
ZHANG Hua-wei1, ZHANG Hong-yong2, CAI Yi-bing2, ZHAO Chen1
(1. PLA University of Science and Technology, Nanjing 210007, China; 2.CEDSEC, Beijing 100141, China)
Abstract: The application of oracle spatial in spatial database is convenient for database management and maintenance. As a typical application of spatial database, GIS improves effectiveness of database system and has a favorable prospect in application. The performance of GIS database is analyzed by a practical example, the mechanism of OCI interface program for GIS database and the development tendency of GIS database are proposed.
Keywords: OCI;GIS;spatial database; Oracle
0 引 言
Oracle憑借其優越的穩定性和卓越的性能在眾多領域里有著廣泛的應用。高性能是Oracle優于其他數據庫的關鍵因素,隨著圖形科學、空間分析等科學廣泛深入,GIS(Geographic Information System)數據庫在空間數據庫方面中應用越來越廣泛。
與此同時在數據庫應用開發過程中,應用程序的開發語言和開發方式對終端應用程序的性能有著重要的影響。數據庫開發有多種接口方式,如 OCI/OCCI,ADO通用接口,ODBC,0040,OLEDB。其中以OCI(Oracle Call Interface)應用最廣,性能最好。本文通過實例分析介紹GIS數據庫系統中OCI應用以及GIS數據庫發展方向。
1 GIS介紹
Oracle Spatial是Oracle數據庫中非常重要的組件選項,它提供了一套SQL方案和函數,用來存儲、檢索、更新和查詢數據庫中的空間要素集合,它包括一個方案(MDSYS),描述支持幾何數據類型的存儲、語法以及語義。添加了Spatial的Oracle是一個完整的空間數據庫。GIS是以信息的采集、存儲、描述、分析和應用與空間地理分布有關的數據的計算機系統。作為數據庫管理技術、計算機圖形學以及空間分析方法的共同產物,已在科教、軍事、政府等部門得到了長足的應用。
2 OCI應用及特點
OCI是Oracle 數據庫調用接口,是由Oracle提供的用于開發前端應用程序及中間件的C/C++開發類庫。
通過OCI,可以控制所有類型的SQL語句的執行,包括DDL、控制語句(事務、會話、系統)、查詢、DML、PL/SQL,以及嵌入式SQL。OCI能夠最大程度地控制程序的運行,執行Oracle服務器所允許的多有數據庫操作,可以訪問Oracle數據庫服務器里的所有數據類型,包括標量值、集合和所有對象類型的實例,可以以引用的方式訪問對象及其元數據,可以動態獲取、修改對象的屬性值。其開發過程如圖1所示。
OCI是Oracle開發接口的底層實現,而ADO,JDBC都是在OCI上層的封裝。因此,OCI少了很多層的封裝,可以提供應用程序與Oracle的直接連接,所以OCI可以提供最佳的性能。并且OCI程序具有SQL非過程性的優點,使開發的編程技術具有更強的數據處理能力。
圖1 OCI應用程序的開發過程
3 跨域實例實現分析
某大型跨地域商城監控管理系統利用GIS模塊,可以在監控管理界面上引入電子地圖來實現各分散地域的集中管控、重點部門監控以及所有靜態信息的聯動。其中,在連接各地數據庫實現信息交互時根據要求調用統一接口開發程序,并利用統一的信息傳輸體制實現整個系統的維護和使用。
3.1 整體方案設計
系統開發平臺選用VC++6.0,使用OCI組件連接Oracle數據庫,其中各單位的地理信息通過地圖采集輸入。軟件的設計方案如圖2所示。
圖2 系統軟件設計
在使用OCI進行對象類型訪問時,必須遵循以下步驟:
(1) 在數據庫中創建對象類型或者集合類型,并保存在數據庫中。
(2) 調用對象類型轉換器,特定的參數由intype提供。
舉例向本系統表product中添加對象類型的記錄行,關鍵步驟為:
OCIType * get_tdo(char *szname);//獲取一個類型明的OCI類型指針
Static text* dbname =(text*)“ods”;//數據庫服務名
Static text* tablename =(text*)“product”;//表名
Static text* insert=(text*)“insert into product values (:1,PRTYPE(:2,:3,:prarray))”;// insert 語句
Prarray_tdo = get_tdo (PRARRAYT);//獲取類型映射信息
3.2 系統的主要功能及技術分析
主要功能包括:
(1) 顯示功能。如全屏、全地圖顯示,區域對象的縮放等。
(2) 信息查詢??呻S時在主監控界面上選擇任意監控設備后查詢其編號、型號、狀態等詳細信息。
(3) 告警提示。接受控制中心的告警指令,在地圖上高亮閃爍提示具體報警地點。
(4) 實時顯示監控設備的地域從屬關系,便于對監控設備的管理和調度。
OCI數據接口調用:由于本系統中數據庫的接口是相對獨立的,數據接口主要面向的是采集信息的處理顯示模塊。各種數據的采集工作非常多而且關系復雜。面對多個不同數據源中抽取相關的數據并匯集在數據中轉區,為數據倉庫服務的數據采集做準備,必然對數據接口的要求非常的嚴格。一般的ODBC或JDBC間的數據交換每秒在100~300條記錄左右。而以OCI抽取轉換文本進行交換的方式,處理速度可以達到每秒1~2萬條甚至更多。同時,對系統的性能影響也差距很大。
另外,數據庫內容組織的有效程度將影響整個GIS數據庫應用系統的運行效率。數據的組織則屬于數據庫設計的范疇,根據不同應用的要求。地理數據有矢量和柵格之分,各種數據又同時具有空間和屬性特征,GIS數據庫既要存儲和管理屬性數據和空間數據,又要存儲和管理空間拓撲關系數據,GIS中涉及的數據不同于常規管理信息中的數據,它是具有豐富地理特征的地理數據的集合。因此在設計過程中充分考慮空間數據的特征。系統通過統計確定各部門裝備的應用目的,滿足不同用戶的應用需求,從而建立一個適時有效的、完整的商業GIS數據庫。
4 結 語
對GIS數據庫進行了闡述,針對OCI應用的GIS數據庫實例進行了分析。隨著網絡信息交互能力的提高和GIS軟件技術的發展,網絡GIS數據庫系統在服務能力、用戶界面、易接近性、跨平臺操作等方面將有長足的進步,并且在以后一段時間內,將成為GIS研究的主要發展方向。
參考文獻
[1]劉孟軍,鄒平華,唐好選,等.基于GIS的空間熱網關閥方案的研究[J].武漢理工大學學報,2006,28(1):51-54.
[2]劉光.地理信息系統二次開發教程:組件篇[M].北京:清華大學出版社,2003.
[3]郝紅宇,姚遠,張其善.GIS數據的一體化存儲管理在Oracle Spatial中的實現方法[J].無線電工程,2004,34(5):4-6.
[4]朱志偉,劉書雷,李軍.一種基于Oracle Spatial的Web GIS實現方法[J].計算機工程,2004,30(2):98-99.
[5]孟曉鑫.基于Web GIS的通信線路維護系統的設計與實現[D].長沙:國防科學技術大學,2007.
[6]陳龍.基于Oracle Spatial與ArcSDE的空間基礎數據庫系統研究與實現[D].長沙:國防科學技術大學,2005.
[7]何雄.Oracle Spatial與OCI高級編程[M].北京:中國鐵道出版社,2006.
[8]邵曉芳.基于Oracle的空間數據庫接口技術研究[D].長沙:國防科學技術大學,2002.
[9]邵曉芳,劉純貴,楊澤剛.基于OCI的空間數據訪問[J].電腦編程技巧與維護,2010(2):64-66.
[10]李伍元,黃東.基于OCI和ODBC異構數據庫通用接口設計[J].計算機技術與發展,2007,17(2):149-152.