回到首页

 您的位置:首页 >> 软件产品 >> SuperMap SDX+
 

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+中的压缩技术可以根据空间数据的特点智能决定压缩的相关参数,不需要用户进行繁琐的相关设置,在保证高压缩比和时间性能的基础上简化了操作步骤,在实际应用中收到了良好的效果。


    完善的数据模型;

      ◆ 全面支持各种空间对象类型

        SuperMap SDX+提供了全面的空间对象类型的支持,既支持简单的点、线、面类型的空间对象,也支持文本对象、复合对象、Network(网络模型)、Route(路由模型)、TIN(三角格网模型)、DEM(数字高程模型)、GRID(格网数据)和Image(影像数据)等复杂数据模型。

      ◆ 时序数据模型

        SuperMap SDX+支持存储历史变更数据,并可以方便的回溯过去任意时刻的数据,甚至可以像放电影一样回放历史数据的变化。

        时序数据功能的使用非常简单。保存时序数据时,将数据集的注册选项值Option设置为“时序(scoSequence)”即可,此后任何对数据的修改都将被自动记录下来。回溯历史数据时,将图层(soLayer)的显示过滤条件(DisplayFilterEx 属性)设置为需要回溯的历史时刻然后刷新显示即可查看在该时间数据的状态。

        在SuperMap SDX+ 的新版本中进一步完善了时序数据的管理,增加了时序的不同时刻数据管理功能,用户可以设定不同的时刻,对数据进行“快照”,使用的时候可以快速的定位到不同时刻,还可以删除,合并,回溯到特定时刻版本等。

      ◆ 拓扑关系存储

        在SuperMap SDX+的以前版本中也支持一些拓扑的操作和维护,如建立网络数据集等,在新版本的SuperMap SDX+中,拓扑模型得到了大幅的增强,实现了完整的拓扑模型和拓扑检查规则。

        SuperMap GIS 2008的SDX+重新增了拓扑模型,可以将点、线、面多种类型的多个数据集纳入到一个模型中来管理,可以设置两两数据集之间的拓扑限制规则,在限制规则的基础上进行拓扑关系的检查,如检查某一点数据集中的点是否都在另一线数据集的弧段的端点上,检查某一线数据集中的线是否都在另一面数据集的边界上,检查两个线数据集的线段没有相交的情况,检查两个面数据集中的面都是完全包含的关系等等,检查过程中发现的违反拓扑规则的情况存入系统表中,以备用户进行编辑,以维护正确的拓扑关系。在对数据进行编辑时,可以利用前面检查生成的拓扑错误信息对数据进行修正,另外支持用户进行扩展,以实现编辑时用户可以检查拓扑关系,对不符合拓扑限制规则的编辑操作给出提示信息以保证数据的准确性;编辑后,还可以对编辑形成的“脏区”或者用户指定区域进行局部拓扑。

                                        表3.2.1常用的拓扑限制规则

