摘要:對象關系數據庫技術是在繼承關系數據庫技術的基礎上,增加面向對象特性,可滿足GIS等應用領域的需求而發展起來的一種新型數據庫技術,它既具有管理復雜數據的能力,又能提供強有力的查詢功能。本文基于面向對象的關系數據庫管理系統,提出直接在對象關系數據庫中存儲矢量地理時空數據的方法,實現了空間數據、時間數據和屬性數據的一體化管理。
關鍵詞:查詢優化;索引結構;算法分析;對象關系數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)25-1366-02
Object Relational Data Base Management Systems
LIU Da-ming1,2
(1.Ningxia Vocational Technological Institution,Yinchuan 750002;2.Ningxia Radio and TV University,Yinchuan 750002, China)
Abstract: Object-relational database technology combines the relational and object-oriented capabilities in one database system. It provides support for richer object structures and powerful query-oriented functions. This kind of DBMS can meet the requirement of some newly emerging application areas, such as GIS. Now, the Object-Relational DataBase technology is regarded as one of the most promising research and product development directions. This paper gives a method of accessing spatiotemporal vector data in an Object-Relational database. Results provide path of spatiotemporal data storage in Web environment.
Key words: query optimization; index structure; loin algorithm; algorithm analysis; ORDB
面向對象的開發方法是當今的主流,但是同時不得不使用關系型數據庫,將兩者更好地結合起來將在很大程度上加快軟件的開發[1]。對象/關系數據庫通過將面向對象程序設計中的對象映射到基于SQL的關系模型的數據結構中去,能給軟件的開發帶來很多好處如:數據庫結構清晰,便于實現OOP,數據庫對象具有獨立性,便于維護,需求變更時程序與數據庫重用率高,修改少。地理時空數據小不同于一般的屬性數據和空間數據時空數據主要有以下特性:空間性、時間性、抽象性,進而帶來多維性、多態性和多尺度[2]。GIS的時空數據組織與管理一直是GIS理論界關注的一個熱點問題,傳統的基于文件方式的GIS數據存儲技術以及基于混合方式的GIS數據存儲技術有其各自的不足,采用對象關系數據庫技術存儲時空數據是今后一段時間內GIS數據管理發展的一個方向[3]。
1 對象關系數據庫管理系統(ORDBMS)的基本原理
“對象關系數據庫”實現既非純粹的面向對象的數據庫也非純粹的關系數據庫,它代表兩者的結合[4]。擴充現有數據庫系統以支持面向對象的概念,我們習慣上稱這樣的系統為擴充數據庫系統。在關系數據庫基礎上加以擴充的, 稱之為對象-關系數據庫(ORDBMS)。RDBMS派認為RDB具有堅實而成熟的理論基礎, 主張對現有的RDBMS 進行擴充和改進, 使之升級為ORDBMS。這種系統既支持已經被廣泛使用的SQL,具有良好的通用性, 又具有面向對象特性, 支持復雜對象和復雜對象的復雜行為, 是對象技術和傳統關系數據庫技術的最佳融合。
由于在ORDBMS 中,關系和對象兩者共存,因此由面向用戶層和內部接口層構成的兩層體系結構來構造一個ORDBMS。面向用戶層主要是對ORSQL ,ORDML 及ORDDL 這類語言進行轉換和處理,通過解析各種用戶命令語句,并完成視圖轉換和查詢優化,以產生執行代碼。內部接口層在存儲管理器之上運行。存儲管理器是一個既支持表存儲又支持對象存儲的內核機制。依靠操作系統的頁、Buffer 及內存管理,存儲機制實現從邏輯到物理的存儲的轉換。存儲和存取機制的任務就是把上層操作轉換成單個的對象操作或記錄操作。ORDBMS體系結構圖1所示。
2 Oracle對象關系數據庫管理系統在GIS中的應用
Oracle是以高級結構化查詢語言(SQL)為基礎、支持分布式海量數據存儲與處理的對象關系數據庫管理系統。目前很多GIS軟件平臺及其相關產品采用Oracle作為空間數據庫管理系統的基礎平臺。因此如何在Oracle中快速、有效地管理和操作海量空間數據成為GIS平臺和應用系統研發人員十分關心的問題。Oracle Spatial解決空間數據的方法是:提供一個MDSYS模式,在其中包含了關于空間數據管理的所有內容,即提供一個對象數據類型(SDO_GEOMETRY)、索引功能及多個針對SDO_GEOMETRY的函數/運算符。這樣就可以在Oracle數據庫中快速有效地存儲、訪問和分析空間數據。Oracle Spatial所提供的功能完全集成在數據庫服務器中。用戶可使用SQL定義來操縱空問數據,也可以利用Oracle的標準特性,從而確保數據的完整性、可恢復性和安全性等特征。
2.1 對象-關系模型
對于空間幾何對象,Oracle Spatial可以用對象關系模型來表達,該對象關系模型通常用表的一個MDSYS.SDO_GEOMETRY類型字段來表示,同時每一記錄表示一個幾何對象地實例。該對象關系模型有以下的優點:
1) 支持多種幾何對象類型,包括:弧、圓、復合多邊形、復合線串、矩形。
2) 容易創建和維護空間索引并進行空間的查詢。
3) 用一行和一列表示幾何對象的模型。
4) 可以達到最優的性能。
2.2 數據模型
空間數據模型可分為幾何元素、幾何對象、層等三級結構,每一種結構都對應于空間數據的一種表達。層是由幾何對象組成,而幾何對象則由幾何元素組成。例如:一個點表示一個建筑物,一條線表示一條公路或是跑道,一個多邊形表示一個省、城市或某個區域。
1) 幾何元素(element)
元素是幾何對象(Geometry)的基本構成單元,支持的空間元素有點、線、面和多邊形,例如:元素可以構成星群(由點串構成),公路(由線串構成)、縣的邊界(多邊形構成),元素的每個坐標存儲為x,y坐標對。一個帶洞的多邊形的外部環和內部環被認為是兩個不同的元素所構成的復合多邊形。
2) 幾何對象(Geometry)
一個幾何對象表示一個空間幾何特征,它是由一個或多個幾何元素的有序組成:一個幾何對象可以由一個幾何元素組成,也可以由同一類型的幾何元素集合或不同類型的幾何元素集合組成。
3) 層(layer)
層是具有相同屬性特征的幾何對象的集合。例如:地理信息系統中,一層包括拓撲特征,而另一層描述它的人口密度,第三層則描述路和橋的網絡結構,每一層對應一個空間索引。
2.3 空間查詢模型
Oracle Spatial用兩層查詢模型來解決空間查詢和空間聯合查詢。這兩層模型是指主過濾和次過濾。主過濾主要從被選記錄中作快速選擇并傳給次過濾,它近似地比較幾何對象以減小復雜度計算,它是一種內存、時間消耗的過濾;次過濾是對來自于主過濾的幾何對象結果集作精確的計算。
2.4 空間索引
通過Oracle Spatial把空間索引化能力導入數據庫引擎是空間產品的一個關鍵特征。一個空間索引就是以空間標準為基礎、限制表內(或數據空間內)的搜索的機制。為了高效地執行查詢過程,索引是必不可少的,比如在查詢區域的數據空間內尋找對象,通過一個查詢多邊形(柵欄定位)。第二種查詢(空間聯合)類型是在兩個存在空間關聯的數據空間內尋找對象組。
2.5 空間關系與過濾
Oracle Spatial用次過濾來決定數據庫中的空間對象之間的空間關系。空間關系是以幾何對象的位置為基礎的,最基本的空間關系是基于拓撲和距離。如:區域的邊界包含一系列把外部的空間分隔開來的弧段,區域的內部包含區域內的所有不在邊界的點。為此我們說,擁有部分共同邊界而沒用共同內部點的兩個區域的空間關系為臨近的。兩個空間幾何對象的距離定義為他們之間的任何兩點的最小距離。如果兩個幾何對象之間的距離小于給定的距離,則我們說一個幾何對象在另一個對象的某一距離內。
3 結論
面向對象的開發方法是當今的主流,但是同時不得不使關系型數據庫,將兩者更好地結合起來將在很大程度上方便軟件的開發。伴隨著關系數據庫日益增長用和面向對象程序設計的普及,對對象/關系數據庫的關注越來越多。由于將目前最為流行的關系數據庫和面向對象程序設計很好的結合起來,而且己經有了比較穩定的對象/關系數據庫的映射下具,因此對象/關系數據庫會有一定的應用前景。本文正是利用對象關系數據庫管理地理時空數據所具備的優越性,將其用于存取矢量時空數據,為地理時空數據的存儲提供了一條有效途徑。
參考文獻:
[1] Carey M J,Dewitt D J.Of Objects and Databases: A Decade of Turmoil[M].22nd VLDB,1996:3-14.
[2] Stonebraker M.Object-Relational DBMSs The Next Grew' Wave[M].Morgan Kaufmann Publishers,Inc,1996.
[3] Committee for Advanced DBMS Function.Third-Generation Database System Manifesto[J].SIGMOD Record,1990,19(3):31-44.
[4] Darwen H,Date C.Third Manifesto[J].SIGMOD Record,March 1995,24(1).