http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcSDE >> 正文

Geodatabase and ArcSDE系列讲座 第五部分:Geodatabase Archiving(历史数据归档)

作者:萝卜兔子    文章来源:ESRI中国北京有限公司    点击数:    更新时间:2007-2-1
摘要:
时间数据归档实际上是将空间数据库的所有变化都保存下来,记录其变化的时间和变化后的状态,并且提供工具访问某一时刻或者某一时间段的数据库状态,还提供了分析工具。时间数据归档功能是在ArcInfoArcEditor中提供的,针对的是完全版本化的数据。在已有的Transactional Version的基础上,Geodatabase Archiving增加了新的Historical Version。用户既可以连接到Transactional Version,也可以连接到Historical Version。用户可以利用Transactional Version来实现数据的编辑,而Historical Version使得用户能够展示数据在某一时刻或者时间段的状态,并且该状态是只读的。在连接一个数据库的时候,可以选择是连接Historical Version还是Transactional Version,并且还可以通过Change Version工具来进行修改。对于Historical Version的查询是基于Archive Class,而对于Transactional Version的查询是基于Base表和Delta表。

       时间数据归档是将所有针对空间数据库的Default版本的变化都保存下来,在Archive Class中存储和管理。当开始创建归档时,首先在数据库中创建Archive Class,它是对Default版本的完全拷贝,具备相同的Schema,但是增加了3个属性,其中gdb_from_date表示数据库某个状态的开始时间,gdb_to_date表示数据库某个状态的结束时间,gdb_archive_oid用来唯一标识档案类的某行记录。当Default版本变化以后,在Archive Class中增加一条记录,保存Default版本变化后的状态,以及该状态的存在时间段。

      在数据归档中提供了多个工具以实现时间数据库的浏览和分析,其中History Viewer 工具条用于浏览空间数据库变化的时间系列中某一时刻的状况,可以通过Marker选择,也可以通过Date/Time选择;Historical Marker Manager用于创建,修改和查询Markers,其中Markers是将数据库的变化时间用一个有意义的名字表示,例如用户在2005年5月1日,将数据库中的地块A删除,那么在档案类中可以将2005年5月1日这个时间用“地块A被删除”这种描述性的信息来命名,使得用户能直观理解时间所代表的含义,在History Viewer Tool中,通过点击“地块A被删除”,就可以察看2005年5月1日的数据库状态;还包括将Archive类添加到ArcMap中的命令。因为在ArcCatalog和ArcMap中,用户是无法直接浏览和分析Archive Class的,必须要借助ArcMap中的命令添加,可以实现查询,以及通过符号化来显示事物随时间的变化轨迹。

      Archiving 能够支持完全的Geodatabase数据模型,独立的Feature Classes、Feature Datasets、Tables、Relationship、Network Topology都能够实现Archiving。

      注意:
     (1) 一旦数据集注册为“Registered with moving edits to base ”,则不能实现Archiving,必须将数据集Unregistered,然后再“Registered as versioned without the option to move edits to base”;
    (2) 仅仅对具备Own权限的Datasets或者Classes进行Archiving;
    (3) 在开始Archiving时,原始Class的Indexed也将创建;
    (4) 能够通过点击Archiving的Properties查看数据的档案;
    (5) 对Archive Class类的命名规则是在原始对象类的名称后加“_H”,例如Road_H;
    (6) 利用ArcCatalog不能查看Archive Class,但是在ArcMap中通过Add Historical Archive命令把Archive Class添加到ArcMap中浏览和分析;
    (7) 为了更好的使用Archive Class,应该定期更新Database Statistics;

     当对Versioned Database开始Enabling Archiving时,则创建Archive Class,并采用两个字段gdb_from_date,gdb_to_data来记录变化时间。有两种时间Valid Time和Transactional Time,其中Valid Time是对应真实世界的变化发生时间,而Transactional Time则是将变化记录到数据库的时间,是由系统自动记录的。ArcGIS采用Transactional时间以记录变化保存和提交到Default版本的时间。这样就会产生不一致的问题。

      一旦开始Archiving ,Default Version中的所有Row都被拷贝到Archive Class中,并且所有来自原始数据的Row都用相同的Timestamp标记。Gdb_from_date字段是用开始Enabling Archiving操作的时间来记录的,而gdb_to_date字段是记录为12/31/9999。如果一个对象的gdb_to_date是12/31/9999,表示其属性与Default版本的状态是相同的。一旦数据被编辑,保存并提交到Default版本以后,Archive Class会自动更新。当对数据库中的某个要素Update的时候,提交到Default版本后,该要素的Row的gdb_to_date将变成提交变化的时间,同时增加一行,将其gdb_from_date改为提交变化的时间,而将gdb_to_date改成12/31/1999。一旦要删除一个要素,则将该要素的属性gdb_to_date改成提交变化的时间。对数据库的Archive都是在一个独立的Database Transaction中进行的,保证编辑结果可以回退。

      当Disabling Archiving时,可以选择不删除相关的Archive Class,将其保存为具备From和To字段的Temporal Table,可以用来实现时间动画、动画图表和追踪分析,也可以选择删除Archive Class。在Unregistered as Versioned之前,必须要将数据集Disable Archive。在Archiving Enabled期间删除要素集或者要素类,将保存Archive Class。

Tags:Geodatabase,ArcSDE  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图