数据仓库第二章整理 —联机分析处理基本概念

字数 3801阅读 17

一,数据分析模型概述

1.概述:

(1)以前的数据分析主要是静态的,不能与数据库中的数据建立动态联系

(2)实际需求:需要更复杂,动态的分析,综合多个数据源,从不同角度观察数据,多变的主题与多维数据访问

2.E-R模型:基于数据库的传统数据分析,不适合动态分析

(1)不支持域概念

(2)只支持主外码表示的联系

(3)不能表示如:“产品类型”和“客户爱好”通过“销售额”发生的联系——不是分析型数据库

二,Codd提出四种数据分析模型

1.划分依据:

(1)处理数据的范围

(2)用户-分析人员的交互需要

(3)多维分析需求

(4)现有工具的支持

2.四种数据分析模型:

(1)绝对模型

    【1】支持工具广泛

    【2】静态数据分析

    【3】比较历史数据值

    【4】综合路径是数据库设计时定义的

(2)解释模型

    【1】支持工具较多

    【2】静态数据分析

    【3】利用已有的多层次路径层层细化,找出事实发生的原因

(3)思考模型—试探的引入变量,分析其中可能存在的联系

    【1】支持工具较少

    【2】动态数据分析(动态性较低)

    【3】在一维或多维上引入变量或参数,分析引入后会发生什么

    【4】引入变量时,须创建大量综合数据

(4)公式化模型

    【1】至今没有支持工具

    【2】动态数据分析(动态性很高)

    【3】分析在多维上需引入哪些变量或参数,并分析引入后所产生的结果

(5)数据分析举例:

目标:为了扩大商品销售量、分析与销售量相关因素

绝对模型:历史数据比较,利用回归分析,“某种商品今年的销售情况与以往相比,有何变化?今后趋势”——与其他三个模型不同,主要在于根据历史数据,知道现今的情况和预测今后变化,其他三个模型在此模型的基础上可以分析产生这样结果的原因,去改变未来

解释模型:进一步找出原因,“销售量下降与时间、地区、商品、销售渠道中何种因素有关”——分析的是同一张表并且有直接关系的因素

思考模型:引入年龄(变量),分析销售量与顾客年龄是否有关系——根据人的常识,可以人为的引入变量,考虑改变量与销售量之间的关系

公式模型:自动引入各种变量,最终给出与销售量有关的全部因素——几乎不可能实现,万事万物基本都有联系,可能是毫不相关的因素引起的变化,无法预知需要引入的变量。

三、OLAP的提出的原因

1.关系数据库满足了联机事务处理(OLTP)的要求

2.存在着大量的分析型应用——RDB无法适应

(1)应用角度:要求对大量的数据从各个角度进行综合分析

(2)计数角度:SQL已经不能很好的适应分析应用需求

    【1】查询效率

    【2】SQL本身的小熬制,尤其对时间的处理能力

(3)典型分析应用:

    【1】对一些统计指标

    【2】从不同角度(维)

    【3】从不同级别

三、多维数据模型(多维概念视图,Cube)

1.维:对数据进行分类的一种结构,以用于从特定的角度观察数据

维的两个用途:选择针对期望详细程度的层次的数据;分组对细节数据综合到相应的详细程度的数据层次——选择单个点或者一段

(1)维层次路径——维的组织方式:由代表不同详细程度的维层次组成

(2)维层次:特定角度的不同细节程度

    【1】维层次关系:简单维层次关系、复杂维层次关系

    【2】不支持层次关系带来的问题:增加维的数目,变成非常“稀疏”的状况                 

