1、数据仓库维度建模,目录1.基础术语2.维度建模中的两种模型3.星形模型设计4.雪花模型设计5.星形模型的优势6.雪花模型的优势与劣势,1、基础术语,事实表(Fact Table) 每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行 主要包含了描述特定商业事件的数据,即某些特定商业事件的度量值。 一般事实表中只存放数字或者一些Flag用来统计,如数量、支出等 一般情况下,事实表中的数据不允许修改,新的数据只是简单地添加进事实表中 事实就是需要分析的目标数据,1、基础术语,维度表(Dimension Table) 维度表
2、可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。 每一个维度表利用维度关键字通过事实表中的外键约束于事实表中的某一行 维度表示的是事实信息的属性,1、基础术语,粒度(Grain)粒度表示的是事实表中细节数据的详细程度 最低粒度 事实表的基本层次是所有相应维度自然的最低层次。 例:产品、日期、客户、销售员为4个维度,则:事实表一条记录中必须有:单独的产品、特定的日期、特定的销售员和特定客户 使用最低粒度的好处 可以频繁容易的从操作型系统抽取数据
3、很多数据挖掘需要最低层次 便于向下钻取 使用最低粒度的缺点 存储和维护的代价 实际处理中,我们构建汇总事实表来支持汇总数据查询,2、维度的两种模型,星形模型(Star Schema)雪花模型(Snowflake Schema),星形模型(Star Schema),事实被维度所包围,且维度没有被新的表连接,雪花模型(Snowflake Schema),事实表被多个维表或一个或多个层次所包围,3.星形模型设计,(1) 正确区分事实、属性和维度。 维度模型需要对事实和属性进行区分,业务层的很多事实都是数值型的,特别是该数值是浮点数时,他很可能是一个事实,而不是属性。 例如“标准价格”,好像是产品维度
4、的一个属性,似乎是事先一致的常量,但每年对标准价格进行一、两次调整,因此应该设计成事实。 属性通常指文本字段,例如产品描述。 维度是类似于文本形式的属性组合,固定的数值型属性应放在维表中。 例如,零售数据仓库中,至少应有一个产品维度,一个商店维度,一个客户维,一个时间维,一个促销维。,3.星形模型设计,(2) 事实表的设计方法。 事实表是数据仓库中最大的表,在设计时,一定注意使事实表尽可能的小,因为过大的事实表在表的处理、备份和恢复、用户查询等方面要用较长的时间。具体方法主要有: 减少列的数量; 降低每列的大小; 把历史数据存档; 例如,零售营销事实表设计如下:,3.星形模型设计,(3) 维表
5、的设计。 维表的属性必须具有以下特征: 可用文字描述; 离散值; 有规定的约束; 在分析时可提供行标题。,3.星形模型设计,例:零售业营销分析的星型模型图。,4.雪花模型设计,雪花模型是对星形模型的扩展,每一个维度都可以向外连接多个详细类别表。 在这种模式中,维度表除了具有星形模型中维度表的功能外,还连接对事实表进行详细描述的详细类别表,详细类别表通过对事实表在有关维上的详细描述达到了缩小事实表和提高查询效率的目的。,4.基本雪花模型设计,在该模型中,将地理层次国家、区域和分区域嵌入到销售员维度,这样,公司的管理者想按照国家、区域、分区域和分区域内的销售员的层次关系来查看公司的销售情况。,4.
6、基本雪花模型设计,5.星形模型的优势,用户容易理解 优化浏览 在数据库模式中,表与表连接的目的在于寻找到需要的数据 如果连接的路径复杂,那么在数据库中浏览数据将是缓慢而艰难的 如果连接路径简单、直接,则浏览数据会更快 星型模型的优势之一在于它优化对数据库的浏览,5.星形模型的优势,最适于查询处理 星型模型是一种以查询为中心的结构 简单、清洗的连接路径以及星星模型本身的结构使得查询在维度表和事实表之间顺利、流畅、高效 星型连接和星型索引 星型连接是一种高速、并行、单独操作的多表的连接,可显著的提高查询性能 星型索引是一种专门的索引(建立在事实表的一个或多个外键上),提高维度表与事实表的连接速度,6.雪花模型的优势与劣势,优势: 减少存储空间 冗余减少了 规范化的结构更容易更新和维护 非规范化的数据结构存在插入、删除、更新等异常 劣势: 模式复杂,用户不易理解 浏览内容复杂 额外的连接使得查询性能下降 表多了,谢谢!,