999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OCI對于空間數據庫的訪問
——基于編程實踐

2010-10-09 07:49:54林雪云
赤峰學院學報·自然科學版 2010年2期
關鍵詞:程序數據庫

林雪云

(福建師范大學 福清學院,福建 福清 350300)

基于OCI對于空間數據庫的訪問
——基于編程實踐

林雪云

(福建師范大學 福清學院,福建 福清 350300)

本文是作者在開發系統編程實踐的基礎上,介紹基于OCI對于空間數據庫的訪問,提供給從事軟件開發的工作人員用以學習與參考.

ODBC;Oracle API;OCI

1 引言

ORACLE是一種適用于大型、中型和微型計算機的關系數據庫管理系統,它使用SQL(Structured guery language)作為它的數據庫語言.

訪問Oracle數據庫有三種方法:通過ODBC數據源、基于Oracle API或OCI.

這些方法中,ODBC雖然通用但效率和靈活性較差,關于Oracle API編程的資料很少,而基于OCI進行復雜的空間數據訪問,可以提高數據訪問的效率和靈活性.

OCI調用接口(oracle Call Interface,簡稱OCI)提供了一組接口子函數,支持所有的SQL數據定義、數據操縱、查詢和事務控制等.使用ocl開發方法實質上是結構查詢語言和第三代程序設計語言結合的一種開發方法.根據目前掌握的資料,基于Ocl的對非空間數據的訪問已有成熟的函數庫可以借鑒和使用,但對于空間數據庫,可以參考的資料很少.本文將基于編程實踐上,介紹基于OCI對于空間數據庫的訪問.

2 OCI的數據結構和編程結構

Handies和descriPtors是在OCI應用中定義的透明數據結構并被直接分配,Handle是指向OCI分配的一塊存儲區的透明指針,大多數OCI應用都需要訪問存儲在handles中的信息,0CIAttrGet()和OCIAttrsetO訪問這些信息.OCI descriPtors和locators是保存特定數據信息的透明數據結構.

2.1 OCI的編程結構

OCI的編程結構為:

(l)啟動OCI程序運行環境和線程(即初始化并連接);

(2)分配必要的句柄,建立數據庫連接和用戶會話;

(3)向服務器發出SQL請求并進行必要的數據處理;

(4)釋放不再使用的請求和句柄,準備新的請求(包含錯誤處理);

(5)終止用戶會話并斷開服務器連接.

2.2 OCI程序的處理步驟

OCI程序的處理步驟見圖1.

3 OCI程序流程

OCI程序主要是通過分配調用相應功能的句柄,控制SQL語句的執行來實現的.

程序的OCI流程如圖2,圖3是處理SQL語句的具體過程.

圖2為程序的底層流程,其相應功能均以程序模塊中的相應函數實現,因為不同的空間數據訪問需要不同的SQL查詢語句以及相應的處理,SpatialRelation類和Ispatialoperator類中的成員函數就是針對不同空間關系查詢和空間操作,構造不同的SQL查詢,結合Oracle Spatial,實現相應的功能.

4 基于OCI的空間數據庫訪問

基于OCI的空間數據庫訪問主要是將OCI與Oracle Spatial結合起來,引入面向對象的思想,完成對空間數據的操作,下面根據課題的編程實踐總結一些訪問空間數據庫的經驗.

數據結構:在oracle spatial的對象一關系模型中,空間數據是被作為幾何對象來處理的,因此在我們的程序中也引入面向對象的思想,把對空間數據的操作轉化成對對象屬性的操作.這就需要根據oracle spatial中空間對象的存儲模式,在程序中建立起相應的數據結構.這樣既簡化了編程也簡化了對空間數據的處理.IGeometry類即為程序中的空間數據結構.

SQL語句的生成和分析:

SQL語句的生成有兩種方法:一是轉化成對字符串的操作,生成需要執行的SQL語句后,再傳遞給OCI中處理SQL語句的句柄;二是首先確定需要用戶輸入哪些變量,將用戶輸入變量用spdntf函數“綁定”到SQL語句當中,生成SQL語句.

第二種方法程序示例如下(構造判斷兩空間對象是否相等的SQL查詢):

無論用哪種方式生成SQL語句,都要調用.parse函數進行解析,必要時還要進行SQL語句的預執行確定有哪些輸出變量和輸出變量的種類,Oraclespatial中的函數嵌入:

在對空間關系進行判定和執行空間操作的過程中,嵌入使用Oracle Spatial中的相關函數,可以極大地簡化編程工作,示例可參見SQL語句的生成和分析.

可以把Oracle Spatial中的相關函數嵌入到SQL語句中,而后預執行以確定函數執行結果的輸出類型.

查詢結果的分析:

雖然在控制SQL語句的執行過穆中已經可以確定輸出結果的類型,但因為有些是OCI程序中特定的數據類型,因此還需要與編程語言中的數據類型建立對應關系,進一步確定輸出結果的含義.這里主要涉及到數據類型的轉換、字符串的比較和空間數據坐標值的轉換.

三種提高效率的方法:

在編程過程中,發現了以下三種提高數據訪問效率的方法,當數據量較大時,這些方法可以極大地提高效率.下面對這三種方法進行簡單介紹:

(1)SQL語句的延遲執行.為了提高性能,OCI與Oracle7版本以上的數據庫管理系統在處理SQL語句時允許一步或多步的延遲執行.例如,分析SQL語句、結合輸入變量以及定義輸出變量這些步驟能延遲到該語句被執行時才處理.

實現延遲執行的方法有兩種:采用延遲方式連接或在oParse調用中使用設置為0的deffig參數.

(2)將空間對象“綁定”到內存,使用完畢后釋放內存空間.

(3)建立空間索引.在眾朗le數據庫中進行空間關系的查詢時必須先建立索引,進行大數據量的空間查詢時建立空間索引可以提高查詢的速度和效率.Oracle提供兩套索引機制:R tree和Quadtree,可以根據需要進行選擇.本人在開發系統時,選擇的是缺省Rtree索引.

5 小結

在使用oracle數據庫開發系統過程中,對“基于OCI對于空間數據庫的訪問”的一些看法與觀點只是其中體會之一,還有如dll技術中導入與導出函數如何匹配等等,還需要進一步總結歸納.這里不再提出.

〔1〕凌志祥.Linux下Oracle應用技術及實現 [J].電子技術, 2008(10).

〔2〕肖軍.ORACLE數據庫性能調整與優化[D].武漢大學, 2004.

〔3〕王敦,白學仲.ORACLE的OCI調用接口[J].鐵路計算機應用,1997(04).

〔4〕王二暖.Oracle DML觸發器在監視重要表中的作用[J].昭通師范高等專科學校學報,2005(05).

TP311.133.1

A

1673-260X(2010)02-0031-02

猜你喜歡
程序數據庫
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
數據庫
財經(2017年15期)2017-07-03 22:40:49
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 91偷拍一区| 精品一区二区三区水蜜桃| 蜜桃臀无码内射一区二区三区| 色亚洲成人| 丁香婷婷综合激情| 2019年国产精品自拍不卡| 玖玖免费视频在线观看| 女人av社区男人的天堂| 亚洲日本中文字幕天堂网| 国产香蕉97碰碰视频VA碰碰看| 久久综合成人| 国产屁屁影院| 88av在线看| 国产原创第一页在线观看| 久久中文字幕不卡一二区| 国产自在自线午夜精品视频| 另类综合视频| 日韩123欧美字幕| 一级高清毛片免费a级高清毛片| 2020国产精品视频| 亚洲国产天堂久久综合226114| 青青草一区二区免费精品| 亚洲成人动漫在线| 午夜综合网| 在线无码私拍| 亚洲中文字幕无码爆乳| 国产一区二区影院| 国产乱子伦手机在线| 久久青草视频| 国产jizzjizz视频| 女同国产精品一区二区| 四虎影视国产精品| 日韩黄色在线| 丁香婷婷激情综合激情| 成人免费午夜视频| 天堂中文在线资源| 国产激情无码一区二区三区免费| 国产av剧情无码精品色午夜| 中文字幕亚洲精品2页| 色婷婷狠狠干| 久久一日本道色综合久久| 免费aa毛片| 久久这里只精品国产99热8| www精品久久| 亚洲视屏在线观看| 美女内射视频WWW网站午夜| 国内自拍久第一页| 国产新AV天堂| 永久毛片在线播| 亚洲va在线∨a天堂va欧美va| 精品人妻无码区在线视频| 亚洲九九视频| 999精品免费视频| 国产高清在线观看| 中文无码伦av中文字幕| 亚洲天堂视频在线播放| 高清欧美性猛交XXXX黑人猛交| 在线看片中文字幕| 国产婬乱a一级毛片多女| 色综合中文综合网| 精品国产亚洲人成在线| 国产综合另类小说色区色噜噜| 亚洲AV无码不卡无码 | 欧美不卡视频一区发布| 日本欧美中文字幕精品亚洲| 亚洲精品午夜天堂网页| 中日韩欧亚无码视频| 国产粉嫩粉嫩的18在线播放91| 四虎成人精品在永久免费| 高潮爽到爆的喷水女主播视频 | 2020极品精品国产| 无码专区国产精品第一页| 亚洲天堂网在线播放| 欧美三級片黃色三級片黃色1| 日韩精品一区二区三区中文无码| 亚洲国产成人精品青青草原| 日本一本正道综合久久dvd | 99精品视频播放| 无码区日韩专区免费系列| 久久亚洲美女精品国产精品| 一级在线毛片| 国产网友愉拍精品视频|