简单解释:

  • 事实表就是交易表。
  • 维度表就是基础表。

二者的区别:

  • 维度表的冗余很大,主要是因为维度一般不大(相对于事实表来说的),而维度表的冗余可以使事实表节省很多空间。
  • 事实表一般都很大,如果以普通方式查询的话,得到结果一般发的时间都不是我们可以接受的。所以它一般要进行一些特殊处理。如SQL Server 2005就会对事实表进行如预生成处理等。
  • 事实表一般是没有主键的,数据的质量完全由业务系统来把握。

事实表

  1. 每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。

  2. 包含在事实数据表中的“度量值”有两中:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息,例如。可以汇总具体时间段内一组商店的特定商品的销售情况。非累计的度量值也可以用于事实数据表,单汇总结果一般是没有意义的,例如,在一座大厦的不同位置测量温度时,如果将大厦中所有不同位置的温度累加是没有意义的,但是求平均值是有意义的。

  3. 一般来说,一个事实数据表都要和一个或多个纬度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。

维度表

  1. 维度表可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。例如,包含产品信息的维度表通常包含将产品分为食品、饮料、非消费品等若干类的层次结构,这些产品中的每一类进一步多次细分,直到各产品达到最低级别。

  2. 在维度表中,每个表都包含独立于其他维度表的事实特性,例如,客户维度表包含有关客户的数据。维度表中的列字段可以将信息分为不同层次的结构级。

1、事实表就是你要关注的内容;

2、维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。

例如,某地区商品的销量,是从地区这个角度观察商品销量的。事实表就是销量表,维度表就是地区表。

维度表设计原则

  • 维度属性尽量丰富,为数据使用打下基础

    • 比如淘宝商品维度有近百个维度属性,为下游的数据统计、分析、探查提供了良好的基础。
  • 给出详实的、富有意义的文字描述
    • 属性不应该是编码,而应该是真正的文字。在间里巴巴维度建模中, 一般是编码和文字同时存在,比如商品维度中的商品 ID 和商品标题、 类目 ID 和 类目名称等。 ID 一 般用于不同表之间的关联,而名称一般用 于报表标签
  • 区分数值型属性和事实
    • 数值型宇段是作为事实还是维度属性,可以参考字段的一般用途。 如果通常用于查询约束条件或分组统计,则是作为维度属性;如果通常 用于参与度量的计算,则是作为事实。比如商品价格,可以用于查询约 束条件或统计价格区间 的商品数量,此时是作为维度属性使用的;也可 以用于统计某类目 下商品的平均价格,此时是作为事实使用的。另外, 如果数值型字段是离散值,则作为维度属性存在的可能性较大;如果数 值型宇段是连续值 ,则作为度量存在的可能性较大,但并不绝对,需要 同时参考宇段的具体用途。
  • 沉淀出通用的维度属性,为建立一致性维度做好铺垫
    • 有些维度属性获取需要进行比较复杂的逻辑处理,有些需要通过多表关联得到,或者通过单表 的不同宇段混合处理得到,或者通过对单表 的某个字段进行解析得到。此时,需要将尽可能多的通用的维度属性进 行沉淀。
    • 一方面,可以提高下游使用的方便性,减少复杂度;
    • 另一方面,可以避免下游使用解析时由于各自逻辑不同而导致口径不一致。
  • 退化维度(DegenerateDimension)
    • 在维度类型中,有一种重要的维度称作为退化维度。这种维度指的是直接把一些简单的维度放在事实表中。退化维度是维度建模领域中的一个非常重要的概念,它对理解维度建模有着非常重要的作用,退化维度一般在分析中可以用来做分组使用。
  • 缓慢变化维(Slowly Changing Dimensions)
    • 维度的属性并不是始终不变的,它会随着时间的流逝发生缓慢的变化,这种随时间发生变化的维度我们一般称之为缓慢变化维(SCD),缓慢变化维一般使用代理健作为维度表的主健。
    • 处理方式:
      • 直接覆盖原值 – 不看历史数据,简单粗暴
      • 拉链表 – 需要在维度行再增加三列:有效日期、截止日期、行标识(可选)
      • 增加属性列
      • 冗余维度

明细表, 宽表, 窄表

  1. 事实表的数据中,有些属性共同组成了一个字段(糅合在一起),比如年月日时分秒构成了时间,当需要根据某一属性进行分组统计的时候,需要截取拼接之类的操作,效率极低。
  2. 为了分析方便,可以事实表中的一个字段切割提取多个属性出来构成新的字段,因为字段变多了,所以称为宽表,原来的成为窄表。
  3. 又因为宽表的信息更加清晰明细,所以也可以称之为明细表。

总结

