数据仓库建模,星型模型大致了解,就是事实表对应许多维表;对雪花型模型就不是很理解了,哪位同学能举个简单的例子说明一下,什么叫雪花模型?文字描述即可,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 13:19:16

数据仓库建模,星型模型大致了解,就是事实表对应许多维表;对雪花型模型就不是很理解了,哪位同学能举个简单的例子说明一下,什么叫雪花模型?文字描述即可,
数据仓库建模,星型模型大致了解,就是事实表对应许多维表;对雪花型模型就不是很理解了,哪位同学能举个简单的例子说明一下,什么叫雪花模型?文字描述即可,

数据仓库建模,星型模型大致了解,就是事实表对应许多维表;对雪花型模型就不是很理解了,哪位同学能举个简单的例子说明一下,什么叫雪花模型?文字描述即可,
详细和你说一下星型模型和雪花模型
  星型模式 vs 雪花模型多维数据建模以直观的方式组织数据,并支持高性能的数据访问.每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表和一组维表组成的.多维模型最常见的是星形模式.在星形模式中,事实表居中,多个维表呈辐射状分布于其四周,并与事实表连接.在星型的基础上,发展出雪花模式,下面就二者的特点做比较.星型模式位于星形中心的实体是指标实体,是用户最关心的基本实体和查询活动的中心,为数据仓库的查询活动提供定量数据.每个指标实体代表一系列相关事实,完成一项指定的功能.位于星形图星角上的实体是维度实体,其作用是限制用户的查询结果,将数据过滤使得从指标实体查询返回较少的行,从而缩小访问范围.每个维表有自己的属性,维表和事实表通过关键字相关联.星形模式虽然是一个关系模型,但是它不是一个规范化的模型.在星形模式中,维度表被故意地非规范化了,这是星形模式与OLTP系统中的关系模式的基本区别.使用星形模式主要有两方面的原因:提高查询的效率.采用星形模式设计的数据仓库的优点是由于数据的组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大的表联接起来,查询访问效率较高.同时由于维表一般都很小,甚至可以放在高速缓存中,与事实表作连接时其速度较快;便于用户理解.对于非计算机专业的用户而言,星形模式比较直观,通过分析星形模式,很容易组合出各种查询.总结:非正规化;多维数据集中的每一个维度都与事实表连接(通过主键和外键);不存在渐变维度;有冗余数据;查询效率可能会比较高;不用过多考虑正规化因素,设计维护较为简单.
  雪花模式 在实际应用中,随着事实表和维表的增加和变化,星形模式会产生多种衍生模式,包括星系模式、星座模式、二级维表和雪花模式.雪花模式是对星形模式维表的进一步层次化,将某些维表扩展成事实表,这样既可以应付不同级别用户的查询,又可以将源数据通过层次间的联系向上综合,最大限度地减少数据存储量,因而提高了查询功能.雪花模式的维度表是基于范式理论的,因此是界于第三范式和星形模式之间的一种设计模式,通常是部分数据组织采用第三范式的规范结构,部分数据组织采用星形模式的事实表和维表结构.在某些情况下,雪花模式的形成是由于星形模式在组织数据时,为减少维表层次和处理多对多关系而对数据表进行规范化处理后形成的.雪花模式的优点是:在一定程度上减少了存储空间;规范化的结构更容易更新和维护.同样雪花模式也存在不少缺点:雪花模式比较复杂,用户不容易理解;浏览内容相对困难;额外的连接将使查询性能下降.在数据仓库中,通常不推荐“雪花化”.因为在数据仓库中,查询性能相对OLTP系统来说更加被重视,而雪花模式会降低数据仓库系统的性能.总结:正规化;数据冗余少;有些数据需要连接才能获取,可能效率较低;规范化操作较复杂,导致设计及后期维护复杂;实际应用中,可以采取上述两种模型的混合体:如:中间层使用雪花结构以降低数据冗余度,数据集市部分采用星型以方便数据提取及和分析.
  有时候规范化和效率是一组矛盾.一般我们会采取牺牲空间(规范化)来换取好的性能,把尽可能多的维度信息存在一张“大表”里面是最快的.通常会视情况而定,采取折中的策略.
  星型有时会造成数据大量冗余,并且很有可能将事实表变的及其臃肿(上百万条数据×上百个维度).
  每次遇到需要更新维度成员的情况时,都必须连事实表也同时更新.
  而雪花型,有时只需要更新雪花维度中的一层即可,无需更改庞大的事实表.
  具体问题具体分析,如时间维度,年,季就没必要做雪花,而涉及到产品和产品的分类,如果分类信息也是我们需要分析的信息,那么,我肯定是建关于分类的查找表,也就是采用雪花模式
  雪花型结构是一种正规化结构,他取除了数据仓库中的冗余数据.比如有一张销售事实表,然后有一张产品维度表与之相连,然后有一张产品类别维度表与产品维度表连.这种结构就是雪花型结构.雪花型结构取除了数据冗余,所以有些统计就需要做连接才能产生,所以效率不一定有星型架构高.正规化也是一种比较复杂的过程,相应数据库结构设计、数据的ETL、以及后期的维护都要复杂一些.
  星型架构是一种非正规化的结构,多维数据集中的每一个维度都与事实表相连接,不存在渐变维度,所以数据有一定的冗余,正因为数据的冗余所以很多统计查询不需要做外部的连接所以一般情况下效率比雪花型要高.星型结构不用考虑很多正规化的因素,设计与实现都比较简单.
  虽然两种结构有一定差别,我个人认为没有好坏之分,最主要的还是看项目的需求,看业务逻辑.