我正在尝试收集有关时态数据库的信息。我知道这不是一项现代技术,但我看到很多使用数据库的人都不知道时间方法是如何工作的(我问过一些高级程序员和系统分析师关于时间数据库的问题,他们的回答是“嗯?”) .

我知道有有效时间状态表和事务时间状态表,以及双时态表。我认为双时态表对于大多数用途来说太复杂了,因为现在空间不再是问题,而且在 2 个不同的表上写入相同的信息更有效,即使数据是冗余的。但是,我在网上进行了很多搜索,试图查看实际使用双时态表的位置,但没有找到任何有用的信息。

是否存在使用双时态表比单独使用有效时间和事务时间状态表更方便的情况?有真实世界的例子吗?

最佳答案

当然!以 Assets 负债表数据为例。您会发现由于数据延迟到达、调整、手动错误等原因,此信息将从 WD1(工作日)更改为 WD x。
为了实现可重复的报告、审计跟踪和时间比较,必须保留“旧”(无效?)结果的记录。双时态是管理此类更新的好方法,尤其是在日内。我认为从用户的角度来看并没有那么复杂 - 只是 where 子句的另一个过滤器。
我承认加载过程很复杂,但也没有那么糟糕。我刚刚写完一个通用转换(在 SAS 中,处理唯一业务键的所有场景),花了一天时间。
回到用例......在同一张表上同时拥有有效(业务)时间和事务(版本)时间可以实现:

  • 可重复的结果(具有单独的表和相应的更新可能意味着在两个不同的日子为同一查询获得不同的结果)
  • 可比结果(可以回答诸如“X 的值是多少,正如我们在时间 Y 时所知道的那样?”)
  • 快速结果(仅处理单表,以透明且易于查询的方式更新)。

  • 从这个意义上说,它是一种适用于 DWh 中许多表(如果不是所有表)的合适结构。
    2020 年更新:SAS(SAS 9 和 Viya)​​双时态数据转换可用于 SAS 数据 Controller 。提供演示版本:https://docs.datacontroller.io/dcc-tables/#var_busfrom-var_busto

    关于database - 在什么情况下实际使用双时态表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25931911/

    10-11 07:58