32. 雪花模式 (Snowflake Schema)

  1. 分类映射:每个分类级别一张表(比如,商品,产品组,等)
  2. 维度表包含:
    • 分类节点的ID
    • 描述的属性(比如:市场,生产者,名称/标志)
    • 直属的更高分类层次的外键
  3. 事实表包括(除了变量):
    • 每个最低分类级别的外键
    • 外键构成事实表的复合主键

33. 星形模式 (Star Schema)

  1. 雪花模式是范化的:避免更新异常 → 3.NF

    • 但是,需要Join更多的表格
  2. 星形模式
    • 对属于一个维度的表格非规范化 → 1.NF
    • 对于一个维度刚好一个维度表
    • 维度表中的冗余可以较快查询处理
    • 比如:商品,产品,产品组等作为产品表的列

34. 星形模式 形式

  1. n维多维度模式

    • 维度表的形式
    • 带m个事实的事实表
  2. 事实表的组合主键的每个部分都是对应维度主键属性外键
  3. Oracle中CREATE DIMENSION 语句
    • 在SQL中外键约束是可表达的
    • 但是:维度内的属性之间的函数关系无法详细说明
    • Oracle拓展:CREATE DIMENSION
      • 保证”信息性“
      • DBS不会检测正确性
      • 对物化视图使用查询重写
  4. 关键字
    • LEVEL

      • 定义分类级别
    • HIERARCHZY
      • 确定分类级别的依赖性
    • ATTRIBUTE ... DETERMINTS
      • 定义分类属性和维度属性之间的依赖性
  5. CREATE DIMENSION示例
CREATE DIMENSION ProduktDimensionLEVEL Artikel IS (Produkt.P_ID)LEVEL Produktgruppe IS (Produkt.P_PGruppe_ID)LEVEL Produktkategorie IS(Produkt.P_Produktkategorie)
HIERARCHY ProduktHierarchie (Artikel CHILD OFProduktgruppe CHILD OFProduktkategorie)
ATTRIBUTE Artikel DETERMINES (P_Bezeichnung,P_Verkaufspreis, P_Einkaufspreis,P_Rabatt, P_Steuern)
ATTRIBUTE Produktgruppe DETERMINES(P_Produktgruppe)

35. Snowflake with CREATE DIMENSION

CREATE DIMENSION ProduktDimensionLEVEL Artikel IS (Produkt.P_ID)LEVEL Produktgruppe IS (Produktgruppe.PG_ID)
HIERARCHY ProduktHierarchie (Artikel CHILD OF Produktgruppe)
JOIN KEY (Produkt.P_PGruppe_ID)REFERENCES Produktgruppe

36. Star with CREATE DIMENSION

CREATE DIMENSION ZeitDimensionLEVEL Tag IS (Zeit.Z_Tag_ID)LEVEL Monat IS (Zeit.Z_Monat_ID)LEVEL Jahr IS (Zeit.Z_Jahr_ID)
HIERARCHY ZeitHierarchie (Tag CHILD OF Monat CHILD OF Jahr)
ATTRIBUTE Tag DETERMINES (Z_Tag)
ATTRIBUTE Monat DETERMINES (Z_Monat)
ATTRIBUTE Jahr DETERMINES (Z_Jahr)

37. 对比星形模式和雪花模式

  1. 数据仓库应用的特性

    • 在查询更高粒度等级上典型的限制(Join操作)
    • 相较于事实表,维度表少量的数据量
    • 分类极少更改(更新异常的危险)
  2. 星形模式的优点
    • 简单的结构(简化查询公式/语句)
    • 分类层次结构的简单和灵活的表达(维度表的列)
    • 一个维度内的有效的查询处理(没有Join操作的必要性)

38. 假设考虑成本

  1. n维(),每第K分类级别加上Top
  2. 每个分类节点有三个孩子
    • 级别  个节点(Top)
    • 级别  个节点
    • 级别  个节点
    • ...
    • 级别 i = 0 :最高的粒度,个节点
    • 每个维度的节点
  3. M个事实,在维度中均匀分布
  4. 属性:b Bytes: 节点只有ID: m 事实属性