拓扑规则
参与要素类型
大体描述
不可以重叠 (MustNotOverlap)
面数据集
面对象之间不能有重叠的部分
不可以有间隙(Must Not Have Gaps)
面数据集
面对象之间不能有间隙
不可以互相重叠
(Must Not Overlap With)
面数据集
面数据集
数据集之间的面对象不能互相重叠
必须完全覆盖
(Must Be Covered By Feature Class Of)
面数据集
面数据集
第一个数据集中的对象必须被第二个数据集中的某几个覆盖
必须完全互相覆盖
(Must Cover Each Other)
面数据集
面数据集
第一个数据集中的某些对象与第二个数据集中的某些对象必须完全互相覆盖
必须被包含
(Must Cover By)
面数据集
面数据集
第一个数据集中的对象必须被第二个数据集中的某个覆盖
边线必须覆盖
(Boundary Must Be Covered By)
面数据集
线数据集
面数据集中的面对象的边界必须被线数据集中的线对象覆盖
面的边界必须被另外的边界覆盖
(Area Boundary Must Be Covered By oundary Of)
面数据集
面数据集
第一个面数据集中的一个面对象的边界必须被第二个面数据集中的某些面对象的边界所覆盖
包含点
(Contains Point)
面数据集
点数据集
面数据集中的对象必须包含点数据集中的点
不可以叠加
(Must Not Overlap)
线数据集
线数据集中的对象之间不可以有重叠的部分
不可以相交
(Must Not Intersect)
线数据集
线数据集中的对象不可交叉
不可以有悬点
(Must Not Have Dangles)
线数据集
线数据集中的一个线对象必须与其他线在两端相接. 一个不与其他线相连的端点称为一个悬点
不可以有伪结点
(Must Not Have Pseudonodes)
线数据集
要求一条线在端点处必须连接到至少两条其他线上
不可以相交或内部接触
(Must Not Intersect Or Touch Interior)
线数据集
线之间不可相交且只能在端点处接触
不可以相互交迭
(Must Not Overlap With)
线数据集
线数据集
同Must Not Overlap With,只是这是在数据集之间的操作
必须被其他对象类覆盖
(Must Be Covered By Feature Class Of)
线数据集
线数据集
第一个数据集中的对象必须被第二个数据集中的某些对象覆盖
必须被边界所覆盖
(Must Be Covered By Boundary Of)
线数据集
面数据集
类似Boundary Must Be Covered By只是操作集与被操作集互换
端点必须被覆盖
(Endpoint Must Be Covered By)
线数据集
点数据集
线对象的端点必须被点对象覆盖
不可以自己交迭
(Must Not Self Overlap)
线数据集
对象不可以自己部分重叠
不可以自己相交
(Must Not Self Intersect)
线数据集
对象不可以自交
必须只有一个部分
(Must Be Single Part)
线数据集
不可以有复杂对象
必须被边界所覆盖
(Must Covered By Boundary Of)
点数据集
面数据集
点对象必须在面的边界上
必须完全在多边形内的
(Must Be Properly Inside Polygons)
点数据集
面数据集
点对象必须在面的内部
必须被另一个对象类中的线的端点所覆盖
(Must Be Covered By Endpoint Of)
点数据集
线数据集
点对象必须被线对象的端点所覆盖
必须被线所覆盖
(Must Be Covered By Line)
点数据集
线数据集
点对象必须在线上
必须大于容限
(Must be larger than cluster tolerance)
线数据集

面数据集
线或面对对象的节点距离必须大于容限值

SuperMap SDX+ 的版本管理和长事务

    版本管理

    在GIS领域的很多应用中,对数据做的添加、修改和删除等编辑操作,需要特别慎重,最好是能够保存对数据每一步更改的历史数据,以便能够回溯或是恢复;在另外一种应用模式下,需要编辑的数据集往往很大,如果由一名数据人员进行编辑,工期会拖得很长,为了不影响项目的进度,往往需要多名数据人员同步对数据进行编辑操作,但又要使他们的编辑互不影响,这便要求空间数据引擎提供分支版本的功能来满足上述要求。

    针对数据集中管理,异步更新维护的需求,SuperMap SDX+推出了版本管理模型,在版本管理模型中可以对数据集创建一个或多个版本,一旦数据集创建了版本,针对它的各种编辑操作都会在新的版本分支中以增量的方式记录下来,分支版本与原始数据及其他分支版本的数据独立并行存在,这样一方面可以实现每个数据编辑人员对数据的乐观锁定及访问,另一方面可以实现多个数据编辑人员同时对同一数据进行编辑操作,且各个版本之间不会相互干扰。

    多个用户对同一数据进行多版本编辑很容易导致同一区域或对象被多个用户同时修改了,这便是版本编辑中的冲突问题。针对冲突问题,SuperMap SDX+提供了方便的解决方案,在将分支版本合并到主版本时,会检测修改的数据是否已经被其他用户修改并提交,如果已经有了这种情况,即冲突存在,SuperMap SDX+会发出提示信息并对变更的数据进行可视化对比,用户可以方便地决定保留哪一个分支的数据作为最终结果。

    长事务处理

    在数据库应用程序中,事务是一个比较常见的概念,它是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有具备这些属性才能成为一个事务。

    在事务的上述特点中,我们最关心的是其并发性和原子性。

    并发性控制确保两个用户不能更改同一数据,或者一个用户不能在另一个用户对数据操作完成之前对其进行更改。

    原子性确保事务中所有步骤都作为一个组成功地完成。如果一个步骤失败,则不应完成其它步骤。

    这种事务处理机制由数据库管理系统(DBMS)提供,SuperMap支持此种模式的事务处理,即短事务处理机制。

    短事务在普通的DBMS应用系统中有着广泛的应用,但GIS程序有许多不同于普通DBMS应用程序的地方,如一次编辑中处理数据量比较大,往往是一个区域的数据;一次编辑持续的时间比较长,可以是几天,几个月,甚至更长的时间;在编辑期间需要允许其他用户浏览相关的数据……
