PostGIS 开启开源空间数据库的未来 1986年,加州大学伯克利分校的 Michael Stonebraker教授领导了 Postgres的项目,它是 PostgreSQL的前身。随后出现了 PostGIS,PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,它的出现让人们开始重视基于数据库管理系统的空间扩展方式,而且使 PostGIS有望成为今后管理空间数据的主流技术。 由于空间数据具有空间位置、非结构化、空间关系、分类编码、海量数据等特征,一般的商用数据库管理系统难以满足要求。 为了提高数据库管理系统(DBMS)对空间数据的管理能力,国内外先后出现过:文件与关系数据库混合管理系统、全关系型空间数据库管理系统、关系型数据库+空间数据引擎、扩展对象关系型数据库管理系统,以及面向对象空间数据库管理系统等多种解决方案。目前,国内外较为流行的主要集中在“关系型数据库+空间数据引擎”、“扩展对象关系型数据库”两方面。 “关系型数据库+空间数据引擎”通常是近年来由 GIS厂商研发的一种中间件解决方案。用户将自己的空间数据交给独立与数据库之外的空间数据引擎,有空间数据引擎来组织空间数据在关系型数据库种的存储;当用户需要访问数据的时候,再通知空间数据引擎,有引擎从关系型数据库中取出数据,并转化为客户可以使用的方式。 因此,关系型数据库仅仅是存放空间数据的容器,而空间数据引擎则是空间数据进出该容器的转换通道。这类系统的典型代表有 ESRI的 ArcSDE和 MapInfo的 SpatialWare。其优点是,访问速度快,支持通用的关系数据库管理系统,空间数据按 BLOB存取,可跨数据库平台,与特定 GIS平台结合紧密,应用灵活。其缺点主要表现为,空间操作和处理无法在数据库内核中实现,数据模型较为复杂,扩展 SQL比较困难,不易实现数据共享与互操作。 扩展对象关系型数据库管理系统是由数据库厂商研发的管理空间数据一种解决方案。由于关系型数据库难以管理非结构化数据(也包括空间数据),数据库厂商借鉴面向对象技术,发展了对象关系型数据库管理系统。 此系统支持抽象的数据类型(ADT)及其相关操作的定义;用户利用这种能力可以增加空间数据类型及相关函数,从而将空间数据类型与函数就从中间件(空间数据引擎)转移到了数据库管理系统中,客户也不必采用空间数据引擎的专用接口进行编程,而是使用增加了的空间数据类型和函数的标准扩展型 SQL语言来操作空间数据。 这类支持空间扩展的产品有 Oracle的 Oracle Spatial, I...