宽表: 把多个维度的字段都放在一张表存储, 增加数据冗余是为了减少关联, 便于查询. 查询一张表就可以查出不同维度的多个字段
窄表: 和我们 mysql 普通表三范式相同, 把相同维度的字段组成一张表, 表和表之间关联查询其他维度数据.
维度表: 包含维度编码和该维度下的多个属性
事实表: 包含一个业务事件的相关属性

维度表和事实表以及明细表和宽表和窄表的区别相关推荐

  1. Z05 - 024、明细表、宽表、窄表 - 概念

    初学耗时:0.5h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 一.明细表.宽表.窄表 - 概念 记忆词:   明细表.宽表.窄表  Z05 - 999.网站流量日志分 ...

  2. 数据仓库中的维度表和事实表概述

    2019独角兽企业重金招聘Python工程师标准>>> 事实表       每个数据仓库都包含一个或者多个事实数据表.事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实 ...

  3. 数据仓库建模方法/范式建模法/维度建模法/事实表/维度表/优缺点/建模流程/概念建模/逻辑建模/物理建模

    常见的有 范式建模法.维度建模法.实体建模法等,每种方法从本质上将是从不同的角度看待业务中的问题,不管是从技术层面还是从业务层面,都代表了哲学上的一种世界观. 1 范式建模法(Third Normal ...

  4. 维度表和事实表的含义

    维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维 ...

  5. 什么是维度表和事实表

    事实表           每个数据仓库都包含一个或者多个事实数据表.事实数据表可能包含业务销售数据,如现金登记事务     所产生的数据,事实数据表通常包含大量的行.事实数据表的主要特点是包含数字数 ...

  6. 数据仓库之维度表和事实表

    1 维度表 维度表:一般是对事实的 描述信息.每一张维表对应现实世界中的一个对象或者概念. 例如:用户.商品.日期.地区等. 维表的特征:  维表的范围很宽(具有多个属性.列比较多)  跟事实表相 ...

  7. 大数据------维度表,事实表

    维度表 维度表:相当于存放数据的属性,就是你对数据分析时所用的量,比如分析产品销售情况,可以选择按商品类型,销售区域等等来分析.这样按-来分析就构成了一个维度.另外每个维度还可以有子维度(称为属性), ...

  8. 维度建模的事实表设计

    事实表基础 事实表特性 事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量. 事实表中一条记录所表达的业务细节 ...

  9. 维、维度、维度表和事实表

    目录 0 来自知乎的一个简单解释 1 维 2 维度 3 维度表 4 事实表 5 星型模式结构示意图 0 来自知乎的一个简单解释 1 维 维是关于一个组织想要记录的视角或观点. 参考: 维的百度百科. ...

最新文章

  1. 第二节 线程启动、结束、创建线程多个方法、join()、detach()
  2. print arraylist 显示的不是内容_泛型数组列表 java.util.ArrayListlt;Egt;
  3. 【要闻】Kubernetes无用论诞生、Elasticsearch 7.6.2 发布
  4. python边玩边学_边听边学数据科学
  5. 0到100速度测试软件,【图】到底如何完成 揭晓0-100公里/小时测试_汽车江湖
  6. 函数或变量 rtenslearn_c 无法识别_深度学习的数学-卷积神经网络的结构和变量关系...
  7. Linux 磁盘命令
  8. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
  9. python类封装成dl_第7.9节 案例详解:Python类封装
  10. dmg是什么文件格式_什么是DMG文件(以及我该如何使用)?
  11. 共筑安全内容分发,知道创宇与华为云签署合作备忘录
  12. view-design 组件库表格筛选条件联动保留前面筛选条件的高亮状态
  13. 员工公寓楼建设项目电力监控系统的研究与应用
  14. python 装饰器实践,实现定时函数和失败异常重复调用
  15. C++学习(一五一)hwnd hdc hglrc
  16. Python数据可视化之散点图(进阶篇---图文并茂详细版!!!)
  17. deepin 输入法频繁重启,无法正常输入汉字解决方法
  18. 我猜,每个程序员对着电梯都想过调度算法吧!
  19. WINCE 实现WIFI连接功能(WZC)
  20. MFC之位图加载10

热门文章

  1. Fedora 12-13详细安装设置Compiz+Emerald+AWN实现特效
  2. C++类型转换(static_cast,dynamic_cast,const_cast和reinterpret_cast)
  3. 生物信息/微生物组期刊推荐: ISME Journal
  4. mathtype获得试用
  5. SQL Server 2012 修改数据库属性
  6. Python3 抓取网页小说
  7. 腾达路由器linux开发,Linux内核系统! 腾达8口路由器功能超强
  8. Oracle EBS R12 On Oracle Enterprice 5.2 安装失败 分析和解决过程
  9. JavaScript中的柯理化函数
  10. 关于队里面最菜的在博客打卡第十天这件事