多维数据模型
2015-12-15 08:10
441 查看
一、概述 多维数据模型是最流行的数据仓库的数据模型,多维数据模型最典型的数据模式包括星型模式、雪花模式和事实星座模式,本文以实例方式展示三者的模式和区别。二、星型模式(star schema) 星型模式的核心是一个大的中心表(事实表),一组小的附属表(维表)。星型模式示例如下所示:
![](http://images.cnitblog.com/blog/496966/201501/200916184066377.jpg)
三、雪花模式(snowflake schema) 雪花模式是星型模式的扩展,其中某些维表被规范化,进一步分解到附加表(维表)中。雪花模式示例如下图所示:
![](http://images.cnitblog.com/blog/496966/201501/200918380319666.jpg)
从图中我们可以看到地址表被进一步细分出了城市(city)维。supplier_type表被进一步细分出来supplier维。四、事实星座模式(Fact Constellation)或星系模式(galaxy schema) 数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。本模式示例如下图所示:
![](http://images.cnitblog.com/blog/496966/201501/200924338912918.jpg)
如上图所示,事实星座模式包含两个事实表:sales和shipping,二者共享维表。五、总结 事实星座模式是数据仓库最长使用的数据模式,尤其是企业级数据仓库(EDW)。这也是数据仓库区别于数据集市的一个典型的特征,从根本上而言,数据仓库数据模型的模式更多是为了避免冗余和数据复用,套用现成的模式,是设计数据仓库最合理的选择。当然大数据技术体系下,数据仓库数据模型的设计,还是一个盲点,探索中。
![](http://images.cnitblog.com/blog/496966/201501/200916184066377.jpg)
三、雪花模式(snowflake schema) 雪花模式是星型模式的扩展,其中某些维表被规范化,进一步分解到附加表(维表)中。雪花模式示例如下图所示:
![](http://images.cnitblog.com/blog/496966/201501/200918380319666.jpg)
从图中我们可以看到地址表被进一步细分出了城市(city)维。supplier_type表被进一步细分出来supplier维。四、事实星座模式(Fact Constellation)或星系模式(galaxy schema) 数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。本模式示例如下图所示:
![](http://images.cnitblog.com/blog/496966/201501/200924338912918.jpg)
如上图所示,事实星座模式包含两个事实表:sales和shipping,二者共享维表。五、总结 事实星座模式是数据仓库最长使用的数据模式,尤其是企业级数据仓库(EDW)。这也是数据仓库区别于数据集市的一个典型的特征,从根本上而言,数据仓库数据模型的模式更多是为了避免冗余和数据复用,套用现成的模式,是设计数据仓库最合理的选择。当然大数据技术体系下,数据仓库数据模型的设计,还是一个盲点,探索中。
相关文章推荐
- WebService:与Spring整合需要注意的问题
- P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
- WebService:CXF发布Web项目
- Neville 插值方法
- Kafka消息delivery可靠性保证(Message Delivery Semantics)
- [MSSQL]服务器端压力过大导致SSMS异常
- 在Unity3D中使用ScriptableObject进行序列化
- php支持生僻字的汉字转拼音类
- Leetcode 153: Find Minimum in Rotated Sorted Array
- ES6学习——ES6背景介绍
- 298. Binary Tree Longest Consecutive Sequence
- 暗网背后那些明目张胆的地下黑色产业
- 举例数据库sqlite3的使用
- Xsolla与Ubisoft游戏Rainbow Six Siege 和刺客信条:辛迪加展开战略合作
- 297. Serialize and Deserialize Binary Tree
- PHP学习1-Mac OS X环境配置和PHP介绍
- [LeetCode]Number of Islands II
- EF+MVC+Bootstrap 项目实践 Day7
- (转)新手学习System Verilog & UVM指南
- 从头认识java-13.8 类型擦除的问题与解决