張立朝張合朝侯岳
(1.河南省測繪地理信息局,河南鄭州 450003;2.河南省測繪工程院,河南鄭州 450003;3.河南省科源測繪中心,河南鄭州 450003)
原生模式下GML數據庫設計與實現
張立朝1,2張合朝3侯岳2
(1.河南省測繪地理信息局,河南鄭州 450003;2.河南省測繪工程院,河南鄭州 450003;3.河南省科源測繪中心,河南鄭州 450003)
針對關系型數據庫存儲半結構化GML文檔存在的瓶頸,提出原生模式下基于GML的地理空間信息存儲機制,設計原生GML數據庫的總體架構,詳細討論原生模式下GML文檔的存儲細節、存儲流程,從存儲速度、占用空間等方面對原生GML數據庫的存儲性能進行驗證和評測。
原生模式;半結構化;總體架構;存儲機制;性能測試
原生GML數據庫從底層支持GML文檔的存儲和處理,其采用層次數據存儲模型,保持文檔的樹形結構,不需要進行文檔和傳統數據庫的轉換,同時還兼有一般關系型數據庫的特性,如支持事務、查詢語言、并發控制、安全機制和二次開發接口等[1]。本文重點研究原生模式下GML數據庫的設計與實現。
原生GML數據庫是指以GML為存儲模型和處理對象,對GML文檔進行數據組織、索引構建、查詢處理、存儲分配的數據庫系統。原生GML數據庫對GML的讀寫基于文檔進/文檔出模式,支持空間數據查詢,并可進行GML文檔和GML空間數據的一體化查詢與更新處理;同時,還具備傳統數據庫系統所具有的多用戶、多任務并發,事務管理、訪問控制等機制,支持分布式環境下的數據共享和互操作[2,3]。原生GML數據庫系統中存儲的數據主要是GML實例文檔和對應的模式文檔(約束、控制和校驗GML實例文檔的結構和內容)[4-6]。
原生GML數據庫體系結構主要由原生GML數據庫物理存儲、數據存儲管理器、數據服務器、管理器、集成組件和擴展組件等六部分組成。
GML文檔的存儲粒度決定了GML文檔實例分解的最小片段。一般分為3個級別:基于元素(細粒度存儲)、基于子樹(中粒度存儲)和基于文檔(粗粒度存儲)。原生GML數據庫存儲管理的數據主要有GML模式文件和GML實例文檔2種。模式文件定義了GML文檔的存儲結構,而文檔實例存儲的則是數據內容[7]。在應用中,將GML模式作為劃分GML文檔、確定GML數據存儲顆粒的標準。

