什么是码表,什么是维度表?

整理业务库的库表字段和字段含义的时候,遇到了码表的概念,码表是什么,和维度表又是什么关系呢?

首先,码表没有明确的定义。

百度搜索码表,可以看到和数据处理相关的解释是:码表是 编码表(或代码表)的简称。

  • 编码表:
是一种代码说明表格。
用来帮助用户明确无解释数据和字符 代码的含义。

例如:性别码表的值为男和女。类似于数据字典。

以性别代码表为例:

sex value
1
2

我想获得一个性别为男的值只需要设置sex.id=‘1‘就可以了。

以上就是关于码表的介绍。

我们不禁想到这和数据仓库的维度表定义类似。

  • 维度表
简单的把维度表理解为对某类事务粒度的抽离及细化。  

维度表中的取值,可以通过group by取出。

  • 从另一个角度去区分事实表和维度表,
存放业务数据的是事实表。
从事实表中抽象提取出的和业务无关的表就是维度表。

数据仓库最常见的维度表是时间维度表

  • 维度表的特点:
是抽象提取出的、和业务无关、很少变化的表。
  • 那么维度表的作用,也不难总结:
可以非常有效的减少事实表的占用空间。
占用空间减小,在分析数据时,做表的扫描,效率也会大大提升。
对事实表中数据的取值做了规范。方便统计和查询。
  • 维度表的管理

一般,某个字段可以抽象出有限个数的取值,都可以建立维度表。常见的维度有时间,地点,职业等等。

维度表在数据仓库中应该有单独的一层:dim dimension

这里是我总结的一些概念,便于大家理解,如果想要深入研究,

可以参考下面的链接:

维度表的建设:

https://blog.net/selfsojourner/article/details/80478389

https://www.jianshu.com/p/292de1ae3e02?from=timeline&isappinstalled=0

时间维度表:

https://www.cnblogs.com/wuhuacong/archive/2010/05/19/1738199.html

https://wenku.baidu.com/view/0ef540155acfa1c7ab00cc20.html

援引一段总结:

每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务

所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,

以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,

而维度表包含事实记录的特性。

事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。

原文地址:https://www.cnblogs.com/drjava/p/10465814.html

时间: 2024-11-05 18:47:24

什么是码表,什么是维度表?的相关文章

利用java日期类生成数据仓库维度表

利用java日期类生成数据仓库维度表 Date类: 最基础的日期时间类,返回一个相对日期的毫秒数.精确到毫秒,但不支持日期的国际化和分时区显示.Date 类从Java 开发包(JDK)1.0 就开始进化,当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了,这种改进旨在更好的处理日期数据的国际化格式. Calender类: 相对于Date更加强大的时间类,是抽象类,提供了常规的日期修改功能和国际化

《BI那点儿事—数据的艺术》理解维度数据仓库——事实表、维度表、聚合表

事实表 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”.一个按照州.产品和月份划分的销售量和销售额存储的事实表有5个列,概念上与下面的示例类似. Sate Product Mouth Units Dollars WA Mountain-100 January 3 7.95 WA Cable Lock January 4 7.32 OR Mountain-100 January 3 7.95 OR Cable Lock January 4 7.32 WA Mountain-100 F

【转载】维度表和事实表的区别

免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:知识点滴      原文地址: 维度表, 事实表, 数据仓库, BI...   以前一直对维度表, 事实表, 数据分析, BI等概念等有一些模糊. 这几天的学习终于让这些有了一些眉目了: 维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.

事实表和维度表(转载)

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

mysql中生成时间维度表

利用mysql常用日期函数生成时间维度表,效率最高,最简单,无需其他的一些工具支持.生成结果示例如下图: # time span SET @d0 = "2012-01-01"; SET @d1 = "2012-12-31"; SET @date = date_sub(@d0, interval 1 day); # set up the time dimension table DROP TABLE IF EXISTS time_dimension; CREATE T

维度表, 事实表, 数据仓库, BI...

以前一直对维度表, 事实表, 数据分析, BI等概念等有一些模糊. 这几天的学习终于让这些有了一些眉目了: 维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性.下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Si

关于维度表结构设置中的 surrogate key 的使用

维度表中的主键通常有两种选择:自然键(Natural Key),它是业务系统中已经存在的,通常是具有一定业务含义的一个字符型的标志符,可以唯一地标志维度表中的每一条记录.比如机构的代码.缩写.时间标签等.另一种是代理键(Surrogate Key),通常是数据库系统赋予的一个数值,是自增型的,按顺序分配,没有内置含义但也可以唯一地标识一条维度信息. 项目经验,推荐采用第二种,即代理键.原因如下: 首先,自然键虽然在逻辑上可以唯一地标识出一条维度信息,但它通常是字符型的,且一般比较长,若用它作为维

数据仓库/集市 星形/雪花形 事实/维度表

声明:本文转载至Davor Gornik 对数据仓库进行数据建模 OLTP 与数据仓库--有何差异? 在日常生活中,我们要使用大量的应用程序来生成新的数据.变更数据.删除数据,当然在大多数的情况下我们还要查阅和分析数据.就来想象一个收发 email 的简单应用程序吧.我们已经存储了地址信息,可能还存储了一些文档.我们可以决定是否存储已经发送过的邮件,但是也可能隔一段时间后将其删除,或者删除已经发送过的所有邮件.那么我们该如何处理一段时间以前删除或者修改过的地址呢?我们再也不会看到它们了. Ema

Mysql时间维度表

1.建一张表test_date用来日期的自增长,里面只放一列  ID,写一个存储,插入顺序数字 BEGIN #Routine body goes here... declare id int; set id=1; while id<=6000 do insert into test_date values(id); set id=id+1; end while; END 2. 建立时间维度表,插入记录 SET @d0 = "2000-01-01"; SET @d1 = "