《数据库新技术》复习整理之数据仓库

6月17日就要考数据库了,于是博主准备来整理一下,万一以后有用呢是吧︿( ̄︶ ̄)︿
本篇博文整理了一下Data Warehouse部分,整理内容来自杨育彬老师的PPT。

1. 数据仓库

(1) 数据仓库的概念

数据仓库就是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用于支持经营管理过程中的决策制定。

(2) 数据仓库的特点

  • 面向主题:是指数据仓库中的信息是按主题进行组织的,为按主题进行决策的过程提供信息,主题有时会因用户的主观要求的变化而变化。
  • 集成:从多个数据源中获取数据,通过数据集成而形成数据仓库中的数据。
    集成的方法 统一,消除不同数据源之间的数据不一致的现象;综合,对原有数据进行综合和计算,如统计、抽样……
  • 相对稳定性(或不可更新,非可失):数据仓库中的数据是经过抽取而形成的分析型数据,不具有原始性,主要供企业决策分析之用,执行的主要是‘查询’操作,一般情况下不执行‘更新’操作。同时,一个稳定的数据环境也有利于数据分析操作和决策的制订。(不进行一般意义上的数据更新,但也不等于数据仓库中的数据不需要‘更新’操作。)
  • 随时间不断变化:数据仓库内的信息并不只是关于企业当时或某一时点的信息,而是系统记录了企业从过去某一时点到目前的各个阶段的信息,通过这些信息可以对企业的发展历程和未来趋势作出定量分析和预测。因此数据仓库中的数据通常都带有时间属性,同时必须以一定时间段为单位进行统一更新。如:不断增加新的数据内容、不断删去旧的数据内容、更新与时间有关的综合数据。

(3) 数据仓库的结构

数据的层次划分

一个完整的数据仓库的体系结构一般由三个层次组成:数据源、 数据仓库、数据集市(Data Mart)。三者之间通过数据仓库管理软件联系起来构成一个完整的数据体系。

数据仓库的关键技术

(1) 数据的抽取
(2) 数据仓库管理
(3) 结果的展现

(4) 数据仓库的设计原则

数据仓库的设计过程必须遵循下述三条原则:
-面向主题原则
-数据驱动原则
-原型法设计原则

2. 数据集市

数据仓库是一种反映主题的全局性数据组织。但是,全局性数据仓库往往太大,在实际应用中将它们按部门或个人分别建立反映各个子主题的局部性数据组织,它们即是数据集市。因此,有时我们也称它为部门数据仓库。数据集市的数据来自数据仓库,是数据仓库中数据的一个子集。

数据仓库与数据集市的关系类似于传统关系数据库系统中的视图的关系。数据集市的数据来自数据仓库, 它是数据仓库中数据的一个部分与局部, 是一个数据的再抽取与组织的过程。

根据建设企业级数据仓库与部门级数据集市的顺序与过程,可以将数据仓库与数据集市之间的关系划分为以下的四种结构:
(1)自顶向下的结构
(2)自底向上的结构
(3)总线结构的数据集市(通过共享维表和事实表,不建立数据仓库)
(4)企业级数据集市结构

3. 操作型处理与分析型处理的区别

(1) 操作型处理

  • 也叫事务处理,是指对数据库的日常联机访问操作,通常是对一个或一组记录的查询和修改,主要是为企业特定的应用服务,所以也叫联机事务处理(On-Line Transaction Processing, 简称 OLTP)。
  • OLTP的特点
    a) 通常仅仅是对一个或一组记录的查询或修改;
    b) 执行频率高;
    c) 人们关心的是处理的响应时间、数据的安全性和完整性等指标。

(2) 分析型处理

  • 也叫做信息型处理,主要用于企业管理人员的决策分析,为制订企业的未来经营管理计划提供辅助决策信息。
  • 数据访问特点
    a) 需要对大量的事务型数据进行统计、归纳和分析;
    b) 经常访问大量的历史数据;
    c) 执行频率和对响应时间的要求都不高。
  • 典型的分析型处理系统 决策支持系统 ( DSS —Decision Support System )

4. 联机分析处理(OLAP)

基本概念

(1) 对象(Object)

-在分析型处理中,我们所关心和分析的对象
– 观察对象又被称为 ‘度量值’
• 在多维数据集中,度量值是一组值,而且通常为数字值。
• 度量值是所分析的多维数据集的中心值,即:度量值是最终用户浏览多维数据集时重点查看的数值型数据。
• 度量值的选择取决于最终用户所请求的信息类型。
– 一些常见的度量值有:» 销售金额 sales » 成本金额 cost » 库存数量 production count » 消费金额 expenditures

(2) 维(Dimension)

– 观察分析对象的角度, 是考虑问题时的一类属性,属性集合构成一个维
– 如:从三个‘ 维’ 观察‘ 销售金额’ 对象:时间维、商品维、地域维

(3) 层(Layer)

– 在分析型应用中,对分析对象可以在不同的深度层面上进行分析与观察,并可能得到不同的分析结果。因此, ‘层’ 反映了对分析对象的观察深度(时间维:日期、月份、季度、年)。
– 一般而言,‘ 层’ 是与‘维’ 相关联的。在一个‘维’中可允许存在若干个‘层’, 并且可以采用多种不同的‘层’ 次划分方法。
• 维中的‘ 层’通常被组织成一个层次结构,在数据仓库系统的元数据中需要记录不同‘ 层’之间的包含关系,以便于能够在数据仓库中已有的统计结果上正确地执行新的统计查询。

(4) 维成员

– 维的一个取值称为该维的一个‘ 维成员’
如果一个维是多层次的,则该维的‘维成员’ 可以是
1). 在不同维层次上的取值的组合
2). 在某个维层次上的取值
对一个数据项(分析‘对象’ )来说,维成员是该数据项在某维中位置的描述。

