• Sde表结构分析


    今天开始想分析一下sde的表结构,希望能够弄明白sde一个要素类的每个Feature是如何存储的。

    弄ArcSDE的人都知道,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
       
      列号((网格左下点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?  

    本来想自己先看一段时间再贴出来,后来觉得个人时间、精力、能力有限,或许可以一边学一边写,
    又或许有做过这项工作和对此有兴趣的同行愿意了解他,能够一起探讨
    要搞清楚ArcSDE的运行机制,除了要分析他的表结构之外,还要分析其坐标串如何存储、版本信息如何记录
    还有他本身自带的很多存储过程
    由于本人也刚开始了解,其中如果有错误之处请多包含,并请指正,勉我在以后的过程中走弯路,谢谢先 
  • 相关阅读:
    CentOS Linux下VNC Server远程桌面配置详解
    Java 中的悲观锁和乐观锁的实现
    spring @configuration使用
    MySQL 汉字拼音
    chmod用数字来表示权限的方法
    C语言创建删不掉的目录
    Android小经验
    系统清理——查找大文件
    最全Pycharm教程(42)——Pycharm扩展功能之Emacs外部编辑器
    怎样学习程序
  • 原文地址:https://www.cnblogs.com/linghe/p/1389971.html
Copyright © 2020-2023  润新知