Wil*_*son 5 spatial data-versioning
ESRI 的空间数据库管理系统称为地理数据库( more ),使用一种称为版本控制的技术。
版本代表整个地理数据库的时间快照,并包含地理数据库中的所有数据集。
版本不是地理数据库的单独副本。相反,版本和其中发生的事务在系统表中进行跟踪。这将用户的工作隔离在多个编辑会话中,允许用户在不锁定生产版本中的功能或立即影响其他用户且无需制作数据副本的情况下进行编辑。
http://help.arcgis.com/en/geodatabase/10.0/sdk/arcsde/concepts/versioning/basicprinciples/state.htm
将数据集(要素类、要素数据集或表)注册为版本时,会创建两个增量表:A(或添加)表,记录插入和更新,D(或删除)表,存储删除。每次更新或删除数据集中的记录时,都会向其中一个或两个表中添加行。因此,版本化数据集由原始表(称为基本表或业务表)加上增量表中的任何更改组成。当您进行填充增量表的编辑时,地理数据库会跟踪您连接到的版本。当您查询或显示某个版本中的数据集时,ArcGIS 会组合原始表和增量表中的相关行,以提供该版本数据的无缝视图。
老实说,我发现文档相当模糊;它并没有告诉我该技术的实际工作原理,或者它基于传统数据库理论的哪一部分。
我想不会有很多 DBA SE 社区成员对 ESRI 的版本控制技术有经验。所以我不会问诸如“它是如何工作的?”之类的问题。
相反,我想知道,在非空间数据库世界中是否有与 ESRI 版本控制类似的技术?
Oracle 几乎从一开始就实施了 MMVC。其主要目的是减少更新期间的争用:使读者和作者能够不互相阻塞。但这与 ESRI 提供的多版本控制不同。传统的数据库事务是短事务:它们只持续很短的时间:亚秒、秒……对于某些批处理过程可能是几分钟甚至几小时。
ESRI 提供的版本控制适用于长事务。这里的事务可以持续几天、几周、几个月……理论上,数据库可以使用短事务来做到这一点:只是不提交,并希望您的会话保持几天或几个月。显然这是一个不可能的保证。
因此Oracle实现了自己的长事务/多版本机制。它称为 Oracle Workspace Manager (OWM)。有关详细信息,请参阅http://docs.oracle.com/database/122/ADWSM/。
在 OWM 中,用户在工作区(ESRI 称之为版本)中工作。工作空间是协作的:多个用户可以在同一个工作空间中工作。在工作区中完成的更新仅对该工作区中的用户可见。工作区中的更改通过合并操作应用到父工作区。子工作区可以通过刷新操作开始查看其父工作区中所做的更改。OWM 包括冲突检测和解决、长期锁定、更改检测、历史记录、“假设”场景的所有机制......
与 ESRI 的版本一样,OWM 的工作空间形成了嵌套工作空间的层次结构,最上面的工作空间是 LIVE(或“竣工”工作空间)。
OWM 对应用程序完全透明:它们像往常一样与表和视图交互。在每个工作空间的上下文中维护引用完整性。
请注意,OWM 与 GIS 并不特别相关:多版本表可以是任何类型 - 不仅仅是“空间”表。然而,许多需要安全长事务机制的 GIS 工具都使用它:例如 Autodesk Map、Bentley Maps、Geomedia Transaction Manager。许多客户还在任何 GIS 之外使用它。
从概念上讲,它非常类似于 ESRI 的方法:基本操作相同(但可能使用不同的术语)。但实现方式有所不同:ESRI 将更改保存在单独的表(“A”和“D”表)中,而 Oracle Workspace Manager 将它们全部保存在主表中。视图使使用变得透明。
所以,是的,多版本控制/长事务肯定在空间数据库的其他上下文中的数据库中使用。
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |