具有历史和分支的类似DB的系统

时间:2018-04-13 08:27:41

标签: database algorithm data-structures version-control

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

即,几个数据表(不需要支持实际的SQL语法),提交任意更改的选项,标记系统状态的选项,以及<的选项标签之间的旅行。

它应该非常接近简单的源控制系统,例如git。如果没有合并等,只需在标签之间提交更改,添加标签和旅行(回滚和快进),并随时拥有&#34;工作副本&#34;它类似于指定标签的系统状态。

我可以从头开始实现这样的数据结构,但我更喜欢在现有的强大实现上构建它,例如数据库引擎等。

是否有一个已知的解决方案?

2 个答案:

答案 0 :(得分:1)

以下是您的选择:

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

SQL:2011支持&#34;线性&#34;编辑史。

ESRI和Oracle是很好的候选者,但它们都有特定于供应商的操作版本的接口。

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

答案 1 :(得分:1)

不幸的是,现在Noms已经死了。其余选项为:

Irmin最接近Noms,但是上一次我检查插入数据时未指定路径尚未得到支持。

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