N1. 分析型数据库与维度设计
一. 维度设计
从业务过程的角度考虑,信息系统可以划分为两个主要的类别:一类用于支持过程的执行:另一类用于支持业务过程的分析.维度设计的理念直接来源于分析型系统特有的需求.每个维度模型的核心都是业务度量的集合,业务度量反映了对业务过程的评价,并描述各种度量的环境.
操作型系统直接支持业务过程的执行,它通过获取有意义的事件和事务的细节来构建业务活动的记录,例如是人力资源系统需要获得雇员雇用和升迁的信息,财务系统需要获得关于企业的金融资产和债务的信息.由这些系统记录的活动通常被称为事务,而这类系统本身通常称之为联机事务处理系统.在关系数据库设计领域,广泛使用并被大家认可的最佳的操作系统的模式方法是第三范式.这种设计方法采用实体-关系模型进行描述,实体-关系模型通常简称为E-R模型.与其他合适的数据库技术相结合,这种设计方法可以高性能地,以保持一致性和可预测的方式完成对原子事务的插入,更新和删除操作
与操作型系统的交互只需要关注业务过程执行不同,分析型系统主要支持对业务过程的评价.本月订单的趋势与上个月相比有何不同?与本季度的目标相比,这种趋势说明什么问题?某一市场营销策略对销售有何影响?….这些问题涉及对整个订单流程的度量,无法从单个的订单钟获得答案
Untitled.png (1135×477) (amazonaws.com)
操作型和分析型系统的主要差别
度量和环境
维度设计的基本原则非常简单.维度设计支持对业务过程的分析,这是通过对业务过程度量进行建模来实现的.在缺乏应用环境的情况下,度量没有任何意义.与度量类似,环境通常也反应在业务或报表中.度量和环境这两个简单概念构成了维度设计的基础,,所有的维度设计方案对业务过程的描述都是通过获取度量内容和度量所在环境来构建的
事实和维度
在维度设计中,将度量称为事实,将环境描述成维度.在开展维度设计时,需要将信息需求分类到事实和维度中.具体的分类方法是从需求陈述或问题,以及报表中获取分类依据.在理解了如何发现分类的依据后,将信息需求分类到事实和维度的工作将非常简单
- 通过对语言描述的分析来发现事实和维度
- 在报表中发现事实和维度
聚合维度和事实
操作型和分析型系统的主要差别
Untitled.png (976×614) (amazonaws.com)
聚合订单过程中包含的事实和维度
二. 星型模型与其应用
维度表
维度表用于提供分析事实所需要的多样的环境.在查询或报表中,维度可用于对事实如何上卷进行定义 — 基于它们的聚集层次.维度值既可用于过滤报表,为每种度量提供环境,通常以文本标签的形式处于报表每行中事实的前面;也可用于对主从关系,分类汇总,交叉报表或排序的获取中
键与历史
在星型模式中,每个维度表都分配有一个代理键.该列是维度表的唯一标识符,只在数据仓库中创建.代理键在星型模型的加载过程中分配和维护.代理键没有内在的含义,通常表现为一个整数.代理键有的时候指代的是warehouse key ,是维度表的主键
维度表中也包含类似操作型系统中存在区分实体的键列,例如是在操作系统中,某些列用于区分特定的客户,产品和销售人员,这些列通常称为自然键
事实表
事实表中行存储特定级别的细节事实,细节的级别称为事实表的粒度
星型模型的应用
- 查询事实:大多数针对星型模式的查询都遵循一致性模型,被请求的一个或多个事实,与维度属性一同提供了需要的环境.事实将根据查询中出现的维度进行汇总而获得.维度值可以限制查询的范围,维度值以过滤器或者约束的方式限制了将要获取或聚集的数据
- 浏览维度:在与维度模式交互的过程中,一个经常被忽略,但是又非常重要的问题是对查询的浏览.浏览是在维度内探索数据的活动.浏览查询的结果将以参考数据的方式展现,也可以用于建立有用的报表.浏览也可以作为针对事实表开展复杂查询的前导性探索活动
三. 指导原则
精度
对所有的设计来说,精度的考虑是非常重要的,也是非常明显的事情.操作型系统的查询问题一般会预先确定,并在整个过程中保持一致.而分析型系统的查询总是会产生新问题,并随着时间的变化发生变化,有时这种情况非常突出.设计者必须注意维度模式是如何表示事实的,师父聚集了没有意义的事实,是否有其他的设计方式可以防止此问题的发生
性能
同样重要的是模式的性能,如果不能及时生成结果,分析型设计可能不会提供比操作型设计更高的价值.对于大量不可预期的问题,维度设计能够提供快速的响应.当基本的设计不能有效地满足重要业务需求时,使用维度设计恰逢其时,对于聚集方案性能的评测可能会促使产生勇多种格式提供信息的决策
网友评论