表1 存儲方法對比表
原生GML文檔存儲的基本思路是以GML模式為單位,以數據集作為基礎組織文檔,將模式相同的GML文檔存儲在相同的數據集中。GML文檔通過解析后以要素類型為單位進行存儲,同一數據集中,相同類型的要素存儲在同一個磁盤文件中。原生GML數據庫中存儲n(n大于等于1)個數據集,每一個數據集中存放n個(n大于等于1)GML文檔(包括數據文件和索引文件),不同的數據集不同的模式文件。同一數據集中,所有的GML文檔類型定義或文檔模式必須相同。在原生GML數據庫中,實際物理存儲的數據頁由數據集的Id號和邏輯頁的No號組成的序列唯一標識。GML模式類似于關系數據庫中的二維表結構,而要素級GML片段則相當于表記錄[8]。
本文對文本方式存儲、基于關系數據庫的大對象存儲、鏈接存儲方式、基于對象關系數據庫的通用模式映射方式、文檔模式映射方式以及原生GML數據庫存儲方式進行了詳細的對比,對比結果如表1所示。
從對比結果看,文本存儲方式對于查詢處理、空間索引的支持程度、文檔還原能力等操作功能的支持較好。但是,文件存儲方式最大瓶頸在于GML文檔較大時,很難提供較好的空間信息查詢、空間數據分析、安全、并發等功能[9]。
基于關系數據庫的大對象存儲方式,對于各項操作功能的支持均較差。但其最大的優勢在于能夠快速、簡單地將存儲后的數據還原為GML文檔,且這種還原僅僅局限于GML文檔的整體還原,而不支持單個元素的還原。這種方式不適于面向GML的空間或非空間查詢,尤其對于修改更新操作的代價較大,其性能與普通的GML文檔處理并無較大差異。
基于對象關系數據庫的模式映射的GML存儲方式,是將GML文檔中的幾何元素映射為空間數據庫的幾何對象,從而支持對GML文檔的空間索引。但是,GML半結構化的樹形結構向關系數據庫中二維表的轉換時,忽略了GML中地理要素可靈活嵌套的特性,進而不能完整保留GML文檔的結構信息,會造成關系表中大量的冗余字段。對于嵌套結構較為復雜的GML文檔來說,結構查詢會涉及大量的表連接操作,大大影響查詢處理的效率。
原生GML數據庫由于直接存儲GML文檔,當應用程序訪問GML時,無需進行模式轉換,減少了GML數據和關系數據庫之間的互轉換,節省了響應處理的時間,減少了因GML文檔結構變化帶來的更新維護,同時很好地保持了GML文檔的語義信息。由于原生GML數據庫支持原生查詢語言,同時還可以提供包括GML文檔索引和GML空間數據索引在內的索引引擎,大大加快了檢索速度,有效地提高了效率。
本文基于原生GML數據庫為GML文檔的存儲管理提供了一種可行的解決方案,該方案設計了數據存儲管理器、原生GML數據庫服務器、原生GML數據庫管理器、數據集成組件以及擴展組件,詳細闡述了數據存儲流程,并對數據庫性能進行測試,從測試結果來看,可以提高檢索速度和存儲、讀取效率。鑒于該測試抽取樣本的數據總體存在局限性,下一步主要工作是在大數據環境下測試和完善該方案。
[1]陳建華.原生模式GML空間數據管理機制研究[D].成都:成都理工大學,2008:25-28.
[2]遲洋,李春風.GML空間數據在Oracle XMLDB11g中的存儲機制研究[J].信息時代,2011(3):70-73.
[3]張立朝,呂蓬,王建明,等.基于GML的空間數據庫設計與數據存儲研究[J].測繪通報,2009(3):53-56.
[4]王曉明,李景文,李愷毅,等.基于Oracle XMLDB的GML空間數據存儲機制[J].地理空間信息,2010(5):23-25.
[5]苗立志,張書亮,閭國年.通用映射模式下GML關系數據庫存儲研究[J].計算機應用研究,2009(11):4124-4127.
[6]何永志,張滬寅,梁銘銘,等.保持約束的GML存儲方法研究[J].長江大學學報(自然科學版),2010(2):243-245.
[7]譚成國.基于Oracle Spatial的城市三維模型數據存儲的研究[J].測繪通報,2013(3):89-91.
[8]張弛,吉云松.基于eXist的GML數據管理[J].測繪科學,2011(3):187-189.
[9]蘭小機,王志紅,張亦漢.Native XML存儲管理技術的GML應用研究[J].測繪科學,2010(6):244-246.
Design and Implementation of GML Database in Native Mode
Zhang Lichao1,2Zhang Hezhao3Hou Yue2
(1.Henan Provincial Bureau of Surveying and Mapping Geographic Information,Zhengzhou Henan 450003;2.Henan Surveying and Mapping Engineering Institute,Zhengzhou Henan 450003;3.Henan Keyuan Surveying and Mapping Center,Zhengzhou Henan 450003)
Aiming at the bottleneck of the relational database to store semistructured GML documents,the geographic spatial information storage mechanism based on GML in native mode was proposed,the whole structure of native GML database was designed,storage details,storage process of GML document in native mode were discussed in de?tail,the storage performance of native GML database was verified and evaluated from the aspects of storage speed,oc?cupancy space and so on.
native mode;semi structured;overall architecture;storage mechanism;performance test
P208
A
1003-5168(2016)12-0063-02
2016-11-03
國家自然科學基金項目(41201390);國家自然科學青年基金項目(41501507);礦山空間信息技術國家測繪地理信息局重點實驗室開放基金(KLM201411)。
張立朝(1981-),男,博士,工程師,研究方向:3S及數字城市研建。