更新:2007 年 11 月
每个数据仓库都包含一个或多个事实数据表。作为“星型”或“雪花”架构的核心,事实数据表捕获度量团队操作的数据。事实数据表通常包含大量行,尤其是当它们包含大型团队项目的历史记录的一个或多个年份时。
事实数据表的主要特性是它包含数值数据(事实),可以汇总这些数据以提供有关组织操作的历史记录的信息。每个事实数据表还包括一个多部分索引,该索引包含相关维度表的主键(作为外键)和事实记录的属性。事实数据表不应该包含描述性信息或除数值度量字段和将事实数据与维度表中的对应项关联的索引字段以外的任何数据。
多维数据集中的事实数据表
下表显示了包含在 Team System 关系数据库中包含的事实数据表。
| 表 | 说明 | 
|---|---|
| 生成变更集 | 对于包括在此生成中但不包括在同一类型的前一生成中的每个变更集,都包含一行。这样使生成信息能够与签入相关,同时能够与同这些签入关联的工作项相关。 | 
| 生成覆盖率 | 对于收集生成指标时的每个时间代码,都包含一行。 | 
| 生成详细信息 | 每次执行生成时都包含一行。 | 
| 生成项目 | 每次构建生成内的项目时都包含一行。 | 
| 代码改动 | 对于任何文件的每次修订,都包含一个新行。 | 
| 当前工作项 | 对于系统中当前每个工作项,都包含一行。 | 
| 负载测试计数器 | 为执行的每个负载测试读取的每个性能计数器值的摘要信息。包含计数器 ID、值及作为其来源的计算机。 | 
| 负载测试详细信息 | 每次执行负载测试时都包含一行。 | 
| 负载测试页摘要 | 对于在每个负载测试期间访问的每个 URL,都包含一行。汇总每个顶级页的信息,但不包括从属请求的详细信息;例如,图像。 | 
| 负载测试摘要 | 对于作为负载测试一部分的每个测试运行,都包含一行。包含测试运行的次数、失败的次数、运行所花费的平均时间等等。 | 
| 负载测试事务 | 包含每个事务的平均时间。例如,如果单元测试在负载下运行,则测试中的计时器在此报告为每个事务花费的平均时间。 | 
| 运行覆盖率 | 每次执行收集代码覆盖率指标的测试运行时,都包含一行。 | 
| 测试结果 | 对于每个测试的每次执行,都包含一行。包含测试结果、开始时间和结束时间以及有关测试的元数据(类别、CSS 节点等等)。 | 
| 工作项变更集 | 对于工作项修订和变更集之间的每个关系,都包含一行。 | 
| 工作项历史记录 | 使用转换计数和记录计数在某个时间点聚合信息的工作项的版本文件。 | 
所有事实数据表中出现五个字段:
- ID 
- 逻辑跟踪 ID 
- LastUpdatedTime 
- LastUpdatedBy 
- TrackingId 
此外,还有一组链接到维度表中的外键。
事实数据表中的跟踪历史记录
每个工作项和测试结果都包含随时间更改的事实。聚合有关这些项的信息以及查看总数随时间的趋势或在单个时间点存在的项是很有价值的。Team System 数据仓库捕获工作项的每个修订,或以一种使 OLAP 多维数据集中的计算能够在任何给定的时间点聚合信息的方式来捕获测试的每次运行。下表描述跟踪更改的关系数据库中的两个整数列。
| 列 | 说明 | 
|---|---|
| 记录计数 | 每次记录发生更改时(例如 Bug 的优先级更改时),两个记录都被写入数据库。第一个记录(称为补偿记录)将 Record Count(记录计数)列设置为 -1(取消),或者补偿以前时间的事件。第二个记录记录与事实关联的新值,并将 Record Count(记录计数)设置为 1。在多维数据集中,将两个时间点之间的所有记录聚合在一起会有效地取消除该时间点的最新记录以外的所有记录。Record Count(记录计数)为显示一天的运行总数提供了基础。 | 
| State Change Count(状态更改计数) | 由于状态更改是要报告的一个重要方面,因此每次工作项的状态或测试结果的结果更改时,特殊标志 State Change Count(状态更改计数)都设置为 true。State Change Count(状态更改计数)为显示一天的活动提供了基础。 |