




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
几种空间数据库系统的空间查询模块功能浅析摘要:本文针对市场流行数据库Oracle和MySQL以及地理信息系统ArcGIS的空间查询模块功能进行了调研,通过研究具体功能函数,分析总结各自的优缺点并尝试性提出了其适合的应用方向及范围。关键词:空间查询 Oracle MySQL ArcGIS引言空间数据库是地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数据的总和,一般是以一系列特定结构的文件的形式组织在存储介质之上的。空间数据库的研究始于20 世纪 70年代的地图制图与遥感图像处理领域,其目的是为了有效地利用卫星遥感资源迅速绘制出各种经济专题地图。由于传统的关系数据库在空间数据的表示、存储、管理、检索上存在许多缺陷,从而形成了空间数据库这一数据库研究领域。而传统数据库系统只针对简单对象,无法有效的支持复杂对象(如图形、图像)。随着空间数据库的诞生,空间数据查询功能应运而生。各数据库开发商针对空间数据库的特殊性,结合在实际应用中对空间数据关系的分析技术,基于数据库语言开发出了一套具备空间数据查询功能的模块。本文分别对Oracle、MySQL和ArcGIS三个产品的空间数据查询服务进行了一些调研,分析其处理函数功能与实现方法,评价其功能的优缺点,探讨了产品的应用范围与使用方法。1 Oracle数据库Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。该数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了Oracle知识,便能在各种类型的机器上使用它。1.1 Oracle Spatial概述Oracle Spatial是Oracle数据库强大的核心特性,它将所有的地理空间数据类型(矢量、栅格、网格、影像、网络、拓扑)统一在单一、开放的、基于标准的数据管理环境中,这就减少了管理单独、分离的专用系统的成本、复杂性和开销。Oracle Spatial使得我们能够在一个多用户环境中部署地理信息系统(GIS),并且与其它企业数据有机结合起来,统一部署电子商务、政务。其功能由于传统的 GIS 技术已达到其本身可伸缩性的极限,用户越来越多地转向以数据库为中心的空间计算。Oracle Spatial将空间过程和操作直接转移到数据库内核中,从而提高了性能和安全性。Oracle Spatial从1995年Oracle7.1.6开始发展到2003年的10G版本,空间数据处理能力越来越强大。其在MDSYS方案下有大量的自定义数据类型,经常使用的是SDO_GEOMETRY类型,见图 1。该类型表示一个几何对象,可以是点、线、面、多点、多线、多面或混合对象。Oracle Spatial 在此数据类型的基础上,实现了R树空间索引和四叉树空间索引,还以SQL函数的形式实现了多种空间分析功能。图 1 MDSYS.SDO_GEOMETRY OCCI 对照模型1.2 Oracle Spatial功能1.2.1 空间索引R树与四叉树为了优化空间查询的性能,Oracle Locator 为关系数据库提供了空间索引功能。Oracle Locator 提供 R树索引创建功能,该功能生成和存储几何结构的近似值作为索引。R树索引易于创建和使用 几乎不需要调整即可获得最佳性能。可以在空间数据的两个、三个或四个维度上创建 R树索引。 R树索引通过一个最小的包含几何体的矩形(外包矩形-MBR)来匹配每个几何体。对于一个几何体图层,R树索引包含该层上所有几何体的分层MBR索引。R树索引存储在空间索引表SD)INDEX_TABLE中,而该表又在视图USER_SDO_INDEX_METAVATA中。R树索引也是通过一个顺序数字发生器来确保当前用户对索引的实时更新。在创建空间索引的时候,如果不指明任何索引参数就创建的是R树索引。在线性四叉树索引方案中,坐标空间受支配于称为镶嵌的一种处理,该处理定义了覆盖每个几何体的唯一的、彻底的区域、所选取的区域都按一定的方式编码并存放在表SDO_INDEX中。根据所以区域的大小情况不同四叉树索引还可分为固定索引与混合索引。其中固定索引是关系模式的首选,它使用相同大小的区域来覆盖几何体,其效率依赖于分解的级数和几何体的大小。函数SDO_TUNE.ESTIMATE_TILING_LEVEL可用来选取恰当的区域大小。混合索引结合了固定大小的区域和可变大小的区域。大多数应用都不用混合索引,而是用固定索引或R树索引。两种索引方式各有所长:对几何体的近似值,R索引不能进行微调;在索引的创建和微调方面,R树索引比四叉树索引容易;在存储空间方面,R树索引比四叉树索引需要的更少;当对数据有大量的更新时,四叉树索引是更好的选择1。1.2.2 网络数据模型 在 Oracle 数据库 10g 中提供了一个存储网络(图形)结构的数据模型。它显式地存储和维护“连接节点”网络的连通性并提供网络分析功能(如最短路径、连通性分析)。需要网络解决方案的应用程序包括运输、公共交通、公共设施和生命科学(生物化学路径分析)。 对于运输应用程序,该网络数据模型还支持一个路线搜索特性。Oracle 引入了一个可伸缩的路线搜索引擎,该引擎提供了地址(或预先经过地理编码的位置)之间的驾驶距离、时间和方向。它作为一个 Java 客户端库提供给网络数据模型,这个网络数据模型可以容易地部署在 Oracle 应用服务器或独立的 OC4J 环境中。其他的特性包括:最快或最短路径的首选项,返回概要或详细的驾驶指导;并返回沿着一条街道网络从单个位置到多个目标位置的时间和距离。 1.2.3 拓扑数据模型 ORACLE SPATIAL 包含一个数据模型和模式,它们在 Oracle 数据库中持久存储拓扑结构。当进行大量特征编辑且对地图和地图图层间的数据完整性的有高度需求时,这非常有用。另一个好处是基于拓扑结构的查询一般比涉及到关系(如邻接性、连通性和包容性)的查询执行速度更快。土地管理(地籍)系统和空间数据提供商将从这些功能中获益。 1.2.4 GeoRaster一种新的数据类型在 Oracle 数据库 10g 中以本地形式管理地理参照栅格成像(卫星成像、遥感数据、网格化数据)。ORACLE SPATIAL 的 GeoRaster 特性提供成像的地理参照、用于元数据管理的XML 模式和基本操作,如形成分层、平铺和交*。环境管理、国防/国家安全、能源勘探和人造卫星影像门户方面的应用程序将会从中受益。 1.2.5 地理编码器地理编码是将地理参照(比如地址和邮编)与位置坐标(经度和纬度)联系起来的过程。在 Oracle Spatial 10g 中提供一个功能全面的地理编码引擎。它通过查询存储在 Oracle 数据库中的经过地理编码的数据,提供国际地址标准化、地理编码和 POI 匹配。它独特的非解析地址支持为客户应用程序增加了巨大的灵活性和便利性。Oracle Spatial地理编码器作为 Java 存储过程在 Oracle 数据库服务器内部实施。并提供了一个用于地理编码的 PL/SQL API。2 MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.1 MySQL Spatial概述从MySQL4.0开始加入了Spatial扩展功能,实现了OpenGIS规定的几何数据类型(见图 2)在SQL中的简单空间运算。但是从 4.0之后到现在,MySQL的Spatial部分一直没有继续的更新和增强。加上早先MySQL在SQL上对空间运算支持的不完善(只支持基于最小外接矩形的关系判断),所以MySQL是开源数据源中一个不太让人满意的选择。不过由于MySQL在小型项目上的广泛引用,在一些情况下MySQL仍可为Deegree、MapServer、GeoServer、Udig、GeoTools提供数据源。图 2 OpenGIS规范2.1.1 POINT的使用点是最基本也是最常用的一种空间数据类型。MySQL Spatial中用POINT表示点,比如,可以创建一个table:CREATE TABLE address ( address CHAR(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 Spatial不提供distance这个函数。官方指南的做法是这样的:GLength(LineStringFromWKB(LineString(point1, point2),这条语句的意思是用两个点产生一个LineString的类型,然后调用GLength得到line的长度。但是,这种方法计算的是欧式空间的距离,面对坐标点计算地理距离其结果自然是有较大误差的。2.1.2 MySQL Spatial Index的使用语句ALTER TABLE address ADD SPATIAL INDEX(address_loc) 可以在空间数据类型上创建一个spatial index,这个功能只有MyISAM才支持。Index的本质实际上是一个R树,这也是最常用来作为多维数据索引的数据结构。举例来说明Index的使用方法,假设需要查找某个矩形区域内所有的点:一种方法是这样:select * from address where (X(address_loc) 116.3952) AND (X(address_loc) 39.8603) AND (Y(address_loc) 39.8703);假设我们已经在address_loc这个column上创建了spatial index,所以上述的查询应该很快。但是,上述的查询会扫描table内的所有数据,挨个进行计算,建立的index完全不起作用。所以正确的做法是在查询中使用一些内建的和spatial有关的函数,只有这些函数能够有效的利用到index。正确的查询应该是:select AsText(address_loc) from address where MBRContains(GeomFromText(Polygon(115.3073 40.3821, 115.3173 40.3821, 115.3173 40.4021, 115.3073 40.4021, 115.3073 40.3821),address_loc);这里用到了函数MBRContains,用于判断一个point是否在指定的polygon内部。这个函数就能够很好的使用之前创建的spatial index。可以做个试验,比较之前两个查询的处理时间,你会发现,后者的速度要快很多。3 ArcGISArcGIS是由美国环境系统研究所公司(Environmental Systems Research Institute, Inc. 简称ESRI公司)开发的通用地理信息系统软件,也是目前应用最广泛的GIS软件。在其英文网站上ESRI毫不客气的称自己是“The GIS Software Leader,俨然行业老大的态势。事实上其ArcGIS系列产品也确实是业界难以望其项背的产品。ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台。ArcObjects包含了大量的可编程组件,从细粒度的对象(例如,单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象)涉及面极广,这些对象为开发者集成了全面的GIS功能。每一个使用ArcObjects建成的ArcGIS产品都为开发者提供了一个应用开发的容器,包括桌面GIS(ArcGIS Desktop),嵌入式GIS(ArcGIS Engine)以及服务端GIS(ArcGIS Server)。3.1 ArcGIS的空间分析功能与MapGIS等其他GIS产品不同,ArcGIS 的空间分析功能分布于 Spatial Analyst、3D Analyst、Network Analyst、Geostatistical Analyst 和 Tracking Analyst 五大扩展模块中。除了向用户提供的的叠加分析、缓冲区分析、数字地面模型分析和网络管理等常用空间基本空间分析功能外,ArcGIS 还提供了水文工具、数学工具、地图代数工具、地统计分析和踪迹分析等功能。3.1.1 水文工具单独使用或组合使用用以创建流量网、描绘分水岭等。3.1.2 数学工具为空间分析提供一整套数学操作方法和函数, 允许在多个栅格中对值进行算数运算、 进行数学操作等。3.1.3 地图代数工具一种和其他代数类似的空间分析语言3.1.4 地统计分析科学地运用确定性方法和地统计方法, 根据研究对象在不同地理位置上获取的采样数据, 进行高级表面建模, 从而准确预测研究对象在地理景观中的连续分布,借以获取其在任意空间位置上的数值特征。3.1.5 踪迹分析实现时间事件数据的输入、 显示和分析。3.1.6 三维分析ArcGIS 中的 “三维分析”与 MapGIS 的 “数字地面模型(DTM)”类似,都可进行可视域的分析、填挖方计算和生成泰森多边形等。 ArcScene 和 ArcGlobe 这两项三维查看功能大大加强了 ArcGIS 的三维分析能力。3.2 ArcGIS的属性数据分析功能在ArcGIS 中关于属性数据的分析被排除在空间分析的范畴以外,将常用的属性数据分析(如统计、概要统计,值域计算等)都放置在图层属性表(Attributes Table)的字段计算中。ArcGIS 中的水文工具十分强大,该工具提供了诸如Flow Accumulation、Sap Pour Points 和Streaming to Feature 等十一项功能,用以生成一个汇聚流栅格图、在指定范围内获取流量汇集的最大单元格、将栅格图形转为矢量图形等。4 结论ArcGIS 的空间数据分析功能强大,但在功能布局结构存在着以下弊端:属于同一类的空间分析功能被零散地分布在多个功能区域,不便于用户使用 ,Network Analyst 扩 展 模 块 由 Network Analyst工具栏、Network Analyst Tools工具箱、创建网络数据集向导和网络分析窗体四部分组成,虽然起到了互补作用,但也导致软件功能上的重复。Oracle Spat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法学总论课件
- 笔译考试三级真题及答案
- 新质生产力包含半导体么
- 社区经济与新质生产力
- 新质生产力内涵解读
- 《统计学-SPSS和Excel实现》(第9版)课件 第1章 统计、数据和计算机
- 交叉学科:新质生产力的创新源泉
- 哪些行业是新质生产力的产物
- 民族民间舞蹈课件
- 医护关系矛盾化解
- (9月10日)师者如光虽微致远-2025年教师节主题班会课件-2025-2026学年高中主题班会课件
- 2025秋外研新版三起点小学英语四年级上册教学计划
- 2025-2026学年人教版(2024)初中数学八年级上册教学计划及进度表
- 2025秋部编版二年级上册语文教学计划+教学进度表
- 智慧城市管理技术专业教学标准(高等职业教育专科)2025修订
- 南京市2025届高三年级学情调研(零模)物理试卷(含答案详解)
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 一、问题解决型课题QC小组成果案例
- T∕CACM 1064-2018 针刀医学临床 通用要求
- 青年集合住宅案例分析ppt课件
- 亮化工程(夜景照明)施工组织方案(施工组织设计方案)
评论
0/150
提交评论