数仓测试-引用完整性测试

关系测试

  数据仓库中各种表之间存在这一种关系。这种关系即是人们早已熟知的“参照完整性”。“参照完整性”测试是数据仓库测试的一个重要模块。“参照完整性”也称为“引用完整性”(在本文中统一称为参照完整性),参照完整性指添加,修改或删除记录时,表间的关联性不可破坏。在SQL Server中,参照完整性基于主键与外键或唯一键(Unique)与外键的关系。参照完整性确保在各个关联的表中的值是一致的【1】。      对于数据仓库,存在着事实表(Fact Table)和维度表(Dimension Table),如果删除维度表中的某条记录,那么对应的事实表也必须删除相关记录, 如果事实表插入新的记录,那么维度表也必须插入相关的记录。

如下图所示,有一个事实表和五个维度表(维度表A,维度表B,维度表C,维度表D,维度表E),这六个表通过主外键关系相关联。事实表和维度表A通过A_ID建立参照完整性的关系;同样,事实表和维度表B通过B_ID建立参照完整性的关系;事实表和维度表C通过C_ID建立参照完整性的关系;事实表和维度表D通过D_ID建立参照完整性的关系;事实表和维度表E通过E_ID建立参照完整性的关系。因此,作为测试人员必须至少写5个测试用例来测试这个参照完整性。

可以用如下5个测试用例来验证上图中数据仓库的星型模型中事实表和维度表的参照完整性: • 

Select  count (1) from 事实表nolock  where A_ID not in (select A_ID from 维度表nolock

Select  count (1) from 事实表nolock  where B_ID not in (select B_ID from 维度表nolock

Select  count (1) from 事实表nolock  where C_ID not in (select C_ID from 维度表nolock

Select  count (1) from 事实表nolock  where D_ID not in (select A_ID from 维度表nolock

Select  count (1) from 事实表nolock  where E_ID not in (select A_ID from 维度表nolock

如果以上5个测试用例返回不等于0的值,则说明不满足参考完整性,前端立方体(Cube)必定会刷新失败。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值