(3)维成员

    【1】维的一个取值(称为该维的一个成员),每一个维成员属于某一个特定的维层次,维成员是数据在该维上的位置描述

    【2】不同维层次的取值的组合,5月20日,月维层次和日维层次的组合,在维层次路径上

    【3】维成员属性:维成员的描述属性,维成员的“类”,按一定的划分标准对维成员全集的一个划分,划分标准一般是实体的属性

    【4】维层次和类的区别:

                表达的含义不同:

                    维层次表达变量在该维的综合的级别,父层次的值由子层次的值综合得到

                    维成员的类表达某一子类维成员的共同特征,不同层次的维成员之间不存在类的关系

                    维成员的类是对同一维层次的相似属性的重定义或着说自定义

              分析动作不同

                  按维层次进行分析:逐层向上综合数据,逐层向下细化数据

                  按维成员的类进行分析:

                          选择类属性对维成员全集进行分类

                          对同类维成员归纳出共同的特征

                          按类进行分析不能跨维层次,只能在同层次进行

(4)维层次属性:维层次上的描述属性

2.事实:度量

(1)度量:数据的实际意义,一般是一个数值度量的指标。如:销售额,销售量等

(2)事实:存储一个多维数据

    【1】表达期望分析的主题

    【2】具有一定的粒度,粒度的大小与维层次相关

    【3】一个事实中通常包含一个或者多个度量

(3)一个度量的两个组件

    【1】数字型指标

    【2】聚集函数

3.数据立方体

(1)按照一定维层次结构和度量的逻辑上的组织

(2)其逻辑上相当于一个多维数组

(3)多维数组的表示:(维1,维2,维3,....,维n,变量)

(4)数据单元:多维数组的取值,可表示为:(维1成员,维2 成员,维3成员,...,维n成员,变量的值)

三、多维数据操作

(一)多维分析的基本分析动作

      1.切片:从多维数组选定一个二维子集,切除一个“平面”;在多维数据的某一维上选定一个维成员

      2.切块:从多维数组选定一个三维子集,切出一个“立方体”

      (1)切片是切块的特例,即限制的取值区间只取一个维成员

      (2)切块可看作由多个邻接的切片迭合而成

      3.旋转:改变一个报告显示的维方向,主要目的是使表达出的数据信息更容易分析。

      4.钻取:根据维层次,改变数据的粒度,向上钻取综合数据,向下钻取细化数据。

(二)OLAP的其他操作

      1.穿透:钻取操作的进一步衍生没有起对于ROLAP模式,直接得到最为底层的细节数据,数据通常以关系表的形式给出

      2.排序:对数据单元的度量取值进行排序,获得top/bottom的若干数据取值

四、OLTP与OLAP的比较



              OLTP数据                                            OLAP

              原始数据                                            导出数据

            细节性数据                                          综合性或提炼性数据

            当前值数据                                          历史数据

            可更新                                                不可更新,但周期性更新

            一次处理的数据量小                              一次处理的数据量大

            面向应用,事务驱动                              面向分析,分析驱动

            面向操作人员,支持日常操作                  面向决策人员,支持管理需要


(一)主要区别:

    1.不同的性能需求

      OLTP:快速的响应时间、在任何时候,数据随时更新,必须保持数据的一致性和完整性

      OLAP:查询可能耗费大量的资源;可能使CPU和磁盘处于紧张的工作状态;操作通常基于某一个是教案点的静态的数据“快照”

      OLTP与OLAP必须实现环境分离:OLAP可能导致OLTP系统性能的降低,甚至奔溃。

2.不同的数据建模需求

(1)OLTP:

  【1】为保证数据的一致性,需要设计规范化的模式

  【2】复杂的数据模型,包含大量的数据表

  【3】查询和修改操作性能相对比较受限

(2)OLAP:

  【1】简单的数据模型非常重要,允许业务人员执行各类即席查询

  【2】通常采用非规范化的模型  更少的连接操作—>提高查询性能

                                              更少的数据操作—>易于理解数据模式

3.分析需要综合多个不同的数据源

(1)OLTP系统主要服务于某一个特定的应用系统

(2)OLAP需要集成多个不同的数据源

(3)OLAP包含历史数据