39. 完整的分类层次结构

  • 对于每个节点都有一样多的事实

40. 星形模式与雪花模式查询开销的对比

  • 雪花模式的存储空间:

    • n 事实表中外键的数量
    • m 事实属性的数量
    •  每个分类节点一个元组
  • 星形模式的存储空间:
    •  每个分类节点Level 0 一个元组
    • K 每个分类级别一个属性

(图片内容来自源PPT文件, 版权归原作者所有)

41. 星形模式和雪花模式的查询

  • 查询:对于产品组”红酒“每个城市和年份下的销售情况
  • 雪花模式
    • SELECT S_Name, YEAR(Z_Datum), SUM(V_Anzahl)
      FROM Verkauf, Filiale, Stadt, Produkt, Produktgruppe, Zeit
      WHERE V_Produkt_ID = P_ID ANDP_PGruppe_ID = PG_ID ANDV_Filial_ID = F_ID ANDF_Stadt_ID = S_ID ANDV_Zeit_ID = Z_ID ANDPG_Bezeichnung = ’Wein’
      GROUP BY S_Name, YEAR(Z_Datum)
    • Joins的数量: 5(随着聚合路径的数量线性增长)
  • 星形模式
    • SELECT O_Stadt, YEAR(Z_Datum), SUM(V_Anzahl)
      FROM Verkauf, Ort, Produkt, Zeit
      WHERE V_Produkt_ID = P_ID ANDV_Zeit_ID = Z_ID ANDV_Ort_ID = O_ID ANDP_Produktgruppe = ’Wein’
      GROUP BY O_Stadt, YEAR(Z_Datum)
    • Joins的数量:3(与聚和路径的长度无关)

42. 混合形式

  • 单个维度的构成类似于雪花模式或者星形模式
  • 选择标准:
    1. 维度的更改频率

      • 通过范式化减少维护的工作量(雪花模式)
    2. 一个维度中分类级别的数量
      • 越多分类级别 → 星形模式中越多的冗余
    3. 维度元素的数量
      • 通过对处于较低分类级别的维度上的大量元素范式化节省资源
    4. 聚合物化
      • 通过对一个分类级别上的物化聚合进行范式化提高执行效率

43. 银河模式(Galaxie-Schema)

  • 星形-和雪花模式

    • 一个事实表
    • 只可能在同样的维度上有多个特征值
  • 银河模式
    • 多个事实表
    • 部分关联到相同的维度表
    • 也:多事实表模式,多立方体,超级立方体
  • 银河模式:模型

(图片内容来自源PPT文件, 版权归原作者所有)

示例:

(图片内容来自源PPT文件, 版权归原作者所有)

44. 分类层次结构的介绍

  • 水平:将分类层次结构的级别建模为非范式化维度表的列

    • 优点:

      • 不含有Join的较高粒度的约束
    • 缺点
      • 查询某些级别时消除重复(比如:一个类别之内的产品组)
      • 添加新级别的时候更改模式
Produkt_ID Artikel Produktgruppe Produktkategorie
1234 IU Hy Ko
1235 Pu Hy Ko
2345 Ro Re Ha
  • 垂直(递归):范式化带属性的维度表

    • Dimensions_ID :事实表的键
    • Eltern_ID:下一更高级别Dimensions_ID的属性值
    • 优点:
      • 轻松的更改分类模式
      • 容易处理预计算聚合
    • 缺点:
      • 为单个级别查询Self-Join(比如:一个类别之内的产品组)
Dimensions_ID Eltern_ID
IU Hy
Hy Ko
Pu Hy
  • 合并:关联两种策略

    • 使用列代表分类级别(但只适用一般性关系)
    • 存储所有较高级别的节点作为元组
    • 附加一类属性”Stufe“(级别) → 描述特定的分类级别
Dimensions_ID Stufe1_ID Stufe2_ID Stufe
IU Hy Ko 0
Pu Hy Ko 0
Hy Ko Null 1
Ko Null Null 2

