哪些数据存储系统允许查询过去的系统状态?

时间:2011-05-22 23:50:16

标签: database database-design mvcc

我正在设计一个系统,其中诸如“在特定时间符合某些标准的所有记录的总和是什么”这样的问题很重要。

多值并发控制(MVCC)似乎就是这样的方式,因为它永远保持审计跟踪。

但是,如果数据存储可以为我处理这个问题,而不是将其与其他数据库功能拼凑在一起,那就太好了。现在,Oracle和CouchDB等数据库引擎都使用MVCC,但仅限于幕后。他们使用它来解决冲突或决定在长时间运行的查询遇到最近更新的数据时该怎么做。但我不知道有哪些系统允许您明确说“在2009年1月20日17:00的系统状态下,此查询返回什么”。那么有这样的系统吗?理想情况下,开源?

2 个答案:

答案 0 :(得分:1)

使用Oracle查看闪回查询。

答案 1 :(得分:1)

据我所知,MVCC不保证早期版本行的持续时间。它的目标是对事务进行并发控制;当'x'行的所有事务都已提交时,MVCC不需要保留该行的早期版本。

你在考虑Temporal Databases。 Snodgrass的旧书在SQL中开发面向时间的数据库应用程序值得浏览,特别是现在它可以作为PDF获得。如果我不得不再次从头开始做一个时态数据库,我还会读到 Temporal Data&关系模型,以及处理6NF的任何其他事情。 (其中'6NF'<>'DKNF'。)