原生模式下GML数据库设计与实现
2016-02-13张立朝张合朝侯岳
张立朝张合朝侯岳
(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数据库的设计与实现。
1 原生GML数据库
原生GML数据库是指以GML为存储模型和处理对象,对GML文档进行数据组织、索引构建、查询处理、存储分配的数据库系统。原生GML数据库对GML的读写基于文档进/文档出模式,支持空间数据查询,并可进行GML文档和GML空间数据的一体化查询与更新处理;同时,还具备传统数据库系统所具有的多用户、多任务并发,事务管理、访问控制等机制,支持分布式环境下的数据共享和互操作[2,3]。原生GML数据库系统中存储的数据主要是GML实例文档和对应的模式文档(约束、控制和校验GML实例文档的结构和内容)[4-6]。
2 原生GML数据库总体架构
原生GML数据库体系结构主要由原生GML数据库物理存储、数据存储管理器、数据服务器、管理器、集成组件和扩展组件等六部分组成。
3 原生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]。
4 原生GML数据库性能测试
本文对文本方式存储、基于关系数据库的大对象存储、链接存储方式、基于对象关系数据库的通用模式映射方式、文档模式映射方式以及原生GML数据库存储方式进行了详细的对比,对比结果如表1所示。
从对比结果看,文本存储方式对于查询处理、空间索引的支持程度、文档还原能力等操作功能的支持较好。但是,文件存储方式最大瓶颈在于GML文档较大时,很难提供较好的空间信息查询、空间数据分析、安全、并发等功能[9]。
基于关系数据库的大对象存储方式,对于各项操作功能的支持均较差。但其最大的优势在于能够快速、简单地将存储后的数据还原为GML文档,且这种还原仅仅局限于GML文档的整体还原,而不支持单个元素的还原。这种方式不适于面向GML的空间或非空间查询,尤其对于修改更新操作的代价较大,其性能与普通的GML文档处理并无较大差异。
基于对象关系数据库的模式映射的GML存储方式,是将GML文档中的几何元素映射为空间数据库的几何对象,从而支持对GML文档的空间索引。但是,GML半结构化的树形结构向关系数据库中二维表的转换时,忽略了GML中地理要素可灵活嵌套的特性,进而不能完整保留GML文档的结构信息,会造成关系表中大量的冗余字段。对于嵌套结构较为复杂的GML文档来说,结构查询会涉及大量的表连接操作,大大影响查询处理的效率。
原生GML数据库由于直接存储GML文档,当应用程序访问GML时,无需进行模式转换,减少了GML数据和关系数据库之间的互转换,节省了响应处理的时间,减少了因GML文档结构变化带来的更新维护,同时很好地保持了GML文档的语义信息。由于原生GML数据库支持原生查询语言,同时还可以提供包括GML文档索引和GML空间数据索引在内的索引引擎,大大加快了检索速度,有效地提高了效率。
5 结论
本文基于原生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及数字城市研建。