(4)OLAP的重点之一是数据集成

五、多维数据模型的实现

(一)多维数据模型的实现计数

1.Relational OLAP(ROLAP)

  【1】利用关系数据库来存储和管理基本数据和聚合数据,并利用一些中间件来支持缺失数据的处理

  【2】具有良好的可扩展性

2.Multidimensional OLAP(MOLAP)

  【1】利用多维数据库来存放和管理基本数据和聚合数据,其中需要对稀疏矩阵处理技术

  【2】对综合的数据进行快速索引

3.Hybrid OLAP(HOLAP)

  【1】利用关系数据库来存储和管理基本数据,利用多维数据库来存储和管理聚合数据

(二)MDB方法的优点

1.多维概念表达清晰,占用存储少

2.对数据进行综合的速度快(只需按行/列累加)

3.在RDB中,“总和”作为某个域上的取值与列定义语义不符

(三)多维数据库存储

1.有许多类似于数组的对象构成,每个对象由聚集组成的单元块组成

2.每个单元块按类似于多维数据的结构存储,通过直接偏移计算进行存取,每个对象带有索引和指针结构

(四)用关系结构表示多维数据

1.关系数据库使用广泛,相当成熟

2.用二维表表达多维概念,用两类表来表示多维结构:事实表、维表

(1)事实表:用来存储变量值和各维的码值

(2)维表:用来存储维的描述信息(元数据),包括层次和类等

(五)用关系结构来表示多维数据的各种模式

1.星型模式

(1)事实表与维表的连接操作实现数据的多维查询,查询变量的值及对应的维成员

2.雪花模式——维的层次和类组合构成复杂的维

(1)用多张表来描述复杂的维,每一个维层次对应一张表;每一类属性对应一张表;维表用来存放上述各表的码值

(六)多维数据的提取(事实提取)

1.性能问题——查询优化、索引技术

(1)维表:记录维的属性、维层次和类

(2)综合表:记录维的属性、维层次和类。  ——提高性能,降低系统开销,避免每个维层次上的预综合

(3)系统表:有关事实、维、索引、汇总层次、综合表的字典信息

(七)两种实现技术比较

            MOLAP结构                                  ROLAP结构

          结构简洁、明了                            结构相对庞大

          适应数据量相对较少的情况              适应数据量很大的情况

          灵活性较差。                                灵活性好

1.MOLAP的数据存储和管理

(1)数据存储熔炼较ROLAP少

往往利用RDB存储细节数据,MDB存储综合数据

(2)元数据以内在方式处理

元数据描述层次关系、时间序列信息、报表项、安全存取控制、数据源以及预综合等等

(3)利用多维查询语言直接访问MDB(不借助附加程序)

2.ROLAP的数据存储和管理

(1)以关系数据库系统方法进行数据存储和管理

  【1】安全控制和存取控制基于表

  【2】封锁基于表、页面或行

(2)多维概念下的安全及存取控制,RDBMS不支持,需由OLAP Server实现

(3)数据存储容量大(因为RDB技术成熟),但为了提高性能,须建中间表(预综合),数据量冗余大

(4)元数据作为应用的一部分,由ROLAP Server管理

(5)用户的分析(查询)请求,需SQL和附加的应用程序共同完成可以直接在细节数据上提供OLAP的功能

3.MOLAP和ROLAP适应性

(1)MOLAP适应性———MOLAP的预综合较高

  【1】适应维数变化较差,增加一维,“超立方规模迅速增长”

  【2】适应数据变化较差,数据(或计算)变化好似,重计算量相当大

  【3】适应大数据较差

(2)ROLAP的预综合度灵活,一般性较低

  【1】适应维数动态变化较好,增加一维,需增加一些维表、综合表及事实表中的内容

  【2】适应数据变化的范围大

  【3】适应大数据的能力较强,技术成熟

推荐阅读更多精彩内容