精华内容
下载资源
问答
  • 星型模型和雪花模型 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。...

    星型模型和雪花模型

    在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。


    星型模型

    当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型。

    星型模型

     

    星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余,如在地域维度表中,存在国家A 省B的城市C以及国家A省B的城市D两条记录,那么国家A和省B的信息分别存储了两次,即存在冗余。


    雪花模型

    当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的" 层次" 区域,这些被分解的表都连接到主维度表而不是事实表。如图所示,将地域维表又分解为国家,省份,城市等维表。它的优点是:通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。

    雪花模型

     

    星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高。星型结构不用考虑很多正规化的因素,设计与实现都比较简单。雪花型模型由于去除了冗余,有些统计就需要通过表的联接才能产生,所以效率不一定有星型模型高。正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的 ETL、以及后期的维护都要复杂一些。因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。


    星型模型 和 雪花模型 对比

    星形模型和雪花模型是数据仓库中常用到的两种方式,而它们之间的对比要从四个角度来进行讨论。

     

    1. 数据优化

    雪花模型使用的是规范化数据,也就是说数据在数据库内部是组织好的,以便消除冗余,因此它能够有效地减少数据量。通过引用完整性,其业务层级和维度都将存储在数据模型之中。

     

    雪花模型

     

    相比较而言,星形模型使用的是反规范化数据。在星形模型中,维度直接指的是事实表,业务层级不会通过维度之间的参照完整性来部署。

    星形模型

     

    2. 业务模型

    • 主键是一个单独的唯一键(数据属性),为特殊数据所选择。在上面的例子中,Advertiser_ID就将是一个主键。外键(参考属性)仅仅是一个表中的字段,用来匹配其他维度表中的主键。在我们所引用的例子中,Advertiser_ID将是Account_dimension的一个外键。在雪花模型中,数据模型的业务层级是由一个不同维度表主键-外键的关系来代表的。而在星形模型中,所有必要的维度表在事实表中都只拥有外键。

    3. 性能

    • 第三个区别在于性能的不同。雪花模型在维度表、事实表之间的连接很多,因此性能方面会比较低。举个例子,如果你想要知道Advertiser 的详细信息,雪花模型就会请求许多信息,比如Advertiser Name、ID以及那些广告主和客户表的地址需要连接起来,然后再与事实表连接。
    • 而星形模型的连接就少的多,在这个模型中,如果你需要上述信息,你只要将Advertiser的维度表和事实表连接即可。

    4. ETL

    • 雪花模型加载数据集市,因此ETL操作在设计上更加复杂,而且由于附属模型的限制,不能并行化。
    • 星形模型加载维度表,不需要再维度之间添加附属模型,因此ETL就相对简单,而且可以实现高度的并行化。

    总结

    • 雪花模型使得维度分析更加容易,比如“针对特定的广告主,有哪些客户或者公司是在线的?”
    • 星形模型用来做指标分析更适合,比如“给定的一个客户他们的收入是多少?”

     

     

    经典建模方法论:三范式建模

    第一范式(1NF):每一列都是不可分割的原子数据项

    (像下面的表格就能分割,所以它连第一范式都算不上)

     

    分割后的样子(本表就符合了第一范式)

     

    第二范式:在1NF基础上,非码属性必须完全依赖于主码

    (在1NF基础上消除非主属性对主码的部分函数依赖

    在上面那张表中主码为:学号+课程名称,但是姓名、系名、系主任都部分依赖于主码,这不符合第二范式,所以进行拆分如下

     

    第一张表主码为:学号、课程名称

    第二张表主码为:学号

    它们都是完全依赖的,因此符合第二范式。

     

    第三范式(3NF):在2NF的基础上,任何的非主属性不依赖于其他非主属性

    (在第二范式基础上消除传递依赖

      注意看第二范式的学生表:存在系主任依赖于系名 (系名---> 系主任),所以不符合第三范式

    继续进行拆分

     

    展开全文
  • 雪花模型星型模型和星座模型的区别 星型模型和雪花模型的主要区别在于维度表的拆分, 对于雪花模型维度表的设计更加规范,一般符合3NF 对于星型模型来说,一般采用降维的操作,减少数据冗余,提高易用性和分析...

    雪花模型、星型模型和星座模型的区别

    星型模型和雪花模型的主要区别在于维度表的拆分,

    对于雪花模型维度表的设计更加规范,一般符合3NF
    对于星型模型来说,一般采用降维的操作,减少数据冗余,提高易用性和分析效率
    在这里插入图片描述
    在这里插入图片描述

    雪花、星型模型对比

    1. 冗余:雪花模型符合业务逻辑设计,采用3NF设计,有效降低数据冗余;星型模型的维度表设计不符合3NF,反规范化,维度表之间不会直接相关,牺牲部分存储空间
    2. 性能:雪花模型由于存在维度间的关联,采用3NF降低冗余,通常在使用过程中,需要连接更多的维度表,导致性能偏低;星型模型反三范式,采用降维的操作将维度整合,以存储空间为代价有效降低维度表连接数,性能较雪花模型高
    3. ETL:雪花模型符合业务ER模型设计原则,在ETL过程中相对简单,但是由于附属模型的限制,ETL任务并行化较低;星型模型在设计维度表时反范式设计,所以在ETL过程中整合业务数据到维度表有一定难度,但由于避免附属维度,可并行化处理
    展开全文
  • 当今数据仓库建模主要分为两类:范式建模和维度建模 ...实际应用中一般是范式建模和维度建模相结合,这里讲下维度模型下的两个主要分类:雪花模型和星型模型 星型模型:由一个事实表和一组维表直接组...

    当今数据仓库建模主要分为两类:范式建模和维度建模

    范式建模是基于三范式标准进行建模,好处是高度集成,易于管理和维护,但坏处是结构死板,周期过长

    维度建模是依据事实表和维度表结合应用所产生的一种模型结构,好处是构建迅速,最快看到回报,坏处是不好维护,结构复杂

    实际应用中一般是范式建模和维度建模相结合,这里讲下维度模型下的两个主要分类:雪花模型和星型模型

    星型模型:由一个事实表和一组维表直接组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的外键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表,优点是所有字段均已连接,方便OLAP,缺点是数据可能会造成冗余;

    图片来自于百度百科

     

    雪花模型:事实表与一组维度表组成,但维度表不一定全部直接关联于事实表,形状如雪花一样,好处是数据不会冗余,坏处是数据关联join太多,不利于OLAP。

    图片来自于百度百科

     

    通俗区别:看是否所有的维度表都全部直接关联在事实表上,如果是则为星型,反之为雪花。简单来说星型模型是明细表,雪花模型是主表

    属性 星型模型 雪花模型
    数据总量
    可读性 容易
    表个数
    查询速度
    冗余度
    对实时表的情况 增加宽度 字段比较少,冗余底
    扩展性

    实际应用:由于雪花模型不利于OLAP,所以实际项目中在数据冗余可接受的情况下一般选择星型模型

    展开全文
  • 在数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解这两种模型的概念。 (一)星型模型图示如下: 星型模是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表...

    转自:https://blog.csdn.net/u010454030/article/details/74589791
    在数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解这两种模型的概念。

    (一)星型模型图示如下:

    星型模是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。

    (二)雪花模型图示如下:

    当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。雪花模型更加符合数据库范式,减少数据冗余,但是在分析数据的时候,操作比较复杂,需要join的表比较多所以其性能并不一定比星型模型高。

    (三)星型模型和雪花模型的优劣对比:

    属性 星型模型 雪花模型
    数据总量 多 少
    可读性 容易 差
    表个数 少 多
    查询速度 快 慢
    冗余度 高 低
    对实时表的情况 增加宽度 字段比较少,冗余底
    扩展性 差 好
    (四)应用场景

    星型模型的设计方式主要带来的好处是能够提升查询效率,因为生成的事实表已经经过预处理,主要的数据都在事实表里面,所以只要扫描实时表就能够进行大量的查询,而不必进行大量的join,其次维表数据一般比较少,在join可直接放入内存进行join以提升效率,除此之外,星型模型的事实表可读性比较好,不用关联多个表就能获取大部分核心信息,设计维护相对比较简答。

    雪花模型的设计方式是比较符合数据库范式的理念,设计方式比较正规,数据冗余少,但在查询的时候可能需要join多张表从而导致查询效率下降,此外规范化操作在后期维护比较复杂。

    (五)总结

    通过上面的对比,我们可以发现数据仓库大多数时候是比较适合使用星型模型构建底层数据Hive表,通过大量的冗余来提升查询效率,星型模型对OLAP的分析引擎支持比较友好,这一点在Kylin中比较能体现。而雪花模型在关系型数据库中如MySQL,Oracle中非常常见,尤其像电商的数据库表。在数据仓库中雪花模型的应用场景比较少,但也不是没有,所以在具体设计的时候,可以考虑是不是能结合两者的优点参与设计,以此达到设计的最优化目的。

    作者:葬月魔帝
    来源:CSDN
    原文:https://blog.csdn.net/u010454030/article/details/74589791
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 维度模型是一种趋向于支持最终用户对数据仓库进行查询的设计技术,是围绕性能易理解构建的。尽管关系模型对于事务处理系统表现非常出色,但它并不是面向最终用户的。 事实维度是两个维度模型中的核心概念。事实...
  • 理解数据仓库中星型模型和雪花模型 原创三劫散仙 最后发布于2017-07-06 18:32:27 阅读数 18910 收藏 展开 在数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解这两种模型...
  • 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,可将常见的模型分为星型模型和雪花模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花模型进行组织。 星型模型 当所有维表都...
  • 星型模型雪花模型、3NF、OLAP

    千次阅读 2020-02-03 17:45:04
    在关系型数据库管理系统中实现的维度模型称为星型模型,其中每个维度表都直接事实表连接,数据存在冗余。 星型模型的两个关键部件 1、 事实表 事实表存储组织业务过程事件的性能度量结果。来源于同一个业务过程的...
  • 星型模型雪花模型

    千次阅读 2014-05-29 19:51:52
    星型模式 vs 雪花模型多维数据建模以直观的方式组织数据,并支持高性能的数据访问。每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表一组维表组成的。多维模型最常见的是星形模式。...
  • 星型模型vs雪花模型

    2019-07-24 14:30:07
  • 在数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解两种模型的概念。 星型模型图如下: 星型模型:是一种使用关系型数据库实现多维度分析空间的模式,用星型模型可以...
  • 数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解这两种模型的概念。 一.销售数据仓库星型模型如下: 星型模是一种多维的数据关系,它由一个事实表和一组维表组成。...
  • 2.1 维度模型 2.1.1 星型模型 2.1.2 雪花模型 2.1.3星座模型 2.2 范式模型 2.3 Data Vault模型 2.4 Anchor模型
  • 根据事实表和维度表的关系,可将常见的模型分为星型模型和雪花模型。在数据仓库的建设中,一般都会围绕着这两种模型来设计表关系或者结构。那么什么是事实表和维度表呢?在维度建模中,将度量称为“事实” ,将环境...
  • 什么是雪花模型

    千次阅读 2019-02-12 15:27:20
    “Snowflaking”是一种在星型模型中规范化维度表的方法。 当它沿着所有维度表完全标准化时,结果结构类似于雪花,其中事实表位于中间。雪花背后的原理是通过删除低基数属性形成单独的表来对维度表进行规范化。 ...
  • 数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取信息和知识。 从功能结构划分,数据仓库系统至少应该包含数据获取(Data ...
  • 星型模式 vs 雪花模型

    2016-04-06 14:00:18
    多维数据建模以直观的方式组织数据,并支持高性能的数据访问。...在星型的基础上,发展出雪花模式,下面就二者的特点做比较。   星型模式 位于星形中心的实体是指标实体,是用户最关心的基本实体查询活动的中
  • 多维数据建模以直观的方式组织数据,并支持高性能的数据访问。每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表一组维表组成的...一、星型模型  位于星形中心的实体是指标实体,是用
  • 转载:数据仓库中的星型模型和雪花模型 https://cloud.tencent.com/developer/article/1122464 一、星形表 事实表和一组维表构成,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,237
精华内容 494
关键字:

范式雪花模型和星型模型