数据仓库维度建模工具箱-第一章 数据仓库、商业智能及维度建模初步(2)

1.维度建模被广泛应用所满足的需求(维度建模的优势):

  • 以商业用户更易理解的方式发布数据
  • 提高查询性能

2.星型模型和OLAP多维数据

  在关系型数据库中实现的维度模型称为星型模型,因其结构类似星型结构。在多维数据库中实现的维度模型通常称为联机分析处理(OnLine Analytical Processing,OLAP)多维数据库。

 

如何理解实体表、维度表、事实表?

  • 实体表:实体表就是一个实际对象的表,实体表它放的数据一定是一条条客观存在的事物数据,比如说设备 ,它就是客观存在的,所以可以将其设计一个实体表;
  • 事实表:事实表用于度量,它存放的是用于度量的值,其他字段用于保存维度信息的外键字段,物理世界的每一个度量事件对应事实表的一条数据。事实表的设计主要在于找到主干字段,以一个销售订单为例。

    原表字段:product_no,product_name,sale_time,sale_amount,sale_count,profit

    很明显该表的销售数量、销售金额、利润是该表的主干,所以可以将该表拆分为产品维度表和时间维度表

    产品维度表:product_key,product_no,product_name,color,size

    时间维度表:time_key,year,month,date,hour,minute(一般没必要)

    销售事实表:product_key,time_key,sale_amount,sale_count,profit

    若由需求和必要,同样可以将连续变量sale_amount,sale_count,profit离散化后,作为维度使用

    订单维度表:sale_count_key,section

          1      0-5

          2      0-5

          3      5-10

  • 维度表:维度是分析问题的角度,一个事实表一般关联多个维度表

设计原则:

  • 文本型度量,设计者应尽量将文本字段放入纬度当中,除非该文本字段对每个行来说是唯一的,尽量避免在事实表存储冗余的文本信息,以节省存储空间;
  • 如果产品维度没有销售事实,不要试图以0来填充事实表
  • 维度表一般是含有主键的,作为该维度下单一个体,一行数据数据为单一维度,维度之间一般是层次结构的,例如:年-月-日

 

posted @ 2021-01-13 14:25  芦苇了嘿  阅读(207)  评论(0编辑  收藏  举报