arcSDE表结构分析
SDE表结构

ArcSDE内一个要素类在关系数据库(以MS SQL Server为例)中有一系列的表, 每个表的作用不同。
Sde的一个FeatureClass包含以下表:
B表(与要素类名称同名,用来存储属性数据结构),表结构如下:
字段名称 类型 说明
GeometryID Int 要素唯一ID
方法:sdetable -o create_mv_view -T viewname -t 图层名 -i esri_sde -s 服务器地址 -u 用户名(SDE) -p 用户密码(SDE)
通过存储功能Call sde.version_util.set_current_version('SDE.DEFAULT')
GEOMETRY_COLUMNS表 —— 管理几何或矢量特征列。
RASTER_COLUMNS表 —— 管理栅格列。
TABLE_REGISTRY表 —— 管理已注册的LAYERS和multiversion表。
SPATIAL_REFERENCES表——记录数据库的坐标系、伪原点、ID码等。
执行一下,就可以通过视图查询啦,不会出现版本的问题咯
SHAPE Int 似乎与GeometryID值相同,备用字段?
SDE_STATE_ID Int 要素状态ID(每个操作就会+1)
…
…
其他用户定义字段
D表(D+LayerID_Register,仅当要素类注册版本之后,该表存在,并记录TE_ID Int 删除要素的StateID
SDE_DELETES_ROW_ID Int 删除要素的ID
DELETED_AT Int 删除操作的StateID
ArcGIS 之ArcSDE

从空间数据管理的角度来看 ArcSDE 可看成是一个连续的空间数据模型 借助这一模型 我们可用关系型数据库 RDBMS 管理空间数据
-位置 -形状
ArcSDE 允许你 往数据库中加入空间 数据 如此 除了提 供你已经在使用中的 其它类型的信息以 外 还可提供地理要 素的空间位置及形状 等信息
SDE 3.0.X 的数据库升到 ArcSDE 8 时 所有空间化的表格都将自动进行注 册 未经空间化的表格可由应用本身调用 ArcSDE 的 API 函数对其注册
ArcSDE 如何表示地理要素
地理要素可以是自然的 如 河流 植被等 自然要素的人为子集 如
用地范围 行政区域等 或人造设施 如 道路 管线 建筑等 等 ArcSDE 中
ArcSDE 如何处理度量 measures
度量表示沿着一地理要素上某些给定点处的距离 时间 地址或其它事件 除了空图形 Nil shape 外 所有的图形类型都可以加上度量值 度量值与 图形坐标系统无关 尽管许多应用中线上的度量值用以表示逐步增加的线性距 离 但事实上度量值可以是随机递增或递减的 也可以是常量
6 %&'( %) *+,-
ArcSDE 注记
对 ArcSDE 数据模型而言 注记被看成与图上的要素或坐标相关联的文字 串 是要素属性 被存于数据库中与其相关的一个或多个属性表中 与图上 地理要素或坐标无关的文字 图形 如地图标题 比例尺 指北针等 ArcSDE 不将其存入数据库
VERSION
#$ % &$ % '() *%+
ArcSDE栅格数据存储模型及命令行管理举例

ArcSDE使用统一的格式来存储和管理栅格数据。
加载到ArcSDE中的栅格文件数据类型多样,这些文件一旦加载进入ArcSDE,便统称为SDE Raster Dataset。
如图1:图1:SDE Raster DatasetArcSDE中,在空间数据字典表中存储栅格数据的管理信息,空间数据字典表属于SDE空间数据库管理员用户模式。
空间字典表中有一个名为RASTER_COLUMNS的表,专门用于存储数据的元数据。
如下图2,其中RASTERCOLUMN_ID为每一幅栅格数据分配唯一标识码(在加载时分配)。
同时,栅格数据的业务表名称存储在TABLE_NAME列中。
数据字典表中还有一个Layers表,用于存储栅格数据的封装边界的几何信息。
如图3,LAYER_ID 存储唯一标识的图层号;同时栅格数据的封装边界在Spatial_column字段中值为FOOTPRINT(矢量数据为SHAPE)!图2:Raster_Columns表图3:Layer表用户模式中则保存了栅格数据的所有表。
ArcSDE 9中,ArcSDE栅格数据由七个表组成,如图4所示:图4:ArcSDE 9.x栅格数据存储模型这七个表分别是:●Business表:称作业务表,业务表对客户端透明,客户端与栅格数据的交互通过业务表即可完成●AUX表:称作栅格附录信息表,属于支撑表,用于存储栅格波段的附加信息,如色彩映射和统计值等●RAS表:称作栅格表,属于支撑表,记录栅格数据的描述信息。
●BND表:称作波段表,属于支撑表,记录栅格数据的波段信息。
每幅栅格数据的每一个波段占一条记录。
●BLK表:称作栅格分块表,属于支撑表,每个波段的像元值都以分块的形式存在该表中。
加载栅格数据时,ArcSDE利用分块参数将栅格(及金字塔)划分为若干块,每一块都以BLOB类型存储于该表中。
●F表:称作封装边界要素表,属于支撑表,这个表中存储了栅格数据的封装边界的几何信息。
●S表:称作封装边界索引表,属于支撑表,这个表中存储了栅格数据的封装边界的几何索引信息。
ArcSDE投影表介绍-以ST_Geometry为例

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系统表解析

当基于Oracle或是SQL Server安装ArcSde后,一般会生成十几张以GDB_开头的系统表,这些表一般为SDE中数据信息的描述,以下为本人对其中几张主要表的一点理解:1、GDB_ObjectClasses表:记录所有SDE中注册过的普通表、FeatureClass,一般包括Name和ID字段,Name为在ArcCatalog中所看到的名字,ID为唯一标识,以后关于此对象的所有数据(如F表、S表)信息都以该ID表示;若删除该表中的某条记录,则该记录所对应的表在ArcCatalog中将无法看到。
图一:GDB_ObjectClasses表的结构字段解析:z ID:注册到SDE普通表的ID。
z DATABASENAME:数据库的名字。
z OWNER:表的所有者。
z NAME:注册的普通表的名字,也就是你在ArcCatalog和ArcMap中看到的要素的名字。
删除这个表的一个要素,则也不会再客户端显示了。
z ALIASNAME:表的假名。
z MODELNAME:模型的名字。
z后面几个就不解释了。
2、GDB_FeatureClasses表:为所有空间表(FeatureClass)的描述信息,一般包括ObjectclassID,featuretype,geometrytype,shapeField等字段,objectclassid与GDB_ObjectClasses中的ID相对应,featuretype为特征类型(如:1为矢量,2为栅格等),geometrytype为空间几何体类型(如:1为点,2为线等),ShapeField为该空间表中空间图形存储的字段名(一般为Shape,在创建时也可定义为别的);若删除该表中的某条记录,则该记录所对应的featureclass在ArcCatalog中将无法看到。
3、GDB_FeatureDataset表:该表记录SDE中FeatureDataset信息,包括Owner,Name 等;删除该表中的某条记录,则该记录所对应的featuredataset在 ArcCatalog中将无法看到。
基于ArcSDE的空间数据库的研究

基于ArcSDE的空间数据库的研究摘要:本报告所涉及的研究内容是结合徐州香醅酒业有限公司标准化系统集成的子系统——酒厂应急系统的实现而进行的。
本论文研究的主要是结合酒厂应急系统的数据库建设,探讨ArcSDE的结构框架。
主要是分为对空间数据库相关技术的理论研究以及对相关技术的系统实现。
关键词:ArcSDE数据库Oracle Spatial一、研究背景及意义近年来,随着理论和空间数据库的发展,地理信息系统(GIS)的应用己经渗透到社会的各个领域,如在测绘规划、城市交通管理、管线管理、环境整治、大型工程调度管理等领域,同时,随着遥感、等先进技术的迅猛发展使得系统所面临处理的数据量趋于海量,从而对于以空间数据处理和分析为核心的地理信息系统来说,对系统中空间数据的管理、表达和评估也变得越来越重要,如何有效的组织和管理中的空间数据,充分发挥空间数据的作用是系统优劣的前提和关键,它将直接影响到各种实际应用的性能。
空间数据不仅数据量大,而且数据结构十分复杂,随着应用范围的扩大和的迅速发展、普及,应用开始逐渐向分布式的管理系统领域转移,而原有的混合式空间数据管理模式在实现数据共享、网络通信、并发控制及数据的安全性等方面存在着极大的缺陷,因此寻求一种将属性数据和空间数据进行一体化管理的有效模式己经成为未来发展的必然趋势[1]。
空间数据库中数据存储经历的三个阶段是:拓扑关系数据存储模式、Oracle Spatial模式和ArcSDE模式[2,3]。
拓扑关系数据存储模式将空间数据存在文件中,而将属性数据存在数据库系统中,二者以一个关键字相连。
这样分离存储的方式由于存在数据的管理和维护困难、数据访问速度慢、多用户数据并发共享冲突等问题而不适用本系统。
而Oracle Spatial实际上只是在原来的数据库模型上进行了空间数据模型的扩展,实现的是“点、线、面”等简单要素的存储和检索,所以它并不能存储数据之间复杂的拓扑关系,也不能建立一个空间几何网络。
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 是传输缓冲区被发送到整个数据流之前存储在传输缓冲区内的最小记录数。
sde的表结构

今天开始想分析一下sde的表结构,希望能够弄明白sde一个要素类的每个Feature是如何存储的。
弄ArcSDE的人都知道,ArcSDE内一个要素类在关系数据库(以MS SQL Server 为例)中有一系列的表,每个表的作用不同。
Sde的一个FeatureClass包含以下表:B表(与要素类名称同名,用来存储属性数据结构),表结构如下:字段名称类型说明GeometryIDInt要素唯一IDSHAPEInt似乎与GeometryID值相同,备用字段?…..…..其他用户定义字段注:如果该要素类没有注册,B表有记录,如果该要素类已经注册,B表记录相应的转移到a表F表(f+LayerID,用来存储图形坐标、外边界矩形等图形信息)字段名称类型说明fidInt要素唯一IDnumofptsInt坐标个数(岛、洞的坐标如何计数)smallInt要素类型代码(点、线、面)eminxFloat边界矩形eminyFloat边界矩形emaxxFloat边界矩形emaxyFloat边界矩形eminzFloatemaxzmin_measureFloatmax_measureFloatareaFloat面积lenFloat长度pointsimage坐标串(具体二进制内如何存储,如何提取)S表(s+LayerID,用来存储地物空间索引,Sde采用正方形网格索引)字段名称类型说明sp_fidInt要素唯一IDgxInt行号((网格左下点x坐标-图形区域最小x坐标)/网格大小)gy列号((网格左下点y坐标-图形区域最小y坐标)/网格大小)eminxInt从名字看上去是要素的边界矩形坐标。
但是我添加一个要素进去后,却发现不是直接存储的地物边界矩形坐标,边界矩形的坐标在f表已经存储了,这里不知道干什么用?eminyIntemaxxIntemaxyIntA表(a+LayerID_Register,当要素类注册版本以后,该表存储原b表的数据,并记录数据状态)字段名称类型说明GeometryIDInt要素唯一IDSHAPEInt似乎与GeometryID值相同,备用字段?SDE_STATE_IDInt要素状态ID(没有仔细研究,似乎每个操作就会+1)…..…..其他用户定义字段D表(d+LayerID_Register,仅当要素类注册版本之后,该表存在,并记录当前被删除的地物)字段名称类型说明SDE_STATE_IDInt删除要素的StateIDSDE_DELETES_ROW_IDInt删除要素的idDELETED_ATInt删除操作的StateID?本来想自己先看一段时间再贴出来,后来觉得个人时间、精力、能力有限,或许可以一边学一边写,又或许有做过这项工作和对此有兴趣的同行愿意了解他,能够一起探讨要搞清楚ArcSDE的运行机制,除了要分析他的表结构之外,还要分析其坐标串如何存储、版本信息如何记录还有他本身自带的很多存储过程由于本人也刚开始了解,其中如果有错误之处请多包含,并请指正,勉我在以后的过程中走弯路,谢谢先。
ArcSDE数据库架构(Oracle和SQL Server)

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

1、ArcSDE 简介(1)空间数据引擎空间数据引擎(Spatial Data Engine),通过空间数据引擎可以用传统的关系数据库对空间地理数据加以管理和处理,提供必要的空间关系运算和空间分析功能。
实现了C/S(客户/服务器)体系结构,以及地理空间数据的共享和互操作。
相对客户端,SDE是服务器,提供空间数据服务的接口,接受所有空间数据服务请求;相对数据库服务器,SDE是客户机,提供数据库访问接口,用于连接数据库和存取空间信息。
(2)ArcSDE概述ArcSDE是ArcGIS与关系数据库之间的GIS通道。
它允许用户在多种数据管理系统中管理地理信息,并使所有的ArcGIS应用程序都能够使用这些数据。
ArcSDE是多用户ArcGIS系统的一个关键部件。
它为DBMS提供了一个开放的接口,允许ArcGIS在多种数据库平台上管理地理信息。
这些平台包括Oracle,Oracle with Spatial/Locator,Microsoft SQL Server, IBM DB2,和Informix。
2、ArcSDE原理(1)间接:ArcSDE通过SQL引擎执行空间数据的搜索,将满足空间和属性搜索条件的数据在服务器端缓冲存放并发回到客户端。
(2)直接:由客户端接口直接把空间请求转换成SQL命令发送到RDBMS上,并解释返回数据。
3、ArcSDE数据模型(1)ArcSDE以层的方式来管理地理数据,具有共同属性的一类要素放到一层中,每个数据库记录对应一个实际要素。
(2)ArcSDE为数据库中各层(Layer)建立了空间索引。
空间索引是将层从逻辑上分成一个个小块,称为“cell”,层中的要素则分解到各cell中加以描述,并将此描述信息写到索引表中。
(1)ArcSDE存储和组织数据库中的空间要素的方法,是将空间数据类型加到关系数据库中。
ArcSDE并不改变和影响现有的数据库或应用。
它只是在现有的数据表中加入图形数据项(Shape column),供软件管理和访问与其关联的空间数据。
arcgis数据库结构表

arcgis数据库结构表
ArcGIS是一种地理信息系统(GIS),它使用数据库来存储和管理空间数据和属性数据。
在ArcGIS中,数据库结构表通常包括以下几个方面:
1. 空间数据表,这些表存储地理空间数据,例如点、线、面等地理要素的几何信息。
通常使用几何列(Geometry或者
ST_Geometry类型)来存储地理要素的空间几何信息,以及其他属性列来存储要素的属性信息。
2. 属性数据表,这些表存储与空间数据相关联的属性信息,例如地块所有者、土地用途、人口统计数据等。
属性数据表通常包括一个与空间数据表中要素相关联的外键列,以便将属性数据与空间数据进行关联。
3. 索引表,为了提高查询性能,数据库通常会创建索引来加速对空间数据和属性数据的查询。
这些索引表存储了对空间数据表和属性数据表中列的索引信息,以便加速数据的检索和查询操作。
4. 系统表,ArcGIS还会创建一些系统表来存储关于地理空间
数据、属性数据和地图文档等元数据信息,以便管理和维护地理信息系统的运行。
总的来说,ArcGIS数据库结构表主要包括空间数据表、属性数据表、索引表和系统表。
这些表相互关联,共同构成了ArcGIS地理信息系统中的数据存储和管理结构。
希望这个回答能够满足你的需求。
ArcGIS的数据结构

ArcGIS的数据结构ArcGIS的数据结构⒈概述⑴ ArcGIS的定义⑵数据结构的重要性⒉空间数据模型⑴点(Point)⑵线(Line)⑶面(Polygon)⒊地理坐标系统⑴坐标系统的定义⑵常见的地理坐标系统⑶坐标系统的选择与转换⒋数据源⑴矢量数据源⒋⑴点数据源⒋⑵线数据源⒋⑶面数据源⑵栅格数据源⒋⑴单波段栅格数据源⒋⑵多波段栅格数据源⑶数据库数据源⒋⑴关系型数据库⒋⑵文件型数据库⒌数据管理⑴数据导入与导出⑵数据编辑⑶数据查询与分析⒍数据组织⑴地理数据库⒍⑴地理要素类⒍⑵地理数据库表⑵地理数据集⒍⑴地理要素集合⒍⑵地理栅格数据集⒎数据展示与渲染⑴符号化⑵标注⑶渲染效果设置⒏数据分享与发布⑴数据共享⑵地图发布⑶地理处理服务附件:本文档未附带特定附件,请参考ArcGIS官方文档获取相关示例数据和文件。
法律名词及注释:⒈ GIS:地理信息系统 (Geographic Information System)⒉数据源:存储地理空间数据的文件、数据库或服务等来源⒊数据库:用于存储和管理大量数据的电子系统⒋数据导入与导出:将数据从一种格式或数据源转换为另一种格式或数据源⒌数据编辑:对地理数据进行插入、删除、更新等操作⒍数据查询与分析:通过查询语言或分析工具对地理数据进行查找、筛选、统计等操作⒎地理要素类:具有相同地理参考的相关地理要素的集合⒏地理数据库表:存储地理要素属性信息的表格⒐地理数据集:组织和管理多个地理要素类或地理栅格数据集的容器⒑地理栅格数据集:基于像素的栅格数据集合1⒈符号化:将地理要素用符号进行展示和渲染1⒉标注:在地图中添加文本标签以展示地理要素的相关信息1⒊渲染效果设置:调整颜色、透明度、阴影等参数来改变地图的外观效果1⒋数据共享:将地理数据以可访问的方式发布给特定用户或公众1⒌地图发布:将地图制作成可交互的在线地图并提供访问接口1⒍地理处理服务:基于地理数据进行计算和分析的在线服务。
ArcSDE基本参数

ArcSDE服务的基本参数介绍ArcSDE程序服务介绍:ArcSDE是空间数据与GIS程序之间的一个重要的“通路”,它是一种中间件,使用它可以将ArcGIS等程序与普通关系数据库系统联系起来当作一个地理数据库使用,这些关系数据库既包括如ACCESS数据库,也包括类似ORACLE和SQLSERVER的分布式DBMS;同时ArcSDE for Coverages系统,也可以以只读的方式访问诸如Coverage、Shapefile、ArcSotrm等基于文件的数据。
ArcSDE是一种C/S结构的组件,它提供了两种数据连接架构,即两层和三层模型,一般我们都是使用的三层架构,如果用户需要使用前者,可以在ArcCatalog中选择“产生一个直接联结”,它是直接通过ODBC访问DBMS而不通过ArcSDE的数据服务器。
Sdemon 命令可以允许管理员管理和监视ArcSDE服务,在SDE服务启动后,始终存在一个giomgr的SDE服务器进程,它负责监听连接请求(服务器名和端口)、验证连接(密码和用户)、给每个成功的连接分配一个独立的gsrvr进程,而gsrvr负责在客户端和服务器之间进行通讯(使用相同的服务器名和端口)。
ArcSDE是一种客户端/服务器模式的组件,存在几个需要注意的属性:1. Home目录它是一个被记录的路径,成为SDEHOME,这个目录中包含可执行文件,配置文件和动态共享库等。
2. 两个进程giomgr和gsrvr(作用如前),当我们连接SDE数据库的时候,giomgr Service 负责整个连接过程,比如寻找数据库和端口,到DBMS中查询SDE.SERVER_CONFIG表是否存在License记录等等。
3. 由于SDE走的是TCP/IP协议,因此服务器名和端口在通讯在起着重要的作用。
服务建立后,服务名和端口号被存储在“C:\WINNT\system32\drivers\etc”的services文件中。
ArcSDE 的存储机制

ARCSDE 的存储机制ArcSDE 通过把空间坐标信息存储为长二进制数据类型,用多张相关联的表来表达空间和属性数据之间关系,以及空间数据内部结构的方法来组织和存放空间要素而不改变和影响现有数据库的使用。
ArcSDE 对所有的图层建立了层表(layer table) ,其中,每条记录对应一个图层,其中记录了如下信息:所有者、对应表名、空间数据列名称、空间索引大小、包络矩形(MBR) 、内部ID 号(layer - id) 等。
每一个图层由业务表( business table) 、要素表(feature table) 和空间索引表(spatial index table ) 组成,3 个表的名称有一定的规律,其中,业务表的名称为图层名称;要素表名称为f < layer - id > ,索引表的名称为s < layer - id > 。
图1 是用ArcSDE for SQL Server 2000 往数据库中添加一个图层后,在SQL Server2000 中自动增加的3 张表的结构,其中,业务表的shape 字段唯一,可以为空,要素表的fid 唯一,非空,索引表的sp - fid 非空,不唯一。
图1 SDE 组织空间数据的方式业务表中每一行代表一个地物要素用来存放地物要素的属性数据,通过Shape 字段和其他两个表关联。
要素表包括要素标识符(fid) 、要素包含的点的数目、shape 的类型、shape 的包络矩形以及要素的坐标点信息等。
每个shape 的包络矩形是指覆盖一个完整要素的最小矩形边框的左上角和右下角的坐标对(x ,y) 以及中心点的坐标对。
点状要素的坐标(x ,y) 就是其包络矩形。
在SQL Server2000中,坐标点信息是以image 类型来存储的,其中,对于点要素是可以用单一的(x ,y) 坐标表示,对于简单线要素是一组不自相交的(x ,y) 坐标,对于线要素是一组可自相交的(x ,y)坐标,对于面要素是一组起点和终点坐标值相等的(x ,y) 坐标定义的同质、闭合的面。
ArcSDE基本原理与配置

主要内容
1.系统架构 2.组成部分以及连接方式 3.安装步骤 4.故障处理
5.基本配置
ArcSDE整体架构
DB2
Enterprise Geodatabase
Enterprise ArcSDE Technology Informix
GIS data
SQL Se clients
经常碰到的问题
无法启动服务
• "Extended DBMS error code: 1034 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory
– 用client提供的用户名/密码连接 RDBMS
gsrvr 服务所有client 的读/写请求
直连
无 ArcSDE 服务请求
– 无 giomgr 进程 – 无 gsrvr 进程 – 驱动安装在client
GIS client
直接连接DB
DB
配置: 应用服务1
Client machine
DBMS
Server 2
数据库对象
表 索引
视图
存储过程 包 序列 类型 操作符
表
用户表(Business,F,S)
系统表
FeatureClass
FeatureDataset
Relationship
索引
Attribute
Spatial
主要内容
1.系统架构 2. 组成部分以及连接方式 3.安装步骤 4.故障处理
两部分的关系
程序部分
ArcSDE空间索引

ArcSDE空间索引2009年06月01日星期一 20:32为了提高空间查询的性能,ArcSDE采用空间索引的机制。
是一个覆盖整个要素类的两维索引,类似于一般的道路图上的索引网格。
ArcSDE可以赋予三层空间索引网格,每个网格层都具有自己的格网大小。
第一层网格为必需,它的格网尺寸最小;而第二和第三层可选,它们的网格可以通过设置为0使之无效。
如果有效,第二层网格大小必须至少比第一层网格大三倍,而第三层网格大小也必须至少比第二层网格大三倍。
建立空间索引每次向business表添加要素类时,会为它自动创建一个的空间索引。
ArcSDE服务器在整个要素类的生命周期内都管理它的空间索引。
当插入、更新或者删除要素时,空间索引会被自动更新。
load-only模式会禁止空间索引的管理,直到载入数据结束。
这种做法充分地提高了载入的性能,并且在大批量载入数据时必不可少。
Load-only模式不允许SQL之外的查询操作。
数据载入结束后,返回normal模式,空间索引就可用了。
从normal I/O模式到load-only I/O模式的转换会重建空间索引。
在normal I/O模式下,插入、更新或者删除要素会更新空间索引。
ArcSDE首先将每个要素的范围覆盖到最低层的网格,获得网格数量。
如果要素超过四个格网,ArcSDE 将该要素提升到更高层次的网格(如果定义了更高层次的网格)。
ArcSDE会一直提升要素到更高层次网格,直到该要素位于四个格网之内或者已到达最高层次的网格水平。
在最高一层网格,图形可以被超过四个的格网索引。
ArcSDE将要素的格网和相应的shape ID、和要素范围一起添加到空间索引表中。
网格层次和每个格网都进行编码,如下例:该要素类有两个网格层次。
面状图形101位于第1层的第4号格网,那么空间索引表中就添加了一条记录,因为该要素在四个格网之内(事实上是一个格网)。
面状要素102的范围位于第一层网格的格网1到8中。
arcsde基本原理及配置

Server 2
数据库对象
表 索引
视图
存储过程 包 序列 类型 操作符
表
用户表(Business,F,S)
系统表
FeatureClass
FeatureDataset
Relationship
索引
Attribute
Spatial
主要内容
1.系统架构 2. 组成部分以及连接方式 3.安装步骤 4.故障处理
两部分的关系
程序部分
表
服务进程 工具程序 存储过程
数 据 库 S C H E M A
其他对象
应用服务连接
TCP/IP network 5151 ArcGIS
Client请求连接 Giomgr进程监听指定端口 giomgr 进程衍生专用的 gsrvr进程 用client提供的用户名/密码连接 RDBMS
经常碰到的问题
无法启动服务 ------------------------------------------------------ArcSDE 9.0 Oracle9i Build 1093 Fri Mar 19 13:28:50 PST 2004 ------------------------------------------------------db_get_dbms_release::Current Release 9.2.0.4.0 is assumed to be compatible with 9.0.0.0.0 Instance initialized for SDE . . . Connected to instance . . . Inconsistent data type in GEOMETRY_COLUMNS table.
第四讲 Geodatabase和ArcSDE

Geodatabase是object-relational的结构 是 的结构
Geodatabase采用两层结构:数据存储层和应 用层。 数据存储层是将GIS数据存储为File、XML、 DBMS等多种格式。 应用层则是维护数据的高级逻辑和行为,例如 Feature Classes、Raster Dataset、Topology、 Network、Address Locators等等。 多层的Geodatabase体系结构有时被称为 object-relational模型。
File Geodatabase
File Geodatabase是在ArcGIS9.2版本中新发布的一种新的 Geodatabase类型。它的目标是: 提供所有用户一个广泛可用、简单和可伸缩的Geodatabase解 决方案; 提供一个跨操作系统的简便的Geodatabase;Windows、 Solaris以及Linux系统。 提高处理大数据集的能力;一个数据集可以存储1个TB的数据。 每个文件数据库可以包含很多数据集 。 使用一个有效的数据结构,它对数据存储和性能是最优化的; 支持数据库压缩 。在存储空间过大的时候,可以采取只读压缩 的模式来减少空间
geodatabase采用两层体系 采用两层体系 结构, 结构,数据存储层和应用层
在数据存储层实现数据存储和 检索, 检索,在应用层实现高层数据 完整性和信息处理。 完整性和信息处理。
Geodatabase的事务模型 的事务模型――版本 的事务模型 版本
Geodatabase管理一些GIS工作流的机制就是保 持多个状态,并且保证地理信息、规则和行为 的完整性。 从字面意思来理解,版本就是记录独立要素或 对象的修改、增加和删除的各种状态。 每一个版本就是明确记录了每一个要素或对象 的行状态,同时还包括一些重要的事务处理信 息。任何数量的用户可以同时操作和管理多个 版本。
ArcSDE10新特性-系统表解析

ArcSDE10系统表解析ArcSDE10安装时,在Repository Setup时,会提示建立ArcSDE Schema和GDB Schema,在ArcGIS10中,我们经常在数据库可以看到的GDB表已经变为了精简的GDB 表,其他信息都已XML的形式出现,像我们经常使用的拓扑、历史归档标记等信息就不容易查看,下面我就以这个问题,给大家介绍一下ArcSDE Schema和怎么利用SQL语句查看ArcGIS10的相关表数据。
该文只是简单介绍一下ArcSDE Schema表的构成及相互关系,并不具体介绍各个表的使用方法。
下图为Post Installation的ArcSDE资料库创建。
ArcSDE Geodatabase 系统表构成●Datasets(数据集系列表)●Distributed Geodatabases(同步复制表)●Geodatabase Archives(数据归档表)●ArcSDE XML(XML存储表)●Locking(锁定信息表)●Log Files(日志文件表)●Versioning(版本系列表)●System administration(系统表)●Spatial type tables(空间类型表)DatasetsDBTUNE因为ArcSDE的数据存储是可以将数据分为空间数据F表、属性数据B表、空间索引数据S表等存储的,根据不同的存储关键字进行不同的存储方式。
该表的数据其实就是SDEHOME/etc/dbtune.sde的文件内容。
COLUMN_REGISTRY利用ArcGIS客户端进行数据入库或者创建的图层或者表的列都会在该表进行注册,该表注册信息也包括GDB表的列注册(GDB_ITEMS、GDB_ITEMRELATIONSHIPS、GDB_ITEMRELATIONSHIPTYPES、GDB_REPLICALOG、GDB_TABLES_LAST_MODIFIED、GDB_ITEMTYPES、),也包括相关的拓扑信息、几何网络、归档信息数据的列等。
基于ArcSDE的GIS空间数据存储分析

4、数据应用接口丰富,支持多 种行业应用和二次开发。
4、数据应用接口丰富,支持多种行业应用和二次开发。
综上所述,基于MongoDB的矢量空间数据云存储与处理系统可为企业和政府机 构提供高效、稳定、灵活的数据存储和处理服务,具有重要的现实意义和广泛应 用前景。
内容摘要
在大数据时代,海量空间数据的存储与管理变得越来越重要。Hadoop作为一 个开源的分布式计算框架,被广泛应用于各种数据存储和管理场景。在Hadoop架 构下,如何高效地存储和管理海量空间数据,以满足不同数据类型的需求,是一 个值得探讨的问题。
内容摘要
在数据存储方面,需要设计一个高效的空间数据存储系统来满足多种数据类 型的存储需求。可以使用Hadoop的HDFS作为主要的存储组件,因为它具有高可靠 性、高可扩展性和易于维护等优点。同时,可以使用MapReduce进行数据的处理 和分析,以实现数据的并行处理和分布式存储。此外,为了提高数据传输速度, 可以使用命名管道等技术。
内容摘要
总之,在Hadoop架构下,海量空间数据的存储与管理可以通过使用HDFS、 MapReduce和SQL组件等技术和方法来实现。针对不同类型的数据,需要设计不同 的数据模型和数据类型来管理,并采用可靠性和有效性保证措施。在数据存储方 面,需要设计一个高效的空间数据存储系统来满足多种数据类型的存储需求,并 使用命名管道等技术提高数据传输速度。
内容摘要
针对不同类型的数据,首先要考虑的是如何保证其可靠性和有效性。对于结 构化和半结构化的空间数据,可以使用关系型数据库来存储,如MySQL和 PostgreSQL等。对于非结构化的空间数据,可以使用Hadoop的HDFS(Hadoop分 布式文件系统)以文件系统的方式存储。为了保证数据的有效性,可以采用版本 控制、数据校验等方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SDE数据库Байду номын сангаас表的分析
ArcSDE内一个要素类在关系数据库(以MS SQL Server为例)中有一系列的表, 每个表的作用不同。
Sde的一个FeatureClass包含以下表:
B表(与要素类名称同名,用来存储属性数据结构),表结构如下:
字段名称 类型 说明
GeometryID Int 要素唯一ID
FID Int 要素唯一ID
NUMOFPTS Int 坐标个数(岛、洞的坐标如何计数)
Entity SmallInt 要素类型代码(点、线、面)
LEN Float 长度
POINTS Image 坐标串(具体二进制内如何存储,如何提取)
S表(S+LayerID,用来存储地物空间索引,Sde采用正方形网格索引)
字段名称 类型 说明
9、dbtune表:记录dbtune.sde文件的存储方案参数
元数据表(meta-data tables),用于空间数据的描述和管理。
VERSION表 —— 记录ArcSDE服务器的版本号。ArcSDE I/O管理器靠检查该表以确定版本的兼容性。
LAYERS表 —— 记录数据库中的各个层,每个记录对应一个层。
EMINZ Float
EMAXZ Float
MIN_MEASURE Float
MAX_MEASURE Float
AREA Float 面积
EMINX Float 边界矩形
EMINY Float 边界矩形
EMAXX Float 边界矩形
EMAXY Float 边界矩形
EMINY Int
EMAXX Int
EMAXY Int
A表(A+LayerID_Register,当要素类注册版本以后,该表存储原B表的数据,并记录数据状态)
字段名称 类型 说明
GeometryID Int 要素唯一ID
SHAPE Int 与GeometryID值对应,备用字段?
…
…
其他用户定义字段
注:如果该要素类没有注册,B表有记录,如果该要素类已经注册,B表记录相应的转移到A表。
F表(F+LayerID,用来存储图形坐标、外边界矩形等图形信息)
字段名称 类型 说明
SHAPE Int 似乎与GeometryID值相同,备用字段?
SDE_STATE_ID Int 要素状态ID(每个操作就会+1)
…
…
其他用户定义字段
D表(D+LayerID_Register,仅当要素类注册版本之后,该表存在,并记录当前被删除的地物)
字段名称 类型 说明
SDE_STATE_ID Int 删除要素的StateID
SDE_DELETES_ROW_ID Int 删除要素的ID
DELETED_AT Int 删除操作的StateID
SP_FID Int 要素唯一ID
GX Int 行号((网格左下点x坐标-图形区域最小x坐标)/网格大小)
GY Int 列号((网格左下点y坐标-图形区域最小y坐标)/网格大小)
EMINX Int 从名字看上去是要素的边界矩形坐标。但是添加一个要素进去后,却发现不是直接存储的地物边界矩形坐标,边界矩形的坐标在F表已经存储了,这里不知道干什么用?
STATES表 —— 记录状态。
VERSIONS表——记录数据版本。
*MVTABLES_MODIFIED表 —— 记录数据多版本信息。
SDE_LOGFILE表 —— 管理ArcSDE的logfiles。在ArcSDE 8之前,logfile是以系统文件方式存储的。
SDE_LOGFILE_DATA表 —— 管理ArcSDE的logfiles。
GEOMETRY_COLUMNS表 —— 管理几何或矢量特征列。
RASTER_COLUMNS表 —— 管理栅格列。
TABLE_REGISTRY表 —— 管理已注册的LAYERS和multiversion表。
SPATIAL_REFERENCES表——记录数据库的坐标系、伪原点、ID码等。
SDE表结构分析2008-08-06 10:17SDE数据库中表的说明
1、B表:属性表
2、F表:要素表
3、S表:索引表
4、A表:新增表
5、D表:删除表
6、Layers表:记录B表、F表、S表的关系
7、Table_Registry表:记录F表、S表、A表、D表的关系
8、Server_Config表:记录giomgr.defs文件的系统配置参数