数据仓库建模:历史数据捕获、关系处理及关键步骤解析
在数据仓库建模过程中,有几个关键方面需要我们深入探讨,包括历史数据的捕获、历史关系的处理,以及添加派生数据和确定粒度级别等步骤。下面将详细介绍这些内容。
1. 历史数据的捕获
在数据仓库中,为键添加时间组件是捕获历史数据的一种重要方式。每次获取新的快照或捕获新时间段的数据时,都能创建一个独特的记录。然而,包含时间组件会对设计产生重大影响。由于实体可能在某些一对多关系中作为父实体,生成的外键现在将包含时间组件。这可能会导致一些不良结果,例如,即使子实体中的数据没有变化,也会为每个子实体生成一个新的实例,这是因为外键的时间组件内容发生了变化。如果一个实体是多个父实体的子实体,这种情况会更加复杂。
为了解决这个问题,有以下五种潜在的方法可供选择:
1. 生成双外键 :如前文所述,将时间组件包含在键中。
2. 在父实体中为每个实例生成串行键 :并将标识符和时间组件作为非键属性存储在实体中。这种方法可以减少作为外键生成的属性数量,但在父实体发生变化时,仍会为子实体生成新的实例。
3. 通过编程方式强制实施引用完整性 :而不是使用数据库管理系统(DBMS)来强制执行,并且仅对标识符实施引用完整性。这种方法需要额外的编程工作来确保引用完整性。
4. 将数据分离为包含历史数据的实体和仅包含当前数据的实体 :关系仅从包含当前数据的表中产生,因此不包含时间组件。历史数据的引用完整性将通过将记录创建为当前数据实体中记录的副本来以编程方式强制执行。
5.
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



