博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】维度表和事实表的区别
阅读量:5141 次
发布时间:2019-06-13

本文共 742 字,大约阅读时间需要 2 分钟。

免责声明:
    本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系 进行删除。
    原文作者:  
    原文地址:

 

以前一直对维度表, 事实表, 数据分析, BI等概念等有一些模糊. 这几天的学习终于让这些有了一些眉目了:

维度表示你要对数据进行分析时所的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度。前面的示例就可以有两个维度:类型和区域。另外每个维度还可以有子维度(称为属性),例如类别可以有子类型产品名等属性。下面是两个常见的维度表结构:

产品维度表:Prod_id, Product_Name, Category, Color, Size, Price

时间维度表:TimeKey, Season, Year, Month, Date

而事实表是数据聚合后依据某个维度生成的结果表。它的结构示例如下:

销售事实表:Prod_id(引用产品维度表), TimeKey(引用时间维度表), SalesAmount(销售总量,以货币计), Unit(销售量)

上面的这些表就是存在于数据仓库中的。从这里可以看出它有几个特点:

1. 维度表的冗余很大,主要是因为维度一般不大(相对于事实表来说的),而维度表的冗余可以使事实表节省很多空间。

2. 事实表一般都很大,如果以普通方式查询的话,得到结果一般发的时间都不是我们可以接受的。所以它一般要进行一些特殊处理。如SQL Server 2005就会对事实表进行如预生成处理等。
3. 维度表的主键一般都取整型值的标志列类型,这样也是为了节省事实表的存储空间。

转载于:https://www.cnblogs.com/sdjnzqr/p/3829670.html

你可能感兴趣的文章
让你的Blend“编辑其他模板”菜单里出现你的Style
查看>>
WPF图片放大后模糊的解决方法
查看>>
mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享
查看>>
C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码
查看>>
SQL Server内存
查看>>
Knockout应用开发指南 第六章:加载或保存JSON数据
查看>>
Knockout应用开发指南 第一章:入门
查看>>
C语言跳出循环
查看>>
输不起慢的代价,赢不了休息的时间
查看>>
Perl Bloom::Filter 模块使用分析
查看>>
java序列化与反序列化
查看>>
多表查询实例
查看>>
DEV 打印gridcontrl
查看>>
android调用js
查看>>
交换地方HDU 1195 Open the Lock 简单搜索-bfs
查看>>
angular项目中使用angular-material2
查看>>
142. Linked List Cycle II
查看>>
python操作MongoDB
查看>>
百度编辑器UEditor的使用方法
查看>>
ZOJ 3792 Romantic Value
查看>>