这些特点要求为GIS程序提供特殊的事务处理机制,SuperMap为此提供了长事务处理机制。

    SuperMap长事务面向GIS应用的事务处理机制,具有短事务的主要优势(ACID属性),而尽量避免了短事务的局限性,它具有如下的特点:

  ◆ 能够锁定图层中某个区域的数据来对它进行编辑,在完成编辑以前其他用户只能看到编辑以前的数据而不能对锁定的数据进行编辑。

  ◆ 编辑时间可以是几天,几个月甚至更长的时间。

  ◆ 即使遇到突然断电、死机或者其它意外情况也能保证所作的修改不会丢失或被破坏。

  ◆ 不管什么时候,如果对于所作的修改不满意,可以回滚所作的修改,恢复到原来的样子。

  ◆ 一旦提交了所作的修改,其他用户立即能看到所作的修改。

  ◆ 只有在提交了修改或作了回滚后,其他用户才可以对原锁定区域进行修改。


SuperMap SDX+ 的发展

    空间数据引擎是GIS平台软件的核心部分,以前SuperMap SDX+重点实现的是数据库引擎,在SuperMap GIS 2008中, SuperMap SDX+的最新版本在原来基础上有了很大扩展,在已经实现的数据库引擎和文件引擎的基础上,新增加了Web Service数据引擎和Spatial引擎。

    数据库引擎主要针对Oracle、SQL Server、Sybase、DB2、Kingbase等关系型数据库管理系统;文件引擎是指SDB,SIT等引擎;WebService引擎可以直接访问WFS、WMS等标准网络服务协议提供的数据,这类引擎就是把网络上各种开放的Web服务,作为SuperMap的数据源来处理,通过它可以把网络发布的地图和数据与SuperMap的地图和数据完全结合起来。将WFS和WMS的应用融入到SuperMap的技术体系,拓展了SuperMap数据引擎的应用领域,满足应用系统的数据共享需求。Spatial引擎则包括Oracle Spatial、ESRI ArcSDE等其他格式存储的空间数据。如果已经使用其他格式标准建立了的空间数据库,SuperMap SDX+可以直接读取这些格式的数据,应用到项目开发中。

    通过引擎的这些扩展,可以使业界流行的空间信息存储平台都尽可能的和SuperMap融合在一起,从而简化最终用户应用的复杂度,提高GIS综合应用的完整性与灵活性。



图3.4.1 SuperMap SDX+支持的数据源

    SuperMap GIS 2008产品中,新的SuperMap SDX+已经支持WMS,WFS两种OGC Web Services服务引擎,支持Oracle Spatial空间数据引擎,更多的Web服务标准和ESRI ArcSDE引擎将在后续版本提供。另外,作为一个免费的数据库MySQL,已经得到了越来越多用户的支持,SuperMap将在下个版本中提供MySQL引擎,满足低成本中小型GIS应用的需求。

    经过多年的市场洗礼和开发完善,SuperMap SDX+已经成为SuperMap软件框架中的重要产品,在多项关键技术上不断取得突破,甚至达到了国际领先水平。但也应看到,SuperMap SDX+在一些应用模型方面、在紧跟IT技术快速发展方面,还有待继续完善,需要不断的持续提高和完善。将继续增强版本功能,在版本功能的基础上改进长事务的实现方式,实现长事务和版本管理两种锁定模式的统一;将继续跟踪主流IT技术在数据库访问上的发展,实现离线编辑,分布式更新等功


 
联系我们  网站地图
版权所有© 1997-2009,北京超图软件股份有限公司 京ICP证020360号 京ICP备05002978号
电话:+86-10-82736655 传真:+86-10-82734630