• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅

ArcSDE表结构分析

文章出处:http://wenku.baidu.com/view/55dc8a4e852458fb770b560d.html

SDE表结构分析
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文件的系统配置参数
9、dbtune表:记录dbtune.sde文件的存储方案参数

元数据表(meta-data tables),用于空间数据的描述和管理。
VERSION表 —— 记录ArcSDE服务器的版本号。ArcSDE I/O管理器靠检查该表以确定版本的兼容性。
LAYERS表 —— 记录数据库中的各个层,每个记录对应一个层。
GEOMETRY_COLUMNS表 —— 管理几何或矢量特征列。
RASTER_COLUMNS表 —— 管理栅格列。
TABLE_REGISTRY表 —— 管理已注册的LAYERS和multiversion表。
SPATIAL_REFERENCES表——记录数据库的坐标系、伪原点、ID码等。
STATES表 —— 记录状态。
VERSIONS表——记录数据版本。
*MVTABLES_MODIFIED表 —— 记录数据多版本信息。
SDE_LOGFILE表 —— 管理ArcSDE的logfiles。在ArcSDE 8之前,logfile是以系统文件方式存储的。
SDE_LOGFILE_DATA表 —— 管理ArcSDE的logfiles。

SDE数据库中表的分析
ArcSDE内一个要素类在关系数据库(以MS SQL Server为例)中有一系列的表, 每个表的作用不同。

Sde的一个FeatureClass包含以下表:
B表(与要素类名称同名,用来存储属性数据结构),表结构如下:
字段名称 类型 说明
GeometryID Int 要素唯一ID
SHAPE Int 与GeometryID值对应,备用字段?
…
…
其他用户定义字段

注:如果该要素类没有注册,B表有记录,如果该要素类已经注册,B表记录相应的转移到A表。

F表(F+LayerID,用来存储图形坐标、外边界矩形等图形信息)
字段名称 类型 说明
FID Int 要素唯一ID
NUMOFPTS Int 坐标个数(岛、洞的坐标如何计数)
Entity SmallInt 要素类型代码(点、线、面)
EMINX Float 边界矩形
EMINY Float 边界矩形
EMAXX Float 边界矩形
EMAXY Float 边界矩形
EMINZ Float
EMAXZ Float
MIN_MEASURE Float
MAX_MEASURE Float
AREA Float 面积
LEN Float 长度
POINTS Image 坐标串(具体二进制内如何存储,如何提取)


S表(S+LayerID,用来存储地物空间索引,Sde采用正方形网格索引)
字段名称 类型 说明
SP_FID Int 要素唯一ID
GX Int 行号((网格左下点x坐标-图形区域最小x坐标)/网格大小)
GY Int 列号((网格左下点y坐标-图形区域最小y坐标)/网格大小)
EMINX Int 从名字看上去是要素的边界矩形坐标。但是添加一个要素进去后,却发现不是直接存储的地物边界矩形坐标,边界矩形的坐标在F表已经存储了,这里不知道干什么用?
EMINY Int
EMAXX Int
EMAXY Int


A表(A+LayerID_Register,当要素类注册版本以后,该表存储原B表的数据,并记录数据状态)
字段名称 类型 说明
GeometryID Int 要素唯一ID
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

 

可通过Select registration_id from sde.table_registry where table_name='要素类名称';获得已经注册为版本要素类的注册ID,

然后通过A+ID或者D+ID为表明查询想要的数据。

posted on 2013-01-06 12:40  bobird  阅读(1033)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3