首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
数据库 :: 数据库

PostGIS开启开源空间数据库的未来


http://www.gipsky.com/
1986年,加州大学伯克利分校的Michael Stonebraker教授领导了Postgres的项目,它是PostgreSQL的前身。随后出现了PostGIS,PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,它的出现让人们开始重视基于数据库管理系统的空间扩展方式,而且使PostGIS有望成为今后管理空间数据的主流技术。

由于空间数据具有空间位置、非结构化、空间关系、分类编码、海量数据等特征,一般的商用数据库管理系统难以满足要求。

为了提高数据库管理系统(DBMS)对空间数据的管理能力,国内外先后出现过:文件与关系数据库混合管理系统、全关系型空间数据库管理系统、关系型数据库+空间数据引擎、扩展对象关系型数据库管理系统,以及面向对象空间数据库管理系统等多种解决方案。目前,国内外较为流行的主要集中在"关系型数据库+空间数据引擎"、"扩展对象关系型数据库"两方面。

"关系型数据库+空间数据引擎"通常是近年来由GIS厂商研发的一种中间件解决方案。用户将自己的空间数据交给独立与数据库之外的空间数据引擎,有空间数据引擎来组织空间数据在关系型数据库种的存储;当用户需要访问数据的时候,再通知空间数据引擎,有引擎从关系型数据库中取出数据,并转化为客户可以使用的方式。

因此,关系型数据库仅仅是存放空间数据的容器,而空间数据引擎则是空间数据进出该容器的转换通道。这类系统的典型代表有ESRI的ArcSDE和MapInfo的SpatialWare。其优点是,访问速度快,支持通用的关系数据库管理系统,空间数据按BLOB存取,可跨数据库平台,与特定GIS平台结合紧密,应用灵活。其缺点主要表现为,空间操作和处理无法在数据库内核中实现,数据模型较为复杂,扩展SQL比较困难,不易实现数据共享与互操作。

扩展对象关系型数据库管理系统是由数据库厂商研发的管理空间数据一种解决方案。由于关系型数据库难以管理非结构化数据(也包括空间数据),数据库厂商借鉴面向对象技术,发展了对象关系型数据库管理系统。

此系统支持抽象的数据类型(ADT)及其相关操作的定义;用户利用这种能力可以增加空间数据类型及相关函数,从而将空间数据类型与函数就从中间件(空间数据引擎)转移到了数据库管理系统中,客户也不必采用空间数据引擎的专用接口进行编程,而是使用增加了的空间数据类型和函数的标准扩展型SQL语言来操作空间数据。

这类支持空间扩展的产品有Oracle的Oracle Spatial, IBM的DB2 Spatial Extender, Informix 的Spatial DataBlade。其优点是,空间数据的管理与通用数据库系统融为一体,空间数据按对象存取,可在数据库内核中实现空间操作和处理,扩展SQL比较方便,较易实现数据共享与互操作。其缺点主要表现为,实现难度大,压缩数据比较困难,目前的功能和性能与第一类系统尚存在差距。

目前开源空间信息软件领域最性能优秀的数据库软件当属PostgreSQL数据库,而构建在其上的空间对象扩展模块PostGIS则使得其成为一个真正的大型空间数据库。

缘起PostgrSQL

1986年,加州大学伯克利分校的Michael Stonebraker教授领导了Postgres的项目,它是PostgreSQL的前身。这个项目的成果非常显著,在现代数据库的许多方面都作出了大量的贡献,如在面向对象的数据库、部分索引技术、规则、过程和数据库扩展方面都取得了显著的成果。同时,Stonebraker将PostgreSQL纳入到BSD版权体系中,使得PostgreSQL在各种科研机构和一些公共服务组织得到了广泛的应用。

在PostgreSQL中已经定义了一些基本的集合实体类型,这些类型包括:点(POINT)、线(LINE)、线段(LSEG)、方形(BOX)、多边形(POLYGON)和圆(CIRCLE)等;另外,PostgreSQL定义了一系列的函数和操作符来实现几何类型的操作和运算;同时,PostgreSQL引入空间数据索引R-tree。

尽管在PostgreSQL提供了上述几项支持空间数据的特性,但其提供的空间特性很难达到GIS的要求,主要表现在:缺乏复杂的空间类型;没有提供空间分析;没有提供投影变换功能。为了使得PostgreSQL更好的提供空间信息服务,PostGIS应运而生。

PostGIS简介

PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。

PostGIS的版权被纳入到GNU的GPL中,也就是说任何人可以自由得到PostGIS的源码并对其做研究和改进。正是由于这一点,PostGIS得到了迅速的发展,越来越多的爱好者和研究机构参与到PostGIS的应用开发和完善当中。

PostGIS发展历程

PostGIS是由Refractions Research Inc开发的,Refractions是一家GIS和数据库咨询公司,Refraction公司最初是在PostgreSQL的基础上研究空间数据库的实现,由于PostgreSQL所提供的空间数据类型和功能远远不能满足GIS的需求,研究工作经常陷入到进退维谷的境地,最终的结果往往是耗费了大量的人力物力,而产品却极其复杂并且性能低下。这些原因直接或间接促成PostGIS项目的实施。

PostGIS的实施也不是一帆风顺,直到PostgreSQL 7.1发布之后,PostGIS的实现才变为可能,主要原因是7.1版本之前PostgreSQL支持的记录大小最大为8Kb,从7.1之后,PostgreSQL将这一限制摈弃。即使采用二进制方式存储,空间数据对象也往往会经常超过8Kb,如果这个限制存在的话,空间数据的存储就无从谈起。

伴随着这一限制的消除,PostGIS的研究和开发也随即在2001年的4月展开,并于2001年的5月发布了PostGIS的第一版(PostGIS V0.1)。在PostGIS的第一版中,主要包括空间数据库、采用标准表示方式的空间数据对象、支持快速查询的空间索引和一些简单的分析函数(如area和length等)。PostGIS V0.1中支持的空间数据对象类型包括:点、线、多边形、几何对象类型,以及多点、多线、多多边形的几何对象类型。

2001年5月发布的PostGIS V0.2增加了对于Windows平台下二进制表示的支持,同时为新用户提供帮助文档。不过,用户反馈PostGIS的函数命名没有遵循OpenGIS规范。

2001年7月PostGIS V0.5发布,PostGIS增加了OpenGIS现有的所有功能性函数并在函数的命名上与其保持一致。增加了24个OpenGIS存取函数,同时删除了与这些函数功能等价的不标准的原有函数。

伴随着来自不列颠哥伦比亚省政府的资金支持,对于在球体表面的长度运算支持也加入到0.5版中。同期,Refractions公司将British Columbia省的数字道路地图集移植到PostGIS中,同时使用数据库的模式和数据转换功能为地图集客户提供支持(急救车派遣、紧急事物响应,以及其他市政事物等)。

PostGIS V0.5之所以重要,还有一个原因就是Minnesota大学的Mapserver的发布。Minnesota大学的Mapserver是一个开源的互联网地图发布引擎,就像ESRI公司的ArcIMS系统,Mapserver同时增加了对于PostGIS的支持。
<< JRuby中构建Apache Derby数据库应用程序的两种方法 关于数据库权限设置深入剖析 >>
评分
10987654321
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备14013333号-8