45.避免语义丢失

  • 关系映射中的语义丢失

    • 特征值和维度之间的区别(事实表的属性)
    • 维度表的属性(层次结构的描述,搭建)
    • 维度的搭建(Drill-路径)
  • 方法:
    • 为多维度应用的元数据拓展系统目录
    • 示例:Oracle中的CREATE DIMENSION, HIERARCHY

46. 关系实现的问题

  1. 将多维查询转换为关系表达是有必要的 → 复杂查询
  2. 使用复杂的查询工具是有必要的(OLAP-工具)
  3. 语义丢失
  4. 因此:直接多维存储

47. 缓慢改变维度

  1. 历史化:属性表达,关系和实体随着时间的改变
  2. 维度中的结构改变
  3. 维度中的模式改变
  4. 对分析的影响

(图片内容来自源PPT文件, 版权归原作者所有)

48. 分析要求

  1. 根据现有结构:as is
  2. 根据定义的历史结构:as of
  3. 根据历史事实:as posted
  4. 可对比结果

(图片内容来自源PPT文件, 版权归原作者所有)
  • 右侧事实表,左侧产品维度在2010和2011的产品和其对应的产品组
  • 报表要求(根据事实表和维度表获取的下表)

(图片内容来自源PPT文件, 版权归原作者所有)
  • 特别注意:”对比结果“的计算方法是,统计维度表中没有随着时间而改变的项目。

49. 实现

  • 将历史数据资料调整为新结构的小型数据集,但是旧结构不再可用
  • 历史数据库的分离存储附加在新结构上,为用户提供大量数据和复杂性,但是旧结构可以被检索
  • 建立具有所有结构的并行层次结构,维度结构复杂,可能进行任意报告
  • 有效性标记任何可检索到的结构,但是会出现性能问题

50. 场景

  • ”As is“场景

    • 容易实现
    • 不存在历史
    • 只提供给”as is“

(图片内容来自源PPT文件, 版权归原作者所有)
  • ”as is“ & quasi ”as of“场景

    • 更高的存储需求
    • 没有时间顺序的历史
    • 对应于并行层次结构

(图片内容来自源PPT文件, 版权归原作者所有)
  • ”as is“ & ”as of“场景

    • 较高存储需求
    • 没有时间顺序的历史
    • 必要的人工维度键

(图片内容来自源PPT文件, 版权归原作者所有)
  • ”as is“ & ”as of“场景:时间戳

    • 更高的存储需求
    • 带时间顺序的历史
    • 必要的人工维度键(或者复合键)
    • 事实联结Getraenk_ID

(图片内容来自源PPT文件, 版权归原作者所有)
  • ”as posted“场景

    • 更高的存储需求
    • 事务时间点的历史
    • 必要的人工维度键(或者复合键)
    • 事实联结G_ID_alt

(图片内容来自源PPT文件, 版权归原作者所有)
  • ”as is“ & ”as of“ & ”as posted“场景: 快照

    • 维度表和事实表更高的存储需求
    • 当前分配的标志
    • 人工加载时间点数据
    • 仅仅为小维度推荐值

(图片内容来自源PPT文件, 版权归原作者所有)

总结

  • 多维度数据模型

    • 立方体,特征值,维度
    • OLAP操作
  • 概念建模技术
    • 没有类似ER模型的标准
    • 多维概念的专用结构
  • 多维模型的实现
    • 关系:星形模式和雪花模式
    • 混合模式
    • 避免语义丢失

