SuperMap GIS空间数据库引擎技术
认识SuperMap SDX+
SuperMap SDX+是SuperMap GIS平台中的空间数据库引擎,它为SuperMap GIS中的所有产品提供访问空间数据的能力,通过它来实现对空间数据的存储、索引、读取和更新。SuperMap的系列产品,如SuperMap Deskpro, SuperMap Objects和SuperMap IS.NET都内置了空间数据库引擎SuperMap SDX+,通过它实现对DBMS的访问。
数据的存储性能和访问性能对整个GIS应用的性能有着重要的影响作用,所以空间数据库引擎的功能和性能对GIS应用的功能完整性和运行效率具有重大的影响。经过多年的研发和应用完善,SuperMap SDX+ 已经成为一个运行稳定、功能成熟、性能卓越的空间数据库引擎,通过它,可以把GIS的空间几何对象数据和属性数据一体化存储到多种关系型数据库中,可以对数据进行索引维护、追加、更新、删除等维护操作,可以按属性条件或空间条件来对数据进行各种查询返回需要的数据,还可以提供长事务、版本、拓扑关系维护等高级功能。
SuperMap SDX+可以支持目前流行的多种商用数据库平台,如Oracle、SQL Server、Sybase、DB2等,这些数据库可以运行在多种操作系统平台上,既可以搭建同类型数据库之间的多节点集群,也可以搭建异构数据库和异构操作系统的分布式集群。此外,在SuperMap GIS Universal产品家族中,SDX+基于标准C++代码进行开发,实现了跨操作系统平台的发展,能够在更多操作系统(包括Linux、Unix等)上提供空间数据访问和管理的能力。
图3.1.1 SuperMap SDX+ 海量空间数据库引擎
SuperMap SDX+的技术特点
使用大型关系数据库来一体化管理空间数据和业务数据,已经成为GIS应用发展的主流。空间数据库技术在很多方面有着明显的技术优势,包括海量数据管理能力、图形和属性数据一体化存储、多用户并发访问(包括读取和写入)、完善的访问权限控制和数据安全机制等。
目前,空间数据库技术成为越来越多的大中型GIS应用系统的空间数据存储和应用的解决方案。SuperMap SDX+是SuperMap GIS的空间数据库引擎,是SuperMap GIS软件的重要组成部分,它采用先进的空间数据库存储技术、索引技术和查询技术,具有“空间-属性数据一体化”、“矢量-栅格数据一体化”和“空间信息-业务信息一体化”的集成式空间数据库管理能力,是GIS大型工程应用的理想选择。
实际应用和测试表明,SuperMap SDX+具有以下三项特色:
(1)安装使用简便,充分结合数据库技术;
(2)高性能管理和访问海量空间数据;
(3)完善的数据模型,满足各种大型GIS应用的需求;
安装使用简便,充分结合数据库技术;
◆ 安装使用简便
SuperMap SDX+不需要安装配置复杂的空间数据库服务器,所有的配置管理都是标准的数据库操作,这意味着不需要学习更多专门的空间数据库技术,普通的数据库管理员即可完成空间数据库的管理配置工作。
标准的数据库管理,在数据安全性,权限控制等方面,充分发挥了DBMS平台的能力,不需要特殊的帐户以避免留下安全漏洞。对数据库的访问,通过标准的数据库协议,可以满足负责网络环境下的通畅的数据访问。更为重要的是,SuperMap SDX对数据库的操作,都是通过标准的SQL语句来执行,这样做在服务器端可以通过标准的数据库优化方式,充分发挥服务器的性能;在客户端使用者可以完全基于对数据库的操作的掌握查询和维护工作。
◆ 全面支持主流商用关系数据库平台
SuperMap SDX+可以全面支持目前的主流商用关系数据库平台,除了支持全球市场前四位的Oracle、Oracle Spatila、MS SQL Server、DB2和Sybase外,还支持国产的具有自主知识产权的达梦多媒体数据库DM和人大金仓数据库Kingbase。
SuperMap SDX+对于这些数据库提供全面的支持,为客户端提供全透明的访问。SuperMap SDX+对这些数据库平台的访问接口进行了一致的封装,用户不必关心这些数据库是运行在什么样的服务器硬件平台和操作系统平台上,也不必了解后台的数据库类型、服务器的类型和操作系统的类型即可按统一的接口对数据进行存储和管理操作,大大简化了空间数据库的配置、开发和应用的难度。
◆ 支持Oracle RAC技术
RAC(Real Application Clusters,真正应用集群)是Oracle数据库10g 企业版的核心功能之一。它是一个具有共享高速缓存体系结构的集群数据库。RAC技术完美地解决了实际应用中的两个重要问题:首先当一个服务器出现故障后其余服务器可自动接管工作,保障应用系统稳定无障碍运行;更重要的是群集的所有服务器都在协同工作,改变了过去只有当运行服务器遇到故障中断后其他服务器才开始工作的弊端,大幅度提高了服务器的可同时处理客户端请求的数量。
2005年1月,超图公司、Oracle和HP公司就SuperMap、Oracle 10g和Unix/Linux的兼容性进行了专门测试。测试表明,SuperMap SDX+不仅与Unix/Linux下的Oracle 10g兼容性良好,而且完全支持Oracle 10g中最先进的RAC技术。SuperMap SDX+对RAC技术的支持,充分表明SuperMap SDX+在兼容性和海量数据处理方面具有强大的优势。基于SuperMap SDX+ 和Oracle RAC技术,SuperMap GIS各产品完全可以用于各种大型GIS应用,为用户提供大数据量、高可用性的不间断服务。
图3.2.1 Oracle RAC技术
高性能访问和管理海量空间数据;
◆ 采用混合多级索引技术
索引技术是空间数据库引擎的一项关键技术,它直接影响到空间数据访问和查询的效率。SuperMap GIS在大量研究和实验的基础上发现,任何一种索引技术都有其不足之处,采用单一索引不能满足现在海量影像和矢量空间数据混合存储时获取数据的需求。因此SuperMap GIS创造性的提出了混合多级索引技术,在数据库引擎中采用了多层级网格、四叉树和R树三种索引,充分发挥每一种索引的优势,提高数据访问和查询效率。
针对标准分幅的典型类型的空间数据,SuperMap还支持按指定字段或按空间范围来创建图幅式索引,组合使用文件缓存技术,可为这种典型类型的应用提供顶级的访问性能。
此外,在SuperMap SDX+中,还允许直接为矢量数据集属性字段创建和删除字段索引,用户可以直接在SuperMap环境中对业务数据的索引进行维护,以进一步加快对属性数据的查询和访问速度。
◆ 文件缓存技术
文件缓存SuperMap SDX+是为均衡网络和服务器负载、提高应用整体性能而提供的智能分布式存储方案。开启文件缓存选项后,应用程序在访问存储在空间数据库中的数据时,会首先检查本地缓存库中是否已经有相应数据的最新版本,如果没有相应的缓存数据或是缓存数据不是最新版本,则从服务器端读取数据并更新本地缓存数据,这样下次访问的时候就可以直接读取本地缓存数据;如果本地缓存中已经有了相应数据的最新版本,则不必通过网络向服务器请求数据,而是直接读取本地缓存数据来完成显示或分析的功能。通过这种解决方案,可以大幅降低数据库服务器负载和网络负载,从而大幅提高应用程序的整体性能。
为节省磁盘空间并提高应用的灵活性,文件缓存中并没有配置空间索引,所以,对于记录数很多的数据集不适合设置文件缓存选项。但是,本地缓存可以与图幅索引配合使用,即对于建立了图幅索引的数据可以按图幅为单位进行缓存,这样,每个缓存文件不会很大,加载数据和更新数据的速度得到保障,可以很好地控制缓存文件的灵活性和均衡性,所以,对于记录数很多的矢量数据集,将图幅索引和文件缓存配合使用是提高性能的最佳解决方案。
当然,使用文件缓存会占用客户端的磁盘空间,SuperMap SDX+ 一方面在缓存文件中应用了高效的压缩算法来降低缓存文件所占用的磁盘空间,另一方面提供了缓存文件限额的功能来限制缓存文件占用磁盘空间总数,并采用LRU算法来保证最新访问和最常用到的数据常驻缓存。
◆ 支持数据有损/无损压缩
近年来,随着新型采集技术的发展,GIS数据的时间和空间分辨率不断提高,相应的数据规模也不断增长,数据量日益庞大,使得有限的网络带宽、存储空间与海量空间数据处理需求之间的矛盾日益突出。数据压缩作为解决这一矛盾的有效途径,在GIS应用中越来越受到重视。对数据进行压缩,有利于节省存储空间和网络带宽,提高数据传输速率,另外,数据压缩后有利于实现保密通讯,提高数据的安全性和系统整体的可靠性。
SuperMap SDX+ 对矢量和栅格数据均支持无损压缩和有损压缩技术,无损压缩是利用数据的统计冗余进行压缩,在解压时可以完全恢复原始数据而不引入任何失真,但其压缩率受到数据统计冗余度的限制,对于空间数据其压缩率一般在2:1至5:1之间。无损压缩技术适用于对数据精度要求非常高的行业与应用。由于压缩比缩比的限制,无损压缩技术并不能完全解决空间数据的存储和传输问题,应用领域也比较有限。
为了获得更大的压缩比率,SuperMap SDX+ 提供了面向矢量数据和栅格数据的有损压缩技术,有损压缩方法可以实现比无损压缩方法大得多的压缩率,它在压缩的过程中允许损失少量的信息,虽然在解压时不能完全恢复原始数据,但损失的部分对精度的影响很小,所以大绝大多数的GIS项目中都可以得到应用。矢量数据和栅格数据的有损压缩思路并不完全相同,栅格数据的压缩算法类似于多媒体应用中的图像压缩算法,主要应用行程编码、离散余弦变换和小波变换等算法对数据进行压缩;而矢量有损压缩则主要利用空间对象节点之间的近邻相关关系来对坐标点的坐标数据进行分频编码以达到数据压缩的目的。
SuperMap SDX+中的压缩技术可以根据空间数据的特点智能决定压缩的相关参数,不需要用户进行繁琐的相关设置,在保证高压缩比和时间性能的基础上简化了操作步骤,在实际应用中收到了良好的效果。