几种空间数据库系统的空间查询模块功能浅析_第1页
几种空间数据库系统的空间查询模块功能浅析_第2页
几种空间数据库系统的空间查询模块功能浅析_第3页
几种空间数据库系统的空间查询模块功能浅析_第4页
几种空间数据库系统的空间查询模块功能浅析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、几种空间数据库系统的空间查询模块功能浅析摘要:本文针对市场流行数据库Oracle和MySQL以及地理信息系统ArcGIS的空间查询模块功能进行了调 研,通过研究具体功能函数,分析总结各自的优缺点并尝试性提出了其适合的应用方向及范围。关键词:空间查询Oracle MySQL ArcGIS引言空间数据库是地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数 据的总和,一般是以一系列特定结构的文件的形式组织在存储介质之上的。空间数据库的研 究始于20世纪70年代的地图制图与遥感图像处理领域,其目的是为了有效地利用卫星遥感 资源迅速绘制出各种经济专题地图。由于传统的关系数据库在空间数据的表示

2、、存储、管理、 检索上存在许多缺陷,从而形成了空间数据库这一数据库研究领域。而传统数据库系统只针 对简单对象,无法有效的支持复杂对象(如图形、图像)。随着空间数据库的诞生,空间数 据查询功能应运而生。各数据库开发商针对空间数据库的特殊性,结合在实际应用中对空间 数据关系的分析技术,基于数据库语言开发出了一套具备空间数据查询功能的模块。本文分 别对Oracle、MySQL和ArcGIS三个产品的空间数据查询服务进行了一些调研,分析其处 理函数功能与实现方法,评价其功能的优缺点,探讨了产品的应用范围与使用方法。1 Oracle数据库Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布

3、式数据库为核心的一 组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER B/S体系结构的数据库之一。 该数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具 有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据 库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了 Oracle知识,便 能在各种类型的机器上使用它。Oracle Spatial 概述Oracle Spatial是Oracle数据库强大的核心特性,它将所有的地理空间数据类型(矢量、 栅格、网格、影像、网络、拓扑)统一在单一、开放的、基于标准的数据管理

4、环境中,这就 减少了管理单独、分离的专用系统的成本、复杂性和开销。Oracle Spatial使得我们能够在一 个多用户环境中部署地理信息系统(GIS),并且与其它企业数据有机结合起来,统一部署 电子商务、政务。其功能由于传统的GIS技术已达到其本身可伸缩性的极限,用户越来越 多地转向以数据库为中心的空间计算。Oracle Spatial将空间过程和操作直接转移到数据库内 核中,从而提高了性能和安全性。Oracle Spatial从1995年Oracle7.1.6开始发展到2003年的 10G版本,空间数据处理能力越来越强大。其在MDSYS方案下有大量的自定义数据类型, 经常使用的是SDO_G

5、EOMETRY类型,见图1。该类型表示一个几何对象,可以是点、线、 面、多点、多线、多面或混合对象。Oracle Spatial在此数据类型的基础上,实现了 R树空 间索引和四叉树空间索引,还以SQL函数的形式实现了多种空间分析功能。KC谊寸每模 型图 1 MDSYS.SDO_GEOMETRY OCCI 对照模型Oracle Spatial 功能1.2.1空间索引R树与四叉树为了优化空间查询的性能,Oracle Locator为关系数据库提供了空间索引功能。Oracle Locator提供R树索引创建功能,该功能生成和存储几何结构的近似值作为索引。R树索引 易于创建和使用一几乎不需要调整即可获

6、得最佳性能。可以在空间数据的两个、三个或四 个维度上创建R树索引。R树索引通过一个最小的包含几何体的矩形(外包矩形-MBR)来匹配每个几何体。对 于一个几何体图层,R树索引包含该层上所有几何体的分层MBR索引。R树索引存储在空 间索引表 SD) INDEX_TABLE 中,而该表又在视图 USER_SDO_INDEX_METAVATA中。R 树索引也是通过一个顺序数字发生器来确保当前用户对索引的实时更新。在创建空间索引的 时候,如果不指明任何索引参数就创建的是R树索引。在线性四叉树索引方案中,坐标空间受支配于称为镶嵌的一种处理,该处理定义了覆盖 每个几何体的唯一的、彻底的区域、所选取的区域都按

7、一定的方式编码并存放在表 SDO_INDEX中。根据所以区域的大小情况不同四叉树索引还可分为固定索引与混合索引。 其中固定索引是关系模式的首选,它使用相同大小的区域来覆盖几何体,其效率依赖于分解 的级数和几何体的大小。函数SDO_TUNE.ESTIMATE_TILING_LEVEL可用来选取恰当的区域 大小。混合索引结合了固定大小的区域和可变大小的区域。大多数应用都不用混合索引,而 是用固定索引或R树索引。两种索引方式各有所长:对几何体的近似值,R索引不能进行微调;在索引的创建和微 调方面,R树索引比四叉树索引容易;在存储空间方面,R树索引比四叉树索引需要的更少; 当对数据有大量的更新时,四叉

