|
阅读:1894回复:0
空间数据与对象关系型数据库
<P align=left>摘要:本文简要介绍空间数据的特点、空间数据管理技术的发展;同时回顾数据库的发展历史及与此相伴的空间数据管理技术的发展,结合ZEUS2000介绍对象关系型数据库的特点。
一、 导言 随着信息技术的发展,各种应用系统建设的不断深入,人们已经开始不满足于数值和文字型的信息处理,各种各样的图形信息越来越多的受到人们的关注,其中尤以空间数据管理备受瞩目。随着以空间数据管理为核心的GIS技术日益走向成熟;传统的数据库技术也在不断发展,空间数据管理必将促进二者的融合。 空间数据管理的最佳形式是什么?数据库技术如何发展?本文将从空间数据的特点、空间数据管理技术的发展、特别是与数据库技术相伴的空间数据管理技术的发展、对象关系型数据库的特点四个方面进行分析。 空间数据的特点 所谓空间数据是指与空间位置和空间关系相联系的数据。空间数据具有如下特征: 1.空间特征 每个空间对象都具有空间坐标,即空间对象隐含了空间分布特征。这意味着在空间数据组织方面,要考虑它的空间分布特征。 2.非结构化特征 通用数据库数据记录一般是结构化的。即它满足关系数据模型的三个范式的要求,而空间数据则不能满足这种结构化要求。若通过一条记录表达一个空间对象,它的数据项是变长的;同时一个对象可能包含另外的一个或多个对象。所以它不满足关系数据模型的范式要求,这也就是空间图形数据难以直接采用关系数据管理系统的主要原因。 3.空间关系特征 空间数据中记录的拓扑信息表达了多种空间关系。这种拓扑数据结构一方面方便了空间数据的查询和空间分析,另一方面也给空间数据的一致性和完整性维护增加了复杂性。 4.分类编码特征 一般而言,每一个空间对象都有一个分类编码,而这种分类编码往往属于国家标准,或行业标准、地区标准,同时每一种空间对象基于一个基本的空间对象类型,在某个GIS中的属性项个数或许相同,但在许多情况下,还是一种空间对象对应于一个属性数据表。 5.海量数据特征 空间数据量是非常巨大的,通常称海量数据。之所以称为海量数据,是指它的数据量比一般的通用数据库要大得多,通常以TeraByte计算 。正因为空间数据量非常巨大,一般需要在二维空间上划分块或者图幅,在垂直方向上划分层来进行组织。 6.非标代数运算特征 由于空间数据一般包含拓扑数据结构,关系运算复杂;同时还包含位置操作和几何运算,这些都不是标准的代数运算。 二、间数据管理技术的发展 空间数据管理技术随着一般数据管理技术的发展而发展,同样分为三个阶段: 1、手工管理阶段 这时,计算机还没有出现或是刚刚起步,人们往往通过手工或简单仪器辅助方式获取空间数据,通过手工方式保存;不仅费时、费力,而且不便查找、数据的准确性也不高。 2、文件管理阶段 随着计算机技术的出现、普及,人们开始采用各种文件方式保存空间数据,各种空间数据存储格式层出不穷,空间数据的共享一般通过格式转换程序完成。 文件管理方式起源二十世纪七十年代中期,人们将空间和非空间数据用操作系统文件分开储存,两个文件中的空间数据和属性数据用唯一标识连接起来。为了加快检索速度,一般还会引入第三个文件即索引文件。Arc/Info、Mapinfo和InfoMap的早期版本都采用这种方式存储。直到今天,许多流行的GIS平台为了保护用户数据投资还支持和兼容这种数据的存储方式。 3. 数据库管理阶段 随着数据库技术的发展、成熟,空间数据也开始采用数据库技术进行存储。但各种空间数据类型并未加以区分,而仅仅是把空间数据当成无格式的二进制数据流加以存储。数据库技术的不同发展阶段,空间数据的管理方式也不尽相同。 三、数据库的发展历史与空间数据管理 1、层次型数据库, 这是数据库技术发展的初始阶段,这时空间数据还大多用手工或文件的方式管理,与数据库系统关联不大。 2、系型数据库 依据一般属性数据和空间数据管理方式的不同,又可分为混合数据模型和关系数据模型。 混合型数据模型 二十世纪八十年代中期,由于关系型数据库技术的成熟,应用开发商开始利用这一技术将更多的属性信息存储在数据库中,并为属性数据建立较为复杂的数据模型, 而空间数据继续采用数据文件的方式进行存储。这就出现了混合数据模型。Arc/Info, MapInfo、INFORMAP, MGE, Genasis, Gothic, Smallworld的早期版本支持这种方式,一般使用流行的通用数据库有:Oracle,Informix,Sybase等。 优点: 属性数据存储在通用数据库中,通过数据库提供的数据安全、事务处理、索引机制和备份与恢复机制对属性数据进行管理和快速访问;同时也在属性数据存取方面打破了GIS系统完全封闭的局面,能够在数据层和其它业务系统进行接口。 缺点: 由于是两个系统在管理空间数据和属性数据,不能进行完整(包括空间和属性)的事务处理、容易出现难以清除的数据垃圾;空间数据安全无法保证、很难做到在线同一时间点的数据备份与恢复;开发企业级应用实现多用户并发访问和数据一致性难度较大; 无法处理和访问海量的空间数据;无法建立面向管理对象的复杂的数据模型。 关系数据模型 二十世纪八十年代末期,为了解决难于保证数据完整的这一致命弱点,开始将GIS数据直接存储到关系型数据库中。一般采用两种方法: 其一:把空间数据和属性数据分开储存在数据库管理系统的不同的表中,用ID连接,如:Geomedia把空间数据存储到Oracle中时采用的方法。 其二:把空间数据作为属性数据表的一项添加到属性表中,如ARC/INFO的SDE支持的一种方法。 在空间数据处理方面一般也采取两种方法: 第一种:在客户端增加空间数据引擎用于创建空间索引和管理空间数据的访问和处理,如:Geomedia的Gdatabase和SuperMap的SDX空间数据引擎; 第二种:采用中间件方式建立空间索引和对空间数据进行访问和处理,如:Arc/Info的SDE和MapInfo的SpatialWare。 优点: 能够实现空间数据和属性数据的完整性、一致性和数据备份与恢复的一致性;完全利用数据库的安全机制保证数据的安全性;能够实现多用户并发访问控制,实现企业级应用。 缺点: 增加元数据表的管理,增加了系统管理的开销,而且数据(包括空间和非空间数据)的开放程度大大折扣;由于不能使用直接的空间数据访问方法和空间数据表示方法,系统性能将大打折扣。 3、象型数据库 二十世纪九十年代中期,为了更好的为现实世界中的空间对象建模,人们用面向对象数据库处理GIS数据。面向对象数据库采用面向对象方法建立数据存取和处理的新模式,其目标是准确的描述空间对象及其行为。空间和非空间数据统一存储在对象存储系统中。 面向对象技术三个主要概念: 一是定义在对象内的方法(METHODS),方法与对象的行为(BEHAVIOUR)捆绑在一起,定义在数据库模型内。 二是继承(inheritance),就是在原有类的基础上定义新的对象类。新定义的类自动继承了父类的特征(值、参考、行为方法),从而有系统地创建和维护类的整个层次式架构。 三是封装(encapsulation),对象是封装数据和方法后的表示。封装结合继承,大大提高创建复杂地理数据模型的能力。 使用这类技术的GIS厂商有:Gothic, Smallworld, GDS。 优点:建模能力强。 缺点:缺少结构化查询语言的支持很难在数据库中查询空间数据。不能像关系型数据库那样简单、方便的管理结构化数据。 4.对象关系型数据库 选择使用关系型数据库或还是选择面向对象技术,一直是GIS用户难于决定问题。关系型数据库管理系统拥有完善成熟的数据管理功能,而面向对象技术的功能,大大方便模拟和管理GIS数据的复杂关系。如能将两种数据模型结合,则是最理想的GIS数据库系统。到了九十年代末期,终于出现了对象关系型数据库模型,它不借助任何插件来处理空间数据类型,能快速有效处理所有数据。对象关系型空间数据库在一个数据库内同时储存、查找和管理空间数据和属性数据,在大量用户访问海量数据库的环境下,保持系统速度和维护数据的完整性。 5、象关系型数据库的特点 ZEUS2000对象关系数据库是以unisql为内核,添加空间数据类型及相关算符,并对原有算符、函数进行重载而构成的全新的空间数据库。ZEUS2000将空间数据和属性数据统一管理。作为数据库系统,ZEUS2000丰富了数据空的管理内容,除数值、字符数据、空间数据外,它还利用面向对象地特征,支持各种多媒体数据、应用格式数据等。 (1)、 ZEUS2000数据库的结构 ZEUS2000数据库逻辑上被分成空间查询系统和空间存储系统两部分。空间查询系统由查询分析器、查询计划器和查询处理器组成。空间存储系统使用R*-tree空间索引,用于快速获取空间对象。ZEUS2000数据库的结构如上图所示。 (2).ZEUS2000的空间数据类型 ZEUS2000支持六种基本的空间数据类型、九种拓扑逻辑操作符、十二种几何操作和空间路径表达。这些功能被紧密的集成在对象关系型数据库引擎中,用户可以像使用INTEGER、CHAR等数据类型一样使用POINT、SIMPLELINE、POLYLINE、POLYGON、RECTANGLE、CIRCLE等空间数据类型;同时也可以在一个类中定义一个或多个空间属性,也可以为每个属性加入R*-tree索引。 ZEUS2000可以自动区分空间访问方法和非空间访问方法。ZEUS2000空间类结构如下页图示。 (3).拓扑操作符及几何操作符 ZEUS2000拓扑逻辑操作符包括:包含和被包含(contain and contained)、覆盖和被覆盖(cover and covered)、交叉(crossover)、不相交(disjoint)、等于(equal)、相交(overlap)、相切(touch)。几何操作符能够获取指定对象的节点和边,计算一个对象的面积和两个对象之间的距离或者在数据库中找到最近和最远的对象。这类操作符包括:Area(求空间对象面积)、Center(求空间对象的重心)、Maxdistance(求空间对象内部值间的最大距离)、Startpoint(求或多边形对象的起始点)等。 (4).扩展SQL语句 ZEUS2000对标准的SQL进行了扩充。假设一个行人想要找到和道路名称为‘京石高速公路“,可以用SQL语句来实现: SELECT name FROM city, (SELECT path FROM road WHERE name =‘京石高速? as t(way) WHERE way CROSSOVER city.boundary OR way TOUCH city.boundary; 以上例子说明了新定义的空间数据类型(road,city ) 和空间操作符(CROSSOVER,TOUCH),不仅符合传统的SQL标准,而且查询空间数据的语法与查询非空间数据没有分别。 (5).与关系型数据库扩充的“对象关系数据库”的区别 关系型数据库的设计初衷主要是支持文字数字数据类型。 对于复杂的空间数据类型,关系型数据库把数据库扩展成Cartridge,例如Oracle Spatial,包括四个组件: A、数据库模式中用指定方式定义空间数据的储存、语法和语意 B、制定空间索引机制 C、制定空间操作符、以及利用空间操作符查询空间数据的机制 D、制定管理以上机制的工具 通过Cartridge数据库可以把空间索引当作内置索引维护;而且使用索引查询空间数据的逻辑,也封装在索引程序里,用户无需了解索引的内部储存结构,也不用理会空间索引的算法。关系型数据库把这种延伸称为对象关系关系型数据模型,所持的理由是:空间数据的定义是一个对象(SDO_GEOMETRY),空间查询的程序封装在空间索引里。 但这不是真正的对象关系型数据模型,而只是把处理空间数据的部分,象把硬件功能卡插入主机系统一样插入到数据库中,这种以插件方式处理空间数据,数据库只提供了空间数据存储的空间,并不能象处理非空间数据那样提供处理和检索机制;为了区分数据表的类型(是否含有空间数据项),必需增加元数据表的管理,增加了系统管理的开销,而且数据(包括空间和非空间数据)的开放程度大大折扣。 在关系型数据库管理系统中由于缺少空间数据访问方法和空间数据表示法,不能支持足够的空间数据处理功能;由于不能使用直接的空间数据访问方法和空间数据表示方法,系统性能将大打折扣。 ZEUS采用完全不同的策略,在数据类型引擎中支持空间数据,非空间数据,还有多媒体数据,全部基于面向对象的概念定义。 (6)、结束语 纵观上文,可以看出空间数据管理的最佳形式为基于对象模型的数据库;但以空间数据为基础的应用系统,特别是GIS系统的最佳数据管理系统是对象关系型数据库。因为这些应用系统不仅包括空间数据管理还包括很多属性数据的管理。 对象关系型数据库管理系统涉及属性数据管理、空间数据管理、多媒体数据管理。一方面对象关系型数据库管理能够很好的完成现实世界的建模、描述与展现的工作,另一方面它也能够承担各种结构数据的存储、分析工作。对象关系型数据库管理系统将为我们目前的各种应用系统开发提供强有力的支撑,同时对象关系型数据库也将成为数据库系统的新的发展方向。 </P> |
|
|