ESRI 的空间数据库管理系统,称为地理数据库(更多),使用一种称为版本控制的技术。
版本表示整个地理数据库的时间快照,并包含地理数据库中的所有数据集。
版本不是地理数据库的单独副本。相反,版本和其中发生的事务在系统表中进行跟踪。这将用户的工作隔离在多个编辑会话中,允许用户在不锁定生产版本中的功能或立即影响其他用户且无需复制数据的情况下进行编辑。
http://help.arcgis.com/en/geodatabase/10.0/sdk/arcsde/concepts/versioning/basicprinciples/state.htm
将数据集(要素类、要素数据集或表)注册为版本时,会创建两个增量表:A(或添加)表,记录插入和更新,D(或删除)表,存储删除。每次更新或删除数据集中的记录时,行都会添加到其中一个或两个表中。因此,版本化数据集由原始表(称为基表或业务表)加上增量表中的任何更改组成。当您进行填充增量表的编辑时,地理数据库会跟踪您连接到的版本。当您查询或显示版本中的数据集时,ArcGIS 会组合原始表和增量表中的相关行以呈现该版本数据的无缝视图。
老实说,我发现文档相当模糊;它并没有告诉我很多关于该技术的实际工作原理,或者它基于传统数据库理论的哪一部分。
我不认为许多 DBA SE 社区成员会使用 ESRI 的版本控制技术。所以我不会问“它是如何工作的?”之类的问题。
相反,我想知道,在非空间数据库领域是否有任何类似于 ESRI 版本控制的技术?