技术文章 > SDE - 空间数据库引擎

SDE - 空间数据库引擎

2018-09-19 11:37

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:

经历了二十多年的发展,GIS已从小规模的工程项目组,进入了分布式的部门、企业GIS阶段,并正在俏然走向社会GIS阶段。随着计算机网络通讯,各种媒体技术特别是信息系统技术的迅猛发展,GIS技术、GIS应用服务系统及相应设施必然日益渗透和走入社会生活的各个部门、角落,甚至家庭。各种服务于不同目的的实用GIS系统将成为各阶层、部门,及个人生活中日益不可缺少的重要设施。可以想象,这种地理信息系统的主要特点是存贮和管理极大数量的空间信息,并应能提供大量用户通过网络对其进行并发查询访问的快速响应服务,例如某一城市或全国范围的通用房地产信息系统等。
为了满足上述系统的需求,ESRI最近推出了全新的空间数据库管理软件SDE——Spatial Database Engine。用以支持超大型空间数据库管理以及在网络环境中对多用户并发空间数据访问的快速响应方面的应用(Mission Critical Application)。
SDE采用真正的客户/服务器体系结构的,是高性能、面向目标的空间数据库管理系统,并提供一系列用于管理和访问大型分布式的地理数据的功能,SDE为系统开发者和集成商提供了一个高效能分布式和多用户的实时应用系统开发工具,它由一个多线程的空间数据库服务器和客户应用程序接口(API)组成。
SDE具有如下的主要特点:
支持超大型数据集
高性能的空间数据提取
灵活、高性能的空间数据搜索
专门为多用户,分布式环境设计
开放的体系结构
逻辑上的无缝、连续的非瓦片式的空间目标数据模型
两阶段事物提交控制
支持多种硬件平台
具有有力而灵活的应用开发环境
完整灵活的安全控制机制
多用户并发查询的快速响应
前不久在澳大利亚对SDE进行了一次测试,300个用户在Windows NT平台上通过网络对管理1百多万个地理要素空间数据库的SDE进行并发查询访问,SDE对每个查询的最大响应时间均小于3秒。并证明用户数目的增加并不导致性能明显下降。


图一:用户数目的增加并不导致性能的下降

SDE的系统结构
SDE的体系结构是一种数据库的而不是GIS系统的体系结构,它使用关系型数据库来存贮和管理所有空间数据和属性数据。SDE是位于RDBMS上面一个层次的服务程序,为客户的请求提供空间数据的查询访问和分析服务。客户端对SDE所有功能访问都是通过应用程序接口(API)来完成,SDE应用程序接口提供给用户标准的空间查询和分析函数,以C语言函数库的形式存在。新版本的ArcView就嵌入了SDE API程序,使ArcView可被用来作为SDE的客户端产品,请求SDE服务器的服务。


图2:SDE 体系结构
SDE的处理模型
SDE采用真正的客户/服务器处理模型,每个客户发出的服务请求在服务器上都将引发一个独立的任务。
这种多线程的设计意味着SDE可以充分利用多CPU带来的高性能。SDE Server可运行在不同的Unix平台,Client和 Server进程的数据传输采用TCP/IP协议。当SDE的客户和服务器进程分别运行于异种机平台时,采用外部数据表示(XDR),来支持不同硬件平台数据格式。SDE将通过其自身的安全机制,监控所有进程的状态和连接,以保持系统的一致性。客户任务可运行于几乎目前所有PC和Unix平台如Windows、Windows NT、 Windows 95、Machintosh、 Solaris、HP-UX 、AIX、 Digital Unix等。
SDE的高性能
系统的整体性能和事务级的数据一致性是SDE设计的最为重要的目标。由于实时信息系统需要很高的性能,SDE最大限度地加速系统的响应,降低网络的传输量。SDE的体系结构强调了进程间的异步协处理的概念和技术。SDE Client和Server分别具有一个缓冲区,Client和Server之间完全通过这两个缓冲区传输请求和结果。Client程序发出请求后不是等待Server返回结果,而是继续向缓冲区中发出请求或从缓冲区中读出前面某次的请求结果,Client 和Server的请求和应答完全是并发和异步的。用户的应用可随需要动态地改变缓冲区的大小和性能,以进一步改进Client和Server的协调处理性能。有时,CPU密集的操作,如缓冲区的计算、多边形的叠加运算等,可由Client任务在本地机上完成,Server只负责从库中找到与本次运算有关的所有空间数据。这样可使Server避免大量的不必要的运算负担。这种任务的分配由SDE自动进行,对用户是透明的。
连续的空间目标数据库
实际上,目前所有的GIS为了组织和存贮大型空间数据,都将数据进行分幅存储和管理。当对跨图幅要素进行访问时,这种人为的分幅就大大地降低了响应速度。SDE则以完全连续的方式存贮数据,不论数据量多大都没有图幅系统和区块的概念。SDE数据库是真正意义上的连续和无缝,用户可自由地漫游整个数据库
空间目标数据模型
SDE采用空间目标的数据结构模型,地物要素用某一空间目标表示。SDE目前支持三类空间目标类和7种目标类型。空间目标可以是两维也可以是三维的。
1、点状目标类型
Point - 单一坐标的点,表示点要素位置如水井、控制点、水栓等
Point Cluster - 任意坐标点集合。用于加快数据访问速度。
例如高程控制点50米 - 100米之间用一个点群表示,一个磁盘访问操作即可调入。
2、线状目标类型
Spaghetti - N个点之间的连线
Linestring - N点之间的连线且不闭合和相交
Ring - N点之间的闭合连线
3、面状目标类型
Polygon
Donut Polygon - 多个不相交和相邻的多边形被另一个不同多边形包围的目标,用于表示有岛的湖泊等地物要素。
4、网状特征类型 - Network
Network由Linestring和Ring目标组成,如果某一空间要素被声明是Network类型,则SDE自动维护一个node-to-node表以用于网络分析功能。
快速的空间搜索
当人们使用地图的时候,最通常是在读图,实际上在判断各种地图要素的空间关系以找出想要得到地理系统和要素的空间信息,类似于这种读图的操作在计算机中表现为空间搜索操作。SDE支持多种空间搜索方式 ,空间关系被动态地判断无须预先在库中存贮要素的空间关系。
SDE系统的安全机制
在所有运行环境下SDE为用户提供三个层次的灵活的安全机制。第一层是在SDE Server的登录(Login)级别上实施的。当Client任务向SDE Server发请求之前,须在SDE Server上进行登录。SDE Server确认为合法用户后进入下一层安全机制。用户被确认是否有权使用它所需要的数据集。如果确认为有权使用,则这次请求就继承一个系统管理员为此用户设定的不同类型要素访问权限的位模(Mask),每种地物要素类型在数据集中都具有256个不同安全级别中的一个,用户访问请求的位模指明了对于哪类数据记录是可读、不可读或根本无权访问。
SDE的事物控制
SDE的两阶段事物提交控制使应用对空间数据的更新与数据库中的实际数据更新同步发生,如果对数据库的提交操作不成功,SDE再回退此事物。SDE提供了4个事物控制的函数:SE_start_trans(),SE_prepare_trans(),SE_commit_trans()和SE_rollback_trans()。
SDE的空间数据记录锁定
独立于RDBMS提供的记录锁定机制,SDE提供空间目标级的数据锁定,它支持三种锁定类型和两种锁定方式SDE系统管理员可以保证哪些用户有权更新那些数据,并能保证并发的更新操作不破坏库中数据的一致性。