什么是ArcSDE以及为什么使用ArcSDE
- 格式:pdf
- 大小:295.53 KB
- 文档页数:10
ArcSDE空间数据库中SDE用户使用ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据库中SDE用户的使用方法。
ArcSDE如何工作ArcSDE属于中间件技术,其本身并不能够存储空间数据,它的作用可以理解为数据库的“空间扩展”。
在基于Oracle的ArcSDE空间数据库中,ArcSDE保存了一系列Oracle对象,用于管理空间信息。
这些对象统称为资料档案库(Repository),包含空间数据字典和ArcSDE软件程序包。
ArcSDE需要SDE用户管理空间资料档案库,这类似于Oracle中需要SYS用户管理数据字典。
Oracle的数据字典存储在SYSTEM表空间中;相应地,在存储ArcSDE空间资料档案库的时候,也需要使用特定的表空间。
通常,为了方便起见,默认使用名称也是SDE的表空间管理空间数据字典。
ArcSDE的工作机制中,SDE用户负责ArcSDE与Oracle的交互,通过维护SDE模式下的空间数据字典以及运行其模式中的程序包,来保证空间数据库的读/写一致性。
在ArcSDE服务启动的过程中,SDE用户通过Oracle验证,并且创建和维护一个Oracle会话连接,连接的程序便是giomgr,即ArcSDE服务器管理进程,该进程一直存在,负责监听用户连接请求,分配相应的gsrvr管理进程(见注1),进行空间数据字典的维护。
ArcSDE的安全性ArcSDE的安全机制完全依赖于Oracle,空间数据库用户(包括SDE),需要Orac le的用户密码才能够访问空间数据,ArcSDE本身并不保存任何认证信息。
在Oracle中,SDE用户的最小系统权限设置要求是:Create procedure / Create table / Create sequence / Create trigger / Create session由此可见,SDE亦属于Oracle数据库中的普通权限用户。
ArcSDE 投影表介绍以ST_Geometry操作为例题记该文件不需要用户非要刨根问底的去理解相关内容,只需要了解这里的相互关系,以及在使用ST_Geometry的时候怎么来处理这些关系。
环境介绍操作系统:Winodows7数据库:Oracle 11.1.0.6 64Bit中间件:ArcSDE10 64BitArcSDE投影表介绍ArcSDE的投影信息涉及的表包括以下几个:GEOMETRY_COLUMNSGEOMETRY_COLUMNS 表为符合OpenGIS SQL 规范的每列类型几何都在数据库中存储一行。
ArcSDE 将此表视为只限写入,因此仅在添加或删除OpenGIS SQL 数据格式的图层时,才可通过ArcSDE 访问此表。
该表由OpenGIS SQL 规范定义,还可以在其他应用程序中用不由ArcSDE 托管的几何列更新该表。
以符合OpenGIS 标准的格式新建几何列时,完全限定的表名、列名和空间参考ID (SRID) 会添加到GEOMETRY_COLUMNS 表中。
每个几何列都与一个空间参考系相关联。
ArcSDE 将有关各空间参考系统的信息均存储在SPATIAL_REFERENCES 表中。
LAYERSLAYERS 表用于记录与数据库中各要素类相关的数据。
该信息帮助构建和维护空间索引、确保正确的形状类型、维护数据完整性以及存储坐标数据的空间参考。
数据库中的每个空间列对应该表中的一行。
应用程序使用图层属性来查找可用的空间数据源。
ArcSDE 使用这些图层属性来约束和验证空间列内容、索引几何值,以及正确创建和管理关联的DBMS 表。
SPATIAL_REFERENCESSPATIAL_REFERENCES 表中包含坐标系和从浮点型到整型的转换值。
存储前,内部功能会利用空间参考系的参数将几何的每个浮点型坐标都转换和调整为64 位正整数。
进行检索时,这些坐标将恢复为其初始外部浮点型形式。
GEOMETRY_COLUMNS 表的每个几何列都与一个空间参考系统相关联,与之相关的信息将存储在SPATIAL_REFERENCES 表中。
arcsde原理ArcSDE(Spatial Database Engine)是由Esri(环球信息系统公司)开发的一种用于管理和操作空间数据的软件。
它是一种高性能的空间数据存储和管理解决方案,可以与各种数据库系统集成,如Oracle、SQL Server等。
ArcSDE采用了多种技术,以支持地理信息系统(GIS)中的空间数据存储和查询操作。
ArcSDE的主要原理是将空间数据存储在数据库中,并提供了一些高级功能和工具,以支持对空间数据的管理和操作。
它提供了一种统一的数据模型,可以存储各种类型的空间数据,如点、线、面等。
同时,ArcSDE还提供了一些索引和优化技术,以加快空间数据的查询和分析速度。
ArcSDE采用了一种称为“空间索引”的技术,以提高空间数据查询的效率。
空间索引是一种数据结构,用于存储空间数据的位置和属性信息,并支持对这些数据进行快速检索。
通过空间索引,ArcSDE可以实现对空间数据的高效查询和分析,提供了一种快速的方式来获取特定区域内的空间数据。
ArcSDE还使用了一种称为“拓扑关系”的技术,用于处理空间数据之间的拓扑关系。
拓扑关系是指空间数据之间的相对位置和连接方式。
通过拓扑关系,ArcSDE可以对空间数据进行拓扑分析,例如判断两个空间对象是否相交、计算空间对象之间的距离等。
ArcSDE还支持空间数据的版本管理和多用户并发访问。
版本管理是指在多个用户同时对空间数据进行编辑时,ArcSDE可以确保数据的一致性和完整性。
它采用了一种称为“版本控制”的机制,以跟踪和管理不同用户对数据的修改。
通过版本控制,ArcSDE可以提供一种有效的方式来管理和协调多个用户之间的空间数据编辑操作。
ArcSDE还提供了一些安全机制,以保护空间数据的安全性和完整性。
它支持对空间数据进行访问控制和权限管理,以确保只有经过授权的用户可以访问和修改数据。
同时,ArcSDE还提供了数据备份和恢复功能,以保护空间数据免受意外故障和数据丢失的影响。
ArcSDE性能优化系列之ArcSDE参数篇题记该文档主要是分析一下ArcSDE的相关参数对ArcSDE性能的影响,提起ArcSDE的性能,估计是ArcGIS用户非常关心的问题,性能无外乎查询性能、编辑性能的,本文档主要是以RASTERBUFSIZE、MINBUFSIZE、MAXBUFSIZE等一下缓冲区参数来分析这些参数的意义以及对性能的影响。
参数这些参数可以在SDEHOME/etc/giomgr.def文件获得,也可以在sdeconfig命令获得,也可以直接进入数据库表Server_Config表中查看。
缓冲区大小初始化参数ArcSDE 提供三个传输缓冲区初始化参数:MINBUFSIZE、MAXBUFSIZE 和MINBUFOBJECTS。
数据通过数据流在ArcSDE 服务(应用程序服务器)和客户端应用程序之间传输。
数据流是用于查询表或图层的通信机制。
将存储器结构传递给基础网络堆栈之前,数据流先将存储器结构(传输缓冲区)用作容器。
创建ArcSDE 数据流时,ArcSDE 进程将传输缓冲区分配给客户端和服务器。
传输缓冲区可以累积矢量数据记录,然后将这些记录批量(而非以单个记录形式)发送到整个网络,从而减少输入/输出(I/O) 并提高性能。
这些记录收集在ArcSDE 应用程序服务器进程的传输缓冲区内,并会在应用程序查询数据库时被发送到ArcSDE 客户端传输缓冲区。
或者,这些记录会收集在客户端的传输缓冲区内,并在应用程序将数据写入数据库时被发送到ArcSDE 服务器进程的传输缓冲区。
传输缓冲区参数这些参数共同构成了可防止应客户端的请求而传输缓冲区的阈值下限。
检索查询请求的数据时,达到MINBUFOBJECTS 或MINBUFSIZE 后才会发送缓冲区内成批的数据。
一旦所有已提取的数据都被置于缓冲区,即使尚未超出这些阈值,这些数据也将被传输到客户端。
首先检查MINBUFOBJECTS。
MINBUFOBJECTS 是传输缓冲区被发送到整个数据流之前存储在传输缓冲区内的最小记录数。
ArcSDE数据库架构设计不知道题目该怎么起名字,害怕这个名字被大家误解,这个文档其实就是想给一些初学者在使用不同数据库,怎么组织SDE库与用户数据库,怎么多个用户来操作同一个库,相互用户的权限如何来分配等等信息。
Oracle数据库如果是Oracle数据库,在安装完ArcSDE软件,Post完毕之后,在数据库里面有一个SDE表空间和SDE用户,那么对用户的数据来说该怎么存储呢?方式一:扩大SDE表空间的容量,直接将用户的数据导入到SDE用户或者新建一个用户但是默认表空间还是SDE表空间,反正数据都灌入到SDE表空间里面。
缺点:将用户的数据和SDE的相关结构表放在一块,显然层次不分明,用户也容易误操作SDE的相关结构表。
方式二:也就是推荐的方式,如上图所示,用户可以创建存储自己数据的表空间,然后用户也可以创建属于该表空间的一个或者多个用户,该用户赋予connect和resource权限即可,当用户使用ArcCatalog进行用户连接时,用户的数据会存储在用户自己的表空间中,但是相关的信息(用户数据的表名称、表的列名称、数据投影等信息)会自动注册到SDE 表空间中,这些步骤不用用户来操作,通过ArcGIS产品的相关接口会在后台自动进行相关处理,对初学者来说,这个方式往往让他们比较想不通,总感觉我的数据应该在SDE表空间里面才能进行相关的注册,放到其他表空间里面就会自动注册或者还需要进行额外操作,这一点就多虑了,用户可以根据上面的解释进行试验。
那么针对一个表空间的多个用户来说,权限问题一方面可以使用Oracle的数据库方式,那里面有相关的权限,不过也可以使用ArcGIS的方式来赋予相关的权限。
该功能用户可以在ArcToolbox工具或者其他地方都可以找到,如果是数据的拥有者也就是使用哪个用户创建或者导入的数据,可以赋予其他用户读(select)或者写(Edit)的权限,使用这种方法也是可以进行权限的操作的。
ArcSDE geodatabase直连原理2010-07-07 10:15客户端应用程序直接连接到GeoDatabase意味着,数据库和客户端之间通过直连驱动通讯,而不是ArcSDE服务。
这也意味着,在服务器端运行的很多进程将在客户端机器上运行。
除此之外, ArcSDE服务创建连接时,ArcSDE执行的某些限制,例如密码长度,将由DBMS来执行。
ArcSDE直连驱动和ArcSDE服务采用相同的代码构建。
不同的是,ArcSDE直连驱动是一系列动态链接库dll,安装和运行于客户端应用程序的进程空间内;而ArcSDE服务是可执行程序,运行于服务器端。
由于直连驱动和ArcSDE服务采用相同的代码构建,因此数据库配置必须与使用ArcSDE服务连接数据库时所安装的数据库保持一致,即同样的ArcSDE管理员账户和ArcSDE空间数据库系统表必须存在。
在ArcSDE连接请求之前,必须安装好,同时客户端机器要配置好,用于网络访问。
1. 使用直连的情形使用直连的一些例子如下所示。
1) 不管理ArcSDE服务直连数据库驱动不需要管理ArcSDE服务,不需要安装、配置和启动中间进程giomgr.exe。
2) 为可伸缩的系统提供更多的选择直连架构将ArcSDE组件的功能迁移到桌面执行,移除了服务器端的ArcSDE负载,释放更多的资源可供DBMS使用,为数据库服务器提供了更好的可伸缩性。
3) 直连速度更快直连在客户机上执行处理,比服务器端处理更快。
与客户机上执行处理相比,服务器端执行要同时处理来自许多客户机的请求,然后把计算结果需通过网络传送到客户机。
4) 直连配置完全适用于failover环境。
例如,使用直连驱动可非常方便的配置使用Oracle RAC的系统。
备注:Switchover and Failover- SwitchOver是Oracle DataGuard环境中一个很重要的角色,用来完成在primary database 和 standby databases中无任何数据丢失的主备切换。