ArcSDE 的介绍和使用

        SDE是ArcGISer需要掌握的技术,它作为空间数据库管理的一个中间件,目前还在不断发展中,虽然传统的RDBMS也在开发自己的空间引擎,比如Oracle Spatial,但是,SDE还是比较好用的。

        在这篇文章介绍如何在Oracle 12C配置SDE:创建SDE企业级数据库——在 Oracle 中配置 extproc 以访问 ST_Geometry

1.介绍

        SDE的全称是spatial database engine(空间数据引擎),所有的空间数据IO都需要通过它来管理。它属于中间件,位于客户端和数据库之间,其本身并不能够存储空间数据,它的作用是将数据库中的对象(表、视图等)抽象成上层GIS应用可以认识的概念,例如feature、feature class等。

        ArcSDE把空间数据对象统称为资料档案库(Repository)。以基于Oracle数据库的ArcSDE为例,资料档案库包含SDE用户下的数据字典表、存储过程、以及数个.dll文件。数据字典表,用以存储要素类、要素类字段、要素类投影、要素类范围等元数据信息,而存储过程和.dll用于实现对空间数据的GIS运算和操作,例如用于计算polygon周长的方法。

        很早之前,矢量空间数据在数据库里表现为一个BLOB字段。以BLOB字段的形式存储,虽然解决了存储的问题,但却没能很好地利用RDBMS的能力。例如,它不能用SQL操非常便捷地处理空间数据(处理BLOB需要反序列化)。
        为了更好地利用RDBMS的资源,从ArcSDE 9.2开始,ESRI提供了一个结构化的数据类型——ST_GEOMETRY。由于数据是结构化的,支持进行各种SQL操作(例如更新)。


2.使用ArcSDE的连接方式

2.1 三层模型
        在ArcSDE8.1之前,通过ArcSDE连接数据库是一种三层模型,三层模型即ArcSDE服务连接。

ArcSDE 的介绍和使用_第1张图片

        当使用ArcSDE服务连接时,需要在ArcSDE Server安装RDBMS Client Software。在此种连接模式下,客户端通过SDE服务访问数据表后,ArcSDE Server服务器端完成对数据的各种操作,再把操作结果返回客户端。

        ArcSDE并不能够存储空间数据,数据都是存储在RDBMS(关系型数据库)(实际上并不限于RDBMS,ArcSDE也支持非关系型数据库和HADOOP)中。

2.2 二层模型

        从8.1之后,ArcSDE提供了两种数据联结架构,即两层和三层模型,并一直推荐使用二层模型。两层模型即直连二层模式即直连模式,ArcSDE直连驱动和ArcSDE服务采用相同的代码构建。不同的是,ArcSDE直连驱动是一系列动态链接库dll,安装和运行于客户端应用程序的进程空间内;而ArcSDE服务是可执行程序,运行于服务器端。

ArcSDE 的介绍和使用_第2张图片

         当使用ArcSDE直连时,需要在客户端安装RDBMS Client Software。在此种连接模式下,通过SDE访问数据表后,将在客户端本地完成对数据的各种操作(像空间分析,编辑等)。

2.3 两种连接模式对比  
直连与服务连接下比,优势表现在:

        直连方式较服务连接方式卸载了20%-40%的负载
        直连方式降低了服务器端内存的需求
        直连速度更快
        直连配置支持FAILOVER,而服务连接不支持RAC架构
        不需要安装SDE服务,也不需要维护SDE服务
        实施部署方便,切换环境只需将工具与ORACLE客户端打包即可
        使用操作系统认证方式连接到数据库,必须使用直连

劣势表现在:

        对客户端配置要求高
        所有的客户端都必须安装oracle客户端(或其它数据库连接驱动程序)
        数据库客户端必须是32位

自ESRI提供直连方式后,ESRI一直推荐使用直连方式。
 

你可能感兴趣的:(ArcGIS,ORACLE,SDE)