8、树索引是更好的选择1。1.2.2网络数据模型在Oracle数据库10g中提供了一个存储网络(图形)结构的数据模型。它显式地存 储和维护“连接一节点”网络的连通性并提供网络分析功能(如最短路径、连通性分析)。 需要网络解决方案的应用程序包括运输、公共交通、公共设施和生命科学(生物化学路径分 析)。对于运输应用程序,该网络数据模型还支持一个路线搜索特性。Oracle引入了一个可伸 缩的路线搜索引擎,该引擎提供了地址(或预先经过地理编码的位置)之间的驾驶距离、时 间和方向。它作为一个Java客户端库提供给网络数据模型,这个网络数据模型可以容易地 部署在Oracle应用服务器或独立的OC4J环境中。其

9、他的特性包括:最快或最短路径的首 选项,返回概要或详细的驾驶指导;并返回沿着一条街道网络从单个位置到多个目标位置的 时间和距离。1.2.3拓扑数据模型ORACLE SPATIAL包含一个数据模型和模式,它们在Oracle数据库中持久存储拓扑结构。 当进行大量特征编辑且对地图和地图图层间的数据完整性的有高度需求时,这非常有用。另 一个好处是基于拓扑结构的查询一般比涉及到关系(如邻接性、连通性和包容性)的查询执 行速度更快。土地管理(地籍)系统和空间数据提供商将从这些功能中获益。GeoRaster一种新的数据类型在Oracle数据库10g中以本地形式管理地理参照栅格成像(卫星成 像、遥感数据、网格

10、化数据)。ORACLE SPATIAL的GeoRaster特性提供成像的地理参照、 用于元数据管理的XML模式和基本操作,如形成分层、平铺和交*。环境管理、国防/国家 安全、能源勘探和人造卫星影像门户方面的应用程序将会从中受益。地理编码器地理编码是将地理参照(比如地址和邮编)与位置坐标(经度和纬度)联系起来的过程。 在Oracle Spatial 10g中提供一个功能全面的地理编码引擎。它通过查询存储在Oracle数 据库中的经过地理编码的数据,提供国际地址标准化、地理编码和POI匹配。它独特的非 解析地址支持为客户应用程序增加了巨大的灵活性和便利性0Oracle Spatial地理编码器作为

11、 Java存储过程在Oracle数据库服务器内部实施。并提供了一个用于地理编码的PL/SQL API。2 MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。 目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥 有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.1 MySQL Spatial 概述从MySQL4.0开始加入了 Spatial扩展功能,实现了 OpenGIS规定的几何数据类型(见 图2)在SQL中的简单空间运算。但是从4.0之后到现在,M

12、ySQL的Spatial部分一直没 有继续的更新和增强。加上早先MySQL在SQL上对空间运算支持的不完善(只支持基于 最小外接矩形的关系判断),所以MySQL是开源数据源中一个不太让人满意的选择。不过 由于MySQL在小型项目上的广泛引用,在一些情况下MySQL仍可为Deegree、MapServer、 GeoServer、Udig、GeoTools提供数据源。图2 OpenGIS规范POINT 的使用点是最基本也是最常用的一种空间数据类型。MySQL Spatia】中用POINT表示点,比如, 可以创建一个 table: CREATE TABLE address ( address CHA

13、R(80) NOT NULL, address_loc POINT NOT NULL, PRIMARY KEY(address), SPATIAL KEY(address_loc)其中, address_loc 就是一个 point 类型,说明 address_loc 是一个点。插入一个点:INSERT INTO address VALUES(Foobar street 12, GeomFromText(POINT(2671 2500);读取一个点:select AsText(address_loc) from address 一个比较麻烦的问题是,如何计算两个POINT的距离。MySQL S

14、patial不提供distance 这个函数。官方指南的做法是这样的:GLength(LineStringFromWKB(LineString(point1, point2),这条语句的意思是用两个点产生一个LineString的类型,然后调用GLength得到U line的长度。但是,这种方法计算的是欧式空间的距离,面对坐标点计算地理距离其结果自 然是有较大误差的。MySQL Spatial Index 的使用语句 ALTER TABLE address ADD SPATIAL INDEX(address_loc)可以在空间数据类型 上创建一个spatial index,这个功能只有MylS

15、AM才支持。Index的本质实际上是一个R树, 这也是最常用来作为多维数据索引的数据结构。举例来说明Index的使用方法,假设需要查找某个矩形区域内所有的点:一种方法是这样:select * from address where (X(address_loc) 116.3952) AND (X(address_loc) 39.8603) AND (Y(address_loc) Unix、Linux、Windows NT 和Windows 2000,并使用现有的IT资源来管理这些应用程序。3)高价值利用互联网,更多用户可以在机会不增加机构成本的情况下访问应用程序。这意味着用 户可以全天候地访问任务的关键信息。MySQL数据库是少有的被用户广泛使用的开源数据库,其低廉的成本任然对许多对数 据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论