(5) 多维数组

一个多维数组可以表示为(维1, 维2, ……, 维n, 变量),其中:
• ‘变量’ 表示我们所观察的数据对象
• 维1、维2、 ……、维n分别表示我们观察该数据对象的角度(维)

(6) 数据单元(单元格)

– 多维数组可以被看成是一个根据多个下标进行定位的值的集合,其中的每一个取值被称为该多维数组的一个数据单元。
– 当多维数组的每一维都选中一个维成员,这些维成员的组合就唯一确定了一个观察对象的值,即:(维成员1,维成员2, ……,维成员n, 对象值)
– 这样一个值或存放该值的地方我们称其为一个‘数据单元’
– “(2000年1月,上海,笔记本电脑, $100000)”

星形模型

– 星型模式是一种多维表结构,它一般由两种不同性质的二维表组成:
• 事实表( fact table)——它存放多维表中的主要事实,我们称其为量( Measure)
• 维表( Dimension Table)——用以存放多维表中的维成员的取值
– 一般一个n维的多维表往往有n个维表和一个事实表,它们构成了一个星形结构,因而称其为‘星型模式’。
在星型模式中,主要数据存储在事实表中,没有冗余,并符合3NF或BCNF。

雪花模型

– 雪花模型是对星型模型的扩展
雪花模型对星型模型的维表进一步层次化,原来的维表可能被扩展为小的事实表,形成一些局部的“层次”区域。

数据立方体(Data Cube)及其上的操作

5. 多维建模:

1) 事实表:度量值,粒度类型(事务,周期快照,累积快照)

事实表

  • 是维度建模的核心和基本表
  • 每一事实表都有着一个或若干个业务‘度量值’
    度量值是事实表的核心,也是趋势分析中的观察对象
    通过事实表来记录维度值与度量值之间的关系
  • 事实表中的一行由若干个‘维度值’ 和一个或若干个‘度量值’ 组成
    在同一张事实表中,所有度量值必须具有相同的‘粒度’
    维度值的取值情况确定了事实表中的度量值的粒度定义
  • 事实表的分类:事务,周期快照,累积快照

度量值

  • 最常用的度量值:数值类型
    可做加法运算( 非常重要)
    可沿着某些维度做加法运算( 半加性质)
    不能做加法运算( 非加性质)计数统计 count 计算平均值 avg 取样统计 sampling
  • 很少采用文本形式的度量值
    文本信息通常都放在维度表中,除非它对于事实表中的每一行都是唯一的
  • 度量值通常是一个可以连续取值的量

三种互补的库存模型

  • 周期库存快照:长期运行并不断进行补充的库存管理
    定期生成每种商品的库存水平(数量)
    对于每一件商品,在事实表中都有若干行,以反映该商品在不同时期的库存水平
  • 库存事务
    记录影响库存水平的主要因素,如:商品的进/出仓库事务等
    每个事务(分列项)对应事实表中的一行
  • 库存累积快照:一次性具有明确的起点与终点的库存管理
    每一件商品在事实表中都有一行,用于记录该商品的分发历史,直至其离开仓库为止。库存累积快照事实表中存在多个取值为日期的外关键字;需要对事实表中的每一行进行多次的访问和修改操作;很少用于长期运行而需要不断进行补充的库存处理

2) 维度表:

维度表是事实表的入口,为用户提供了使用数据仓库的接口。
维度表中的维度属性通常用于定义事实表上的查询条件,也可作为定义报表和统计查询的列。
维度表的定义原则
-尽可能多的列
-尽可能少的行(相对于事实表)

a)关键字的设计策略

  • 每个事实表都有两个或两个以上的外关键字(Foreign Key)
  • 通过外关键字建立事实表与维表之间的联系,从而可以通过维度表来存取事实表中的度量值
  • 可以由外关键字的组合构成事实表的主关键字(Primary Key)

b)维度属性的设计策略

维度属性: 通常是文本数据,或者是离散数据,尽量减少使用编码属性

  • 维度属性与度量值(属性)的区别
    度量值属性: 数值属性,可连续取值,数量巨大并可以参与统计运算
  • 维度属性:
    离散的或取值不多的属性;
    取值不变或很少产生变化的属性;
    从不参与统计计算但经常用作查询条件的属性.

c)维度表的设计策略:角色模仿,支架维度,退化维度

d)渐变维度的处理办法:

直接改写属性值
添加新的维度行
添加维度列
综合方法

e)快变维度的处理办法:

微型维度:将给属性拆分出去构成独立的维度表
预设波段:通过离散化处理来降低其变化的频率

f)客户体系桥

一个客户与其在任意层次上的每一个子客户(包括其自身),在桥接表中都有一行,以记录他们之间的‘祖先-后代’关系
父层数: 两者之间的层次差
底端标志: 子客户下方不再有子客户的标志(叶子结点)
顶端标志: 父客户上方不再有父客户的标志(根结点)
‘客户体系桥’表位于‘事实’表与‘客户’维度表之间
有两种形式的‘客户体系桥’表:自顶向下、自下而上

3)数据仓库的总线矩阵结构

一种可以按增量开发方式分步建造企业数据仓库的方法
‘总线’是在计算机中实现通用共享的一种专用名词术语
通过为数据仓库环境定义标准的总线接口,独立的数据中心就可以由不同的开发小组在不同的时间进行实现。
只要遵循这个标准,独立的数据中心就可以插入到一起并有效地共享。
实现方式:共享一组综合的具有一致性的共用维度
矩阵中的行:对应着数据中心
矩阵中的列:对应着共享的公共维度

4)多维建模实例:营销,库存,客户关系管理