Star Schema完全参考手册学习笔记七
维度模型描述了人们对所处世界的度量。正如前面章节所强调的那样,每个星型模式都包含一个事实表,作为描述特定过程的度量。度量又称事实,通过相关的维度获得存在的环境。事实表的粒度描述了所记录的事实的细节层次。
为便于独立地分析研究,应为每个过程建立一个事实表,但并不是每个事实表都只对应一个过程。过程模型用于描述业务活动,指导对功能组件的设计。过程建模涉及功能分解,即一个过程可以被分解成多个子过程。当两个事实对事件的描述不在同一个时间点上,或者描述的粒度不同时,它们描述的就是不同的过程。如果希望对不同的过程进行分析,就需要多个事实表。
代理键通常都没有实际意义。当采用单一事实表表示多个过程时,在报表中出现包含0值的事实是常见的现象。单一事实表方案可以是记录一个常用的事实,通过建立一个新的维度来判定它是表示一个订单还是表示一次发货。使用该技术可以解决出现0值行的问题,因为每行要么是订单,要么是发货。采用具有共享维度的不同事实表表示两个过程,可以使每个事实表仅存储适当的事实,不需要记录无用的0行。
当描述事件的两个或多个事实具有不同的粒度时,它们描述的是不同的过程。将它们放入同一个事实表中不利于对单一过程的分析工作。当存在多个业务过程且需要对每个过程单独分析时,为每个过程建立一个事实表非常重要。否则,对独立过程的分析将存在严重的问题。
可以认为维度表和事实表具有父子关系,其中维度表可视为父子关系中的父节点。如果某个维度与多个事实表关联,事实表中的行可视为具有兄弟关系。它们具有相同的父节点。当某条SQL语句试图对兄弟行执行连接操作时,要么直接执行操作,要么通过它们共同的父节点执行操作,关系数据库管理系统会把一张表的子节点与其他表中相应的兄弟节点进行匹配。获得的结果是笛卡尔乘积。当直接对两个事实表或者通过两个事实表的公共维度执行连接操作时,就会得到这样的结果。
不要试图对事实表进行连接操作,无论是直接操作还是通过维度表操作。对事实表的连接操作将会产生不正确的结果。
Star Schema完全参考手册学习笔记七相关推荐
- Star Schema完全参考手册学习笔记九
本博客主要就维度一致性进行总结. 维度一致性的基本需求 为支持成功的横向钻取对比,必须保证维度表的一致性,可以通过保证两个表相同的方法来解决.对于相同性涉及两个关键的部分:两个表必须结构相同且内容相同 ...
- Star Schema完全参考手册学习笔记六
本博客就第三章的相关知识点做最后的总结. 本章讨论了星型模式的基本特性.这一主题可以分为4类: 维度表 1.维度表包含自然键和代理键.允许分析模式独立地跟踪源系统的历史. 2.维度表包含众多属性.丰富 ...
- Star Schema完全参考手册读书笔记八
本博客主要对书中横向钻取进行归纳总结. 横向钻取: 与对数据的上钻或下钻操作无关,它描述的是跨越一个星型模式到另外一个星型模式的步骤.该术语意在描述跨多个过程. 尽管横向钻取操作通常被称为横向钻取查询 ...
- Star Schema完全参考手册读书笔记五
本博客就第三章缓慢变化维和多维数据集的有关知识进行总结. 缓慢变化维 采用维度设计方案时,确定数据源的变化情况在维度表中如何表示非常重要.这一现象称为缓慢变化的维度,简称缓慢变化维.该术语的名称反映了 ...
- Star Schema完全参考手册读书笔记四
本博客主要内容为对书中第三章事实表特性的知识的总结. 事实表特性主要包括粒度.可加性.稀疏性和退化维. 事实表特性 事实分为可加事实,半可加事实和非可加事实. 每个事实表通过获取描述业务过程的度量来表 ...
- Star Schema完全参考手册读书笔记三
本博客重点总结第三章基本原理中的维度表特性. 维度表特性 代理键 星型模式中,每个维度表都分配有一个代理键.代理键仅仅是为数据仓库和数据集市创建的.代理键通常表现为整数,在星型模式加载时的获取.转换. ...
- Star Schema完全参考手册读书笔记二
本博客继续就书中的一些术语和概念进行总结. 数据仓库体系结构 数据仓库描述任何包含分析型数据库的解决方案,包括独立型数据集市.该术语并不表示一个中心或集成仓库. 企业数据仓库指的是企业信息化工厂的中央 ...
- Star Schema完全参考手册读书笔记一
分析型数据库与维度设计 本章主要讲述星型模式中的一些基本概念,具体如下文. 为业务过程度量建模可以实现分析型数据库设计复杂的业务分析工作.业务过程的维度模型由两个组件构成:度量和度量环境.这些组件也称 ...
- 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码
吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...
最新文章
- sqlserver 自增ID插入指定数据
- angular学习笔记(十三)
- 【超级经典】程序员装B指南(转)
- 利用多线程实现报表的高效导出
- Andoird --- 安卓 failed to connect to /192.168.0.135 (port 8080) after 1000ms
- [react] 你觉得react上手快不快?它有哪些限制?
- NS3 MyApp Class Reference
- python中list是链表吗_Python
- iSCSI客户端配置
- 关于cnt++和++cnt
- 如何创建管道——pipe
- MySQL数据库【习题训练】②
- java entity tostring_EntityUtils.toString(entity)处理字符集问题解决
- python tushare获取股票数据_python调用tushare获取沪股通、深股通成份股数据
- 一不小心就四个月的实习总结。。。
- Eureka 整合 Ribbon 巨坑解决方案
- 没有 Nginx 的未来,Cloudflare 工程师正在用 Rust 重构代码!
- HUAWEI-ECS常用运维工具(干)
- Python量化交易03——海龟策略
- 核算系统-计息、还款规则
热门文章
- Android精讲--界面编程2(布局管理器)
- mysql查询当天数据(上周、本月、上个月、距离当前现在6个月的数据)
- 【Step1】【二分图匹配】poj 1274-The Perfect Stall
- BZOJ 2631 tree(动态树)
- 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) C. XOR Equation 数学
- [算法] 十个经典排序算法
- POJ - 2485(最小生成树.prime)
- CentOS下安装Orcale
- Color.js增强你对颜色的控制
- 自定义View/ViewGroup的步骤和实现