GIS空间数据库(51)MAPGIS长事务模型

GIS的许多应用都涉及长期的编辑工作,如规划设计领域,一次编辑可能历时数天,甚至数月,而且是许多人并发地编辑地理数据,这种长时间的编辑操作要求具有事务ACID特性,即原子型、一致性、独立性、持久性。长事务的特点往往表现为下列需求:从开始编辑到结束编辑,所有的编辑操作要么都取消、要么都提交,无论取消或提交,都不破坏数据的一致性和完整性。

MAPGIS7.0通过一个称为版本化的数据管理框架,真正实现长事务处理机制,满足了这些应用需求。在长事务处理期间,可以自由地添加要素、执行分析、编辑地图,所有这些都不影响正常的地理数据库。当编辑完成时,如果编辑被实施,则把变更更新到地理数据库中,否则丢弃变更。

MAPGIS7.0版本管理具有版本创建、删除、归并、冲突解决等功能和机制。

长事务模型

长事务实现的数据管理方法称为乐观的并发性。这意味着当开始一个长事务时,没有任何锁加到要素上。在这种模式下允许引入编辑冲突,当提交事务时,检测冲突,并协调解决冲突。 MAPGIS7.0长事务的实现机制基于状态和版本这两个概念,通过版本控制,让多个用户可以直接编辑某个地理数据库而不用明确地锁定要素或复制数据。

状态
  • 状态是地理数据库变化过程中某一瞬间的标识;
  • 任何改变数据库的操作都产生新状态;
  • 数据库中的这些状态可以组织成一棵树,在这个树的线性结构中可以了解状态的父子关系。
版本
  • 版本是被命名的数据标识,不同版本的数据逻辑上相互区分;
  • 版本总是对应某个数据状态,但状态不一定有对应的版本;
  • 数据库中始终有”缺省版本”,数据库压缩后,缺省版本的状态为0;
  • 版本存在于数据库的众多状态中。数据库的每一个版本都明确的指向一个具体的状态;如果需要的话,多个版本也可以指向相同的状态;
  • 多个用户对同一个版本进行编辑,就产生各自的状态,如产生图11-10状态3,4,且可能都处于打开状态,但同一用户进行新的操作,产生新状态时,该用户(会话)对应的老状态自动关闭;
  • 结果进行保存时,进行状态冲突检测。

其他相关文章

如果对本文有其他疑问,可以在本文下方留言。 如果有其他GIS、3S相关疑问也可以到 麻辣GIS问答 版块发表提问。
本站QQ群:291616564; 微信公众号:malagis,扫描 二维码 直接关注。

打赏¥1

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论