|
|
|
|
移动端

2.6 处理维度层次关系

《数据仓库工具箱(第3版)--维度建模权威指南》第2章Kimball维度建模技术概述,本章内容出自这些设计模式的发明者。我们并不期望您一开始就从头到尾阅读本章,但希望您能将本章作为所提供技术的参考。本节为大家介绍处理维度层次关系。

作者:王念滨/周连科/韦正现 译来源:清华大学出版社|2015-12-10 17:09

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


2.6  处理维度层次关系

维度往往存在层次关系。本节描述处理层次关系的方法,从最基本的情况开始讨论。

2.6.1  固定深度位置的层次

固定深度层次是多对一关系的一种,例如,从产品到品牌,再到分类,到部门。当固定深度层次定义完成后,层次就具有商定的名字,层次级别作为维度表中的不同位置属性出现。只要满足上述条件,固定深度层次就是最容易理解和查询的层次关系,固定层次也能够提供可预测的、快速的查询性能。当层次不是多对一关系,或层次的深度不定,以致层次没有稳定的命名时,就需要接下来将描述的非固定层次技术。

2.6.2  轻微参差不齐/可变深度层次

轻微参差不齐层次没有固定的层次深度,但层次深度有限。地理层次深度通常包含3到6层。与其使用复杂的机制构建难以预测的可变深度层次,不如将其变换为固定深度位置设计,针对不同的维度属性确立最大深度,然后基于业务规则放置属性值。

2.6.3  具有层次桥接表的参差不齐/可变深度层次

在关系数据库中,深度不确定的可变深度层次非常难以建模。尽管SQL扩展和OLAP访问语言对递归父子关系提供了一些支持,但方法极为有限。采用SQL扩展,在查询时,不能替换参差不齐层次,不支持对自身层次结构的共享,同时也不支持随时间变化的参差不齐层次。以上所有问题可以通过在关系数据库中采用构建桥接表方式建模参差不齐层次来解决。这样的桥接表对每个可能的路径保留一行,确保能够遍历所有层次的形式,采用标准SQL而不是用特定语言扩展来实现。

2.6.4  具有路径字符属性的可变深度层次

可以在维度中采用路径字符属性,以避免使用桥接表表示可变深度层次。对维度中的每行,路径字符属性包含特定的嵌入文本字符,包含从层次最高节点到特定维度行所描述节点的完整路径描述。多数标准层次分析需求可以通过标准SQL处理,不必采用SQL语言扩展。然而,路径字符方法不能确保其他层次的快速替换,也无法保证共享自身层次。路径字符方法也难于构建可变路径层次的变化,可能需要重新标记整个层次。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Absolute C++中文版(原书第2版)  

本书是讲解C++语言程序设计的优秀教程。全书围绕C++语言来组织,开始章节介绍编程的普通感念,接下来详细介绍C++中的继承、多态、异常处理...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