【问题标题】:DB-alike system with history and branching具有历史和分支的类 DB 系统
【发布时间】:2018-04-13 08:27:41
【问题描述】:

我需要一个模拟简单数据库的数据存储系统,但也可以存储更改历史记录,并支持分支。

即多张数据表(不需要支持实际的SQL语法),选项commit任意改变,选项tag系统状态,选项 em>在标签之间穿梭

它应该非常接近简单的源代码控制系统,例如 git。没有合并等,只需提交更改、放置标签和标签之间的travel(回滚和快进),并且在任何时候都有类似于指定系统状态的“工作副本”标记。

我可以自己从头开始实现这样的数据结构,但我更愿意在现有的健壮实现(例如 DB 引擎等)上构建它。

对此有已知的解决方案吗?

【问题讨论】:

标签: database algorithm data-structures version-control


【解决方案1】:

以下是您的选择:

  • ArcSDE - ESRI 的 ArcGIS 支持通过 ArcSDE 数据层对地理数据库进行版本控制;
  • Oracle Workspace Manager - Oracle 数据库的特性,提供高 版本隔离和数据历史管理程度;
  • SQL:2011 时态特征,包括有效时间和事务性 时间支持。
  • Noms - 它是一个分散的数据库,从哲学上继承自 Git 版本控制系统。
  • Irmin - 它是一个内置快照的持久存储库, 分支和恢复机制。

SQL:2011 支持“线性”编辑历史记录。

ESRI 和 Oracle 是不错的候选者,但两者都有用于操作版本的供应商特定接口。

在 Noms 中,所有以前版本的数据库都被保留。您可以轻松跟踪数据库如何演变为当前状态,轻松有效地比较任何两个版本,甚至可以从任何先前版本倒带和分支。

【讨论】:

    【解决方案2】:

    不幸的是,诺姆斯现在已经死了。剩下的选项是:

    Irmin 最接近 Noms,但上次我检查插入数据而不指定路径尚不支持。

    另请参阅:How can I put a database under git (version control)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-03
      • 2015-07-24
      • 2016-01-11
      • 2020-11-20
      • 2021-09-03
      • 2017-12-08
      • 1970-01-01
      • 2021-03-11
      相关资源
      最近更新 更多