APP下载

GML空间数据在Oracle XML DB 11g中的存储机制研究

2011-12-13迟洋李春风天津开发区测量队天津300456

天津科技 2011年3期
关键词:二进制空间数据结构化

迟洋 李春风 (天津开发区测量队 天津300456)

GML空间数据在Oracle XML DB 11g中的存储机制研究

迟洋 李春风 (天津开发区测量队 天津300456)

GML数据的存储研究还属于一个崭新的领域,目前还没有一个比较完好的技术实现方法。在分析比较Oracle XML DB存储模式的基础上,考虑GML空间数据的特点,研究GML空间数据在Oracle中的存储机制,并分析储存模式的优劣。利用Oracle XML DB实现对GML数据的存储是GIS空间数据管理方面研究的一条新的思路和途径。

地理信息 Oracle XML DB 二进制XML存储 GML空间数据

0 引言

长期以来,由于空间数据模型的不同导致空间信息在共享、集成等方面存在着诸多困难,造成了各行各业和各部门的空间信息难以实现互访,形成了一个个“信息孤岛”,造成社会财力和人力的巨大浪费。为了解决这些问题,开放地理信息系统协会(OGC)提出地理标记语言(GML)实施规范,GML作为Intemet环境下空间信息的全新、简洁、统一的编码标准,为空间数据建模、栅/矢一体化GIS体系研究、Webgis开发、空间数据共享与互操作研究等提供了新的方法和途径。作为基于XML的地理标记语言,鉴于GML的文本性、自描述性、可扩展性、内容与表现分离性、开放性、互操作等特性,使得GML被广泛关注、研究与实践,大量甚至海量的GML空间数据正不断产生。如何对其进行有效管理,从而实现GML空间数据的高效存储、索引等,是GML相关研究者、GML空间数据使用者所必须面对的重要问题。

针对GML空间数据的管理,存在基于关系型数据库管理和基于原生模式XML数据库管理两大类。原生模式XML数据库(NXD)是一个新生事物,且其自身的许多方面还在不断研究和发展中,还没有形成像关系型数据库那样成熟的标准,采用原生模式对文档型GML空间数据进行存储管理并不理想。由于GML数据XML格式的特点,采用关系型数据库对GML空间数据进行管理具有与生俱来的优势,但传统的关系数据库技术并不适合海量复杂的GML空间数据的存储与管理。针对以上不足,本文在分析GML空间数据的表达描述的基础上,研究利用Oracle XML DB 11g数据库来存储海量复杂的GML空间数据的方案,为海量复杂的GML空间数据的存储、管理和应用提供新的思路和方法。

1 GML的数据组织过程

1.1 GML对空间信息生成过程

GML作为XML的一种扩充,它主要是由GML模式(GML Schema)、GML 应用模式(GML Application Schema)以及 GML实例数据(GML Instance Data)3个部分组成,其中GML模式是由OGC定义的,而应用模式是根据应用领域的不同来定义,通过扩展或限制GML模式中定义的类型为应用领域定义所需的类型;最后根据具体的数据并依照GML Application Schema的规范形成GMLInstance Data。具体生成过程参见图1。

首先将现实世界的地理实体抽象形成几何体,接着对几何体添加空间和非空间属性使之成为地理要素,再用GML来定义地理要素相互之间的关系和结构,然后根据定义的结构用GML Schema生成Application Schema,最后根据Application Schema中定义的元素再结合具体的数据生成Instance Data,从而使地理要素资料成为GML数据。

对于空间数据来说,每种数据都有自己的空间几何模型。实现空间数据GML格式转换的本质是建立两者之间的映射关系,可通过对GML基本的XML Schema的扩充来实现两者的映射,通过建立各种空间对象的XML Schema可对这些空间对象进行描述。

1.2 GML对地理信息的表达与描述

GML是建立在XML shema基础上,用于描述空间地理数据,并编码和保存为XML数据格式的语法和机制。在这个基础上,还允许用户进一步开发符合需要的工作子集。目前,OGC先后推出了3个版本的GML,本文采用GML3.0进行建模研究。

GML3.0由32个基本的XML Schema构成,通过这些模式定义来表达与描述地理现实世界的信息,其中主要的模式有要素模式(Feature Schema)、几何模式(Geometry Schema)、拓扑模式(TopologySchema)、时间模式(Temporal Schema)等。

地理要素包含一系列的空间和非空间属性,要素模式为创建GML的要素和要素集合提供了一个框架,它定义了抽象和具体的元素及要素类型,并通过<include>元素引入了几何模式和时态模式中的定义和声明。几何模式详细地描述了地理要素的几何模型,定义了具体的几何形状信息,它提供的点、线、面、曲线、多边形、点集、线集、多边形集等类型可以直接使用,用这些基本信息可以描述一些地物的地理性质。时态模式扩展了GML的核心元素,使其包括描述地理数据时态特征的元素,它提供一种框架用于描述动态要素的时间变化。拓扑模式定义了反映地理要素之间关系的拓扑对象,用来解决地物之间的拓扑关系。

GML是一个开放的框架结构,32个基本的Schema相当于32个基类,通过对这32个基本Schema的继承和扩展,可以利用自己定义的Schema来对地理数据进行编码,实现以XML的方式对地理信息的表达和描述。

2 GML空间数据在Oracle XML DB中的存储

2.1 Oracle XML DB存储技术

Oracle公司从Oracle9i开始推出了Oracle XML DB,Oracle XMLDB是Oracle数据库所提供的高性能XML存储和检索技术的集合,不仅提供目前最复杂和完整的关系数据库所提供的所有功能,还提供与原生模式XML数据库所相关的所有功能。Oracle 11g又增加了对XML的二进制存储、新的XMLIndex索引和许多其他实现高性能存储以及检索结构化、非结构化XML文档的功能。

Oracle用XMLType数据类型来存储XML数据,它是为了保留XML的范型同时获取关系型结构在性能与扩展上的优势而创建的,是一种本机服务器数据类型。这种数据类型用来定义表格的列或者视图,可以用SQL>CREATE TABLE TOUR OF XMLType来创建XMLType表,通过创建XMLType数据类型,Oracle XMLDB可以将XML应用数据存储到数据库中。

在Oracle XML DB 11g中,XMLType数据类型有3种不同的存储模式,即结构化存储(对象-关系型)、非结构化存储(CLOB)、二进制XML存储。

GML文档都是符合特定GML应用模式的实例文档,所以在Oracle XMLDB中存储GML数据,首先需要注册这种应用模式,模式可以通过DBMS_XMLSCHEMA包中的registerschema()函数进行注册。

2.2 结构化存储模式存储GML空间数据

结构化存储是将GML文档分解为一系列的对象存储到本地数据库一个或者多个关系表中。当在Oracle XMLDB中注册了XML模式以后,需要的本地数据库类型的定义就会从XML模式生成。本地数据库类型定义产生于XML模式中定义的complexTyle,由complexTyle定义的每一个元素和属性成为对应的本地数据库类型的属性。产生的本地数据库类型与XML模式一致的XML内容分解并存储到数据库对象中,没有任何信息的丢失,当文档存入时,由XML模式定义的结构被直接映射成相应的本地数据库类型。

用结构化存储创建XMLType表声明如下:

2.3 非结构化模式存储GML空间数据

利用非结构化存储可以用来存储不基于模式的文档,但也可以用来存储GML空间数据,可以将GML文档作为整体存储到一个CLOB字段中,但必须对XMLType表进行声明:

2.4 二进制存储模式存储GML空间数据

在Oracle数据库11g中,利用二进制XML存储可以将GML文档解析成一种中间状态,然后以二进制的方式存储到CLOB中。首先创建二进制XMLType表,然后利用XMLTable()函数创建可以高效查询二进制XML表的关系视图。

用二进制XML存储创建XMLType表声明如下:

2.5 3种储存模式的对比测试

结构化存储和非结构化存储是Oracle中非常典型的两种存储方式,CLOB型存储格式可以避免将XML数据拆散存储,而对象表的存储方式则更有利于进行节点级的查询。但都有不足之处,非结构化存储占用的空间最大且查询性能最差,结构化存储速度比非结构化储存慢。

二进制XML存储综合了结构化和非结构化存储模式的优点,用以联接结构化和非结构化存储的现有本机存储模型。二进制XML存储可以感知XML模式,可以获得更高的磁盘空间效率和查询性能,提供比非结构化存储更高效的数据库存储、更新、查询、索引和片段提取的性能。与结构化存储类似,数据和元数据也可通过二进制存储在数据库级别分离,以提高效率,而且可以存储混合的可变数据和元数据。但它的查询性能却逊色于结构化存储,二进制XML存储模式易于使用,只要可以接受二进制XML存储在关系访问时的查询性能,二进制XML存储就是一个很好的GML空间数据存储方式,因此在选择结构化存储GML前值得对其进行评价。

3 结束语

由于GML数据的存储研究还属于一个崭新的领域,日前还没有一个比较完好的技术实现方法。本文在分析比较Oracle XMLDB数据存储的基础上,考虑GML空间数据的特点,研究GML空间数据在Oracle 11g数据库中的存储方法。利用Oracle XML DB实现对GML数据的存储是GIS空间数据管理方面研究的一条新的思路和途径,将有利于推动GIS之间的数据共享及Web GIS的发展。目前国内外有不少GIS界的学者在致力于这方面的研究,相信在不久的将来会出现具备更完善功能的GML数据库系统。■

[l]Oracle.Oracle Database lOgRlXMLDB Technical Whitepaper[EB/O L].http://dow nload.oracle.com/technology/tech/xml/xmldb/current/twp.pdf,2005.

[2]朱前飞,高芒,廖俊国.一种基于G M L的空间数据共享方案的研究[J].工程勘察,2004,(1):57-63.

[3]史婷婷,李岩,王鹏.基于GML空间数据储存方法研究与实现[J].计算机应用,2006,26(10):2409-2410.

[4]陈建华.原生模式GML空间数据管理机制研究[D].成都:成都理工大学,2008:14-17.

[5]潘雨青,陈天滋.基于GML的地理空间数据模型[J].江苏大学学报,2002,23(6):82-85.

2011-05-09

猜你喜欢

二进制空间数据结构化
用二进制解一道高中数学联赛数论题
促进知识结构化的主题式复习初探
改进的非结构化对等网络动态搜索算法
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
有趣的进度
GIS空间数据与地图制图融合技术
二进制在竞赛题中的应用
二进制宽带毫米波合成器设计与分析
网格化存储的几项关键技术分析