数据仓库技术(Data Warehouse Technologien) 第三章节 多维数据模型(3)相关推荐

  1. 大数据-数据仓库(Data Warehouse):概述【面向主题的、集成的、相对稳定的、反映历史变化的数据集合;是一个数据处理过程(清洗、转义、分类、重组、合并、拆分、统计等)】

    一.数据仓库介绍 1.数据仓库概念 数据仓库概念创始人在<建立数据仓库>一书中对数据仓库的定义是:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented ...

  2. 大数据开发---数据仓库技术

    1.什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它出于分析性报告和决策支持目的而创 ...

  3. 数据仓库技术的发展历程

    定义 数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境.数据仓库研究和解决从数据库中获取信息的问题.数据仓库的特征在于面向主题.集成性.稳定性和时变性. 数据仓库之父Bill In ...

  4. 大数据开发实战:数据仓库技术

    1.OLTP和OLAP OLTP的全称是 Online Transaction Processing, OLTP主要用传统的关系型数据库来进行事务处理.OLTP最核心的需求是单条记录的高效快速处理,索 ...

  5. 《数据仓库与数据挖掘教程》ch01绪论 章节整理

    数据仓库概述 从传统数据库到数据仓库 计算机数据处理有两种主要方式 事务型处理 分析型处理 传统数据库与事务处理 传统数据库是长期存储在计算机内的.有组织的.可共享的数据集合 有严格的数学理论支持,并 ...

  6. 电子商务中的数据仓库技术

    电子商务中的数据仓库技术 Data Warehousing for E-Business W.H. Inmon 1 电子商务的基于和挑战 ERP CRM EAI,数据仓库工程 挑战:数据量.数据周转速 ...

  7. 【商务智能】数据仓库 ( 多维数据模型 | 多维数据分析 )

    商务智能系列文章目录 [商务智能]数据预处理 [商务智能]数据仓库 ( 多维数据模型 | 多维数据分析 ) 文章目录 商务智能系列文章目录 前言 一.数据仓库 与 传统数据库 区别 二.数据仓库系统体 ...

  8. 一文搞懂什么是数据仓库(Data Warehouse)数据仓库与数据库区别有哪些?什么是元数据?

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 前期回顾 ...

  9. TDW(Tencent Data Warehouse)之hive简介

    1.     基本概念 Hive是由Facebook在2007年8月开始开发,并于2008年8月开源(https://issues.apache.org/jira/browse/HADOOP-3601 ...

  10. ETL(数据仓库技术)

    ETL(数据仓库技术) ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过萃取(extract).转置(transform).加载(load)至目的端的过程. ...

最新文章

  1. 1、Android测试入门
  2. GridView实现自动编号
  3. 解决git bash闪退问题
  4. python基础内容_python基础-python介绍
  5. BLE-NRF51822教程1-常用概念
  6. 虚拟化精华问答 | 什么是虚拟化?
  7. 信息学奥赛一本通 1208:2的幂次方表示 | OpenJudge 2.2 8758:2的幂次方表示 | 洛谷 P1010 [NOIP1998 普及组] 幂次方
  8. 79-Spark Standalone架构设计要点分析
  9. Android学习笔记---09_深入了解各种布局技术
  10. 《数字图像处理》--冈萨雷斯(第十章)
  11. 阿里云maven仓库地址
  12. 【笔记】排列组合公式、二项式定理
  13. A Comprehensive Measurement Study of Domain Generating Malware 原文翻译
  14. python基础之字符串(七)
  15. Work Tasks
  16. Ubuntu 登录界面键盘鼠标失效的解决方案
  17. 计算机网络之Dos、DDos攻击
  18. 修改oracle nls_language
  19. 汉诺塔(hanoi tower)游戏
  20. 快速生成 HTML 表格代码

热门文章

  1. memcmp的用法 详讲
  2. 底部的footer导航栏被手机虚拟键盘顶起来如何解决
  3. 30分钟了解PAC学习理论——计算学习理论第一讲
  4. 〖Python零基础入门篇㊿〗- Python中的 sys 模块
  5. 查看漏洞库平台有哪些?
  6. 爬取京东收件地址下得所有数据
  7. Excel VBA为表格设置“打开文件密码”
  8. HDU4609 3-idiots(母函数 + FFT)
  9. 北德克萨斯大学计算机系,美国北德克萨斯大学计算机科学与工程系主任Barrett Bryant访问昆明理工大学...
  10. 提升数据驱动能力的意义