張立朝張合朝侯岳
(1.河南省測繪地理信息局,河南鄭州 450003;2.河南省測繪工程院,河南鄭州 450003;3.河南省科源測繪中心,河南鄭州 450003)
原生模式下GML數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)
張立朝1,2張合朝3侯岳2
(1.河南省測繪地理信息局,河南鄭州 450003;2.河南省測繪工程院,河南鄭州 450003;3.河南省科源測繪中心,河南鄭州 450003)
針對關(guān)系型數(shù)據(jù)庫存儲半結(jié)構(gòu)化GML文檔存在的瓶頸,提出原生模式下基于GML的地理空間信息存儲機(jī)制,設(shè)計(jì)原生GML數(shù)據(jù)庫的總體架構(gòu),詳細(xì)討論原生模式下GML文檔的存儲細(xì)節(jié)、存儲流程,從存儲速度、占用空間等方面對原生GML數(shù)據(jù)庫的存儲性能進(jìn)行驗(yàn)證和評測。
原生模式;半結(jié)構(gòu)化;總體架構(gòu);存儲機(jī)制;性能測試
原生GML數(shù)據(jù)庫從底層支持GML文檔的存儲和處理,其采用層次數(shù)據(jù)存儲模型,保持文檔的樹形結(jié)構(gòu),不需要進(jìn)行文檔和傳統(tǒng)數(shù)據(jù)庫的轉(zhuǎn)換,同時還兼有一般關(guān)系型數(shù)據(jù)庫的特性,如支持事務(wù)、查詢語言、并發(fā)控制、安全機(jī)制和二次開發(fā)接口等[1]。本文重點(diǎn)研究原生模式下GML數(shù)據(jù)庫的設(shè)計(jì)與實(shí)現(xiàn)。
原生GML數(shù)據(jù)庫是指以GML為存儲模型和處理對象,對GML文檔進(jìn)行數(shù)據(jù)組織、索引構(gòu)建、查詢處理、存儲分配的數(shù)據(jù)庫系統(tǒng)。原生GML數(shù)據(jù)庫對GML的讀寫基于文檔進(jìn)/文檔出模式,支持空間數(shù)據(jù)查詢,并可進(jìn)行GML文檔和GML空間數(shù)據(jù)的一體化查詢與更新處理;同時,還具備傳統(tǒng)數(shù)據(jù)庫系統(tǒng)所具有的多用戶、多任務(wù)并發(fā),事務(wù)管理、訪問控制等機(jī)制,支持分布式環(huán)境下的數(shù)據(jù)共享和互操作[2,3]。原生GML數(shù)據(jù)庫系統(tǒng)中存儲的數(shù)據(jù)主要是GML實(shí)例文檔和對應(yīng)的模式文檔(約束、控制和校驗(yàn)GML實(shí)例文檔的結(jié)構(gòu)和內(nèi)容)[4-6]。
原生GML數(shù)據(jù)庫體系結(jié)構(gòu)主要由原生GML數(shù)據(jù)庫物理存儲、數(shù)據(jù)存儲管理器、數(shù)據(jù)服務(wù)器、管理器、集成組件和擴(kuò)展組件等六部分組成。
GML文檔的存儲粒度決定了GML文檔實(shí)例分解的最小片段。一般分為3個級別:基于元素(細(xì)粒度存儲)、基于子樹(中粒度存儲)和基于文檔(粗粒度存儲)。原生GML數(shù)據(jù)庫存儲管理的數(shù)據(jù)主要有GML模式文件和GML實(shí)例文檔2種。模式文件定義了GML文檔的存儲結(jié)構(gòu),而文檔實(shí)例存儲的則是數(shù)據(jù)內(nèi)容[7]。在應(yīng)用中,將GML模式作為劃分GML文檔、確定GML數(shù)據(jù)存儲顆粒的標(biāo)準(zhǔn)。
表1 存儲方法對比表
原生GML文檔存儲的基本思路是以GML模式為單位,以數(shù)據(jù)集作為基礎(chǔ)組織文檔,將模式相同的GML文檔存儲在相同的數(shù)據(jù)集中。GML文檔通過解析后以要素類型為單位進(jìn)行存儲,同一數(shù)據(jù)集中,相同類型的要素存儲在同一個磁盤文件中。原生GML數(shù)據(jù)庫中存儲n(n大于等于1)個數(shù)據(jù)集,每一個數(shù)據(jù)集中存放n個(n大于等于1)GML文檔(包括數(shù)據(jù)文件和索引文件),不同的數(shù)據(jù)集不同的模式文件。同一數(shù)據(jù)集中,所有的GML文檔類型定義或文檔模式必須相同。在原生GML數(shù)據(jù)庫中,實(shí)際物理存儲的數(shù)據(jù)頁由數(shù)據(jù)集的Id號和邏輯頁的No號組成的序列唯一標(biāo)識。GML模式類似于關(guān)系數(shù)據(jù)庫中的二維表結(jié)構(gòu),而要素級GML片段則相當(dāng)于表記錄[8]。
本文對文本方式存儲、基于關(guān)系數(shù)據(jù)庫的大對象存儲、鏈接存儲方式、基于對象關(guān)系數(shù)據(jù)庫的通用模式映射方式、文檔模式映射方式以及原生GML數(shù)據(jù)庫存儲方式進(jìn)行了詳細(xì)的對比,對比結(jié)果如表1所示。
從對比結(jié)果看,文本存儲方式對于查詢處理、空間索引的支持程度、文檔還原能力等操作功能的支持較好。但是,文件存儲方式最大瓶頸在于GML文檔較大時,很難提供較好的空間信息查詢、空間數(shù)據(jù)分析、安全、并發(fā)等功能[9]。
基于關(guān)系數(shù)據(jù)庫的大對象存儲方式,對于各項(xiàng)操作功能的支持均較差。但其最大的優(yōu)勢在于能夠快速、簡單地將存儲后的數(shù)據(jù)還原為GML文檔,且這種還原僅僅局限于GML文檔的整體還原,而不支持單個元素的還原。這種方式不適于面向GML的空間或非空間查詢,尤其對于修改更新操作的代價較大,其性能與普通的GML文檔處理并無較大差異。
基于對象關(guān)系數(shù)據(jù)庫的模式映射的GML存儲方式,是將GML文檔中的幾何元素映射為空間數(shù)據(jù)庫的幾何對象,從而支持對GML文檔的空間索引。但是,GML半結(jié)構(gòu)化的樹形結(jié)構(gòu)向關(guān)系數(shù)據(jù)庫中二維表的轉(zhuǎn)換時,忽略了GML中地理要素可靈活嵌套的特性,進(jìn)而不能完整保留GML文檔的結(jié)構(gòu)信息,會造成關(guān)系表中大量的冗余字段。對于嵌套結(jié)構(gòu)較為復(fù)雜的GML文檔來說,結(jié)構(gòu)查詢會涉及大量的表連接操作,大大影響查詢處理的效率。
原生GML數(shù)據(jù)庫由于直接存儲GML文檔,當(dāng)應(yīng)用程序訪問GML時,無需進(jìn)行模式轉(zhuǎn)換,減少了GML數(shù)據(jù)和關(guān)系數(shù)據(jù)庫之間的互轉(zhuǎn)換,節(jié)省了響應(yīng)處理的時間,減少了因GML文檔結(jié)構(gòu)變化帶來的更新維護(hù),同時很好地保持了GML文檔的語義信息。由于原生GML數(shù)據(jù)庫支持原生查詢語言,同時還可以提供包括GML文檔索引和GML空間數(shù)據(jù)索引在內(nèi)的索引引擎,大大加快了檢索速度,有效地提高了效率。
本文基于原生GML數(shù)據(jù)庫為GML文檔的存儲管理提供了一種可行的解決方案,該方案設(shè)計(jì)了數(shù)據(jù)存儲管理器、原生GML數(shù)據(jù)庫服務(wù)器、原生GML數(shù)據(jù)庫管理器、數(shù)據(jù)集成組件以及擴(kuò)展組件,詳細(xì)闡述了數(shù)據(jù)存儲流程,并對數(shù)據(jù)庫性能進(jìn)行測試,從測試結(jié)果來看,可以提高檢索速度和存儲、讀取效率。鑒于該測試抽取樣本的數(shù)據(jù)總體存在局限性,下一步主要工作是在大數(shù)據(jù)環(huán)境下測試和完善該方案。
[1]陳建華.原生模式GML空間數(shù)據(jù)管理機(jī)制研究[D].成都:成都理工大學(xué),2008:25-28.
[2]遲洋,李春風(fēng).GML空間數(shù)據(jù)在Oracle XMLDB11g中的存儲機(jī)制研究[J].信息時代,2011(3):70-73.
[3]張立朝,呂蓬,王建明,等.基于GML的空間數(shù)據(jù)庫設(shè)計(jì)與數(shù)據(jù)存儲研究[J].測繪通報(bào),2009(3):53-56.
[4]王曉明,李景文,李愷毅,等.基于Oracle XMLDB的GML空間數(shù)據(jù)存儲機(jī)制[J].地理空間信息,2010(5):23-25.
[5]苗立志,張書亮,閭國年.通用映射模式下GML關(guān)系數(shù)據(jù)庫存儲研究[J].計(jì)算機(jī)應(yīng)用研究,2009(11):4124-4127.
[6]何永志,張滬寅,梁銘銘,等.保持約束的GML存儲方法研究[J].長江大學(xué)學(xué)報(bào)(自然科學(xué)版),2010(2):243-245.
[7]譚成國.基于Oracle Spatial的城市三維模型數(shù)據(jù)存儲的研究[J].測繪通報(bào),2013(3):89-91.
[8]張弛,吉云松.基于eXist的GML數(shù)據(jù)管理[J].測繪科學(xué),2011(3):187-189.
[9]蘭小機(jī),王志紅,張亦漢.Native XML存儲管理技術(shù)的GML應(yīng)用研究[J].測繪科學(xué),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
國家自然科學(xué)基金項(xiàng)目(41201390);國家自然科學(xué)青年基金項(xiàng)目(41501507);礦山空間信息技術(shù)國家測繪地理信息局重點(diǎn)實(shí)驗(yàn)室開放基金(KLM201411)。
張立朝(1981-),男,博士,工程師,研究方向:3S及數(shù)字城市研建。