




已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 1 第四章 联机分析处理(OLAP) 2 第四章 目录 4.1 OLAP概念 4.2 OLAP的基本操作 4.3 OLAP的数据模型 4.4 OLAP分类和服务器类型 4.5 基于多维数据库的OLAP(MOLAP) 4.6 基于关系数据库的OLAP(ROLAP) 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结3 数据仓库是管理决策分析的基础,要有效地 利用数据仓库的信息资源,必须要有强大的 工具对数据仓库的信息进行决策分析。On- line Analytical Processing(在线分析处理或 联机分析处理)就是一个应用广泛的数据仓 库使用技术。它可以根据分析人员的要求, 迅速灵活地对大量的数据进行复杂的查询处 理,并以直观的容易理解的形式将查询结果 提供给各种决策人员,使他们能够迅速准确 地掌握企业的运营情况,了解市场的需求。 4 第四章 联机分析处理(OLAP) 4.1 OLAP概念 4.1.1 什么是OLAP 4.1.2 OLAP的相关基本概念 4.1.3 OLAP和OLTP的区别 4.1.4 OLAP和数据仓库的区别 4.2 OLAP的基本操作 4.3 OLAP的数据模型 4.4 OLAP分类和服务器类型 4.5 基于多维数据库的OLAP(MOLAP) 4.6 基于关系数据库的OLAP(ROLAP) 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结 5 4.1 OLAP概念 OLAP发展背景:60年代,关系数据库之父 E.F.Codd提出了关系模型,促进了联机事务处理 (OLTP)的发展(数据以表格的形式而非文件方 式存储)。1993年,E.F.Codd提出了OLAP概念, 认为OLTP已不能满足终端用户对数据库查询分析 的需要,SQL对大型数据库进行的简单查询也不 能满足终端用户分析的要求。用户的决策分析需 要对关系数据库进行大量计算才能得到结果,而 查询的结果并不能满足决策者提出的需求。因此 ,E.F.Codd提出了多维数据库和多维分析的概念 ,即OLAP。 6 4.1.1 什么是OLAP 定义4.1 OLAP(联机分析处理)是针对某个特定 的主题进行联机数据访问、处理和分析,通过直 观的方式从多个维度、多种数据综合程度将系统 的运营情况展现给使用者。 定义4.2 OLAP(联机分析处理)是使分析人员、 管理人员或执行人员能够从多角度对信息进行快 速、一致、交互地存取,从而获得对数据的更深 入了解的一类软件技术。(OLAP委员会的定义 ) OLAP的目标是满足决策支持或者满足在多维环 境下特定的查询和报表需求,它的技术核心是“维” 这个概念,因此OLAP也可以说是多维数据分析 工具的集合。 7 OLAP 的特点: 多维性 OLAP服务通过支持多维聚合路径(dimensional aggregation path)或层次结构和/或多重层次结构,提供了大量 数据视图或多维的概念性视图。 容易理解 为OLAP 分析设计的数据仓库或数据集市可以处 理与应用程序和开发人员相关的任何业务逻辑和统计分析,同 时使它对于目标用户而言足够简单。 交互性 OLAP帮助用户通过对比性的个性化查看方式,以 及对各种 “what-if”数据模型场景中的历史数据和预计算数据进 行分析,将业务信息综合起来。用户可以在分析中定义新的专 用 计算,并可以以任何希望的方式报告数据。 快速 OLAP服务常常以多用户的客户机/服务器模式实现 ,而且无论数据库的规模和复杂性有多大,都能够对查询提供 一致的快速响应。合并的业务数据可以沿着所有维度中的层次 结构预先进行聚合,从而减少构建OLAP报告所需的运行时间 。 4.1.1 什么是OLAP 8 4.1.2 OLAP的相关基本概念 1. 变量 变量是从现实系统中抽象出来的,用于描述数据的实际意义,即描述 数据“是什么”(人数、单价、销售额等)。变量都有一定的取值范围,比 如“人数”的取值范围是“大于等于零的整数”。取值范围实际上是具体问题 对变量的约束。 2. 维 维是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合 构成一个维(时间维、地理维等)。 3. 维的层次(levels) 人们观察数据的某个特定角度(即某个维)还可以存在细致程度不同 的各个描述方面(时间维:日期、月份、季度、年)。 维度的层次性是人们观察数据细致程度不同造成的,维度层次的确定 需要具体问题具体分析,不同分析应用对数据组织的详略程度不同,将使 同一维度上的层次繁简不同。 4. 维的成员 维成员也称维的取值。如果一个维是多层次的,那么该维的维成员是 由各个不同维层次的取值组合而成,如“2004年6月30日”是在具有3个层次 的时间维上的一个取值。 5. 多维数据集 多维数据集是决策分析的支柱,OLAP的核心,有时也称立方体或者 超立方。OLAP展现在用户面前的是一幅幅多维视图。多维数据集可以用 一个多维数组来表示。 9 6. 多维数组 图4.1 按多维数组组织起来的三维立方体(multicube) 多维数组是维和变量的组合表示。一个多维数组可以表示为:维1,维2 ,维n,变量,比如:图4.1所示的商品销售数据是按时间、地区和产品 组织起来的三维立方体,加上变量“销售额”,就组成了一个多维数组(时 间,地区,产品,销售额)。如果在图4.1的基础上扩展一个维“销售渠道” ,就得到一个四维的结构。 7. 数据单元(单元格) 数据单元(单元格)是多维数组的取值。当多维数组的各个维都选中一 个维成员,这些维成员的组合就唯一确定了一个变量的值,比如:2004年3 月,昆明,笔记本电脑,$80000。 4.1.2 OLAP的相关基本概念 10 4.1.3 OLAP和OLTP的区别 OLAP和OLTP的区别: OLAP面向的是市场,主要供企业的决策人员和中高层管理 人员使用,用于数据分析。而OLTP是面向顾客的,主要供 操作人员和低层管理人员使用,用于事务和查询处理。 OLAP系统管理大量历史数据,提供汇总和聚集机制,并在 不同的粒度级别上存储和管理信息。这些特点使得数据更 容易用于决策分析。OLTP系统则仅管理当前数据,通常, 这种数据太琐碎,难以用于决策。 OLAP系统处理的是来自不同组织的信息,由多个数据存储 集成的信息。由于数据量巨大,OLAP数据存放在多个存储 介质上,不过,对OLAP系统的访问大部分是只读操作,尽 管许多可能是复杂的查询。相比之下,OLTP系统则主要关 注企业或部门内部的当前数据,而不涉及历史数据或不同 组织的数据。它们的区别概括于表4.1中。 11 4.1.3 OLAP和OLTP的区别 OLAPOLTP 特性信息处理操作处理 用户面向决策人员面向操作人员 功能支持管理需要支持日常操作 面向面向数据分析面向应用 驱动分析驱动事务驱动 数据量一次处理的数据量大一次处理的数据量小 访问不可更新,但周期性刷新可更新 数据历史数据当前值数据 汇总综合性和提炼性数据细节性数据 视图导出数据原始数据 表4.1 OLAP和OLTP的区别 12 4.1.4 OLAP和数据仓库的区别 OLAP 是大多数数据仓库解决方案中使用的报告 实现之一。OLAP 解决方案有时候被错误地称为 数据仓库解决方案。在为某个部门或有限的用户 群开发 OLAP 解决方案时,这种说法尤其容易引 起误解。 数据仓库最重要的特性是数据集成,而数据仓库 最重要的用途是信息数据呈现。OLAP 服务并不 是主要针对数据集成而设计的;但是,它是一种 强大的数据呈现方法,在大多数数据仓库解决方 案中都使用 OLAP。 13 4.1.4 OLAP和数据仓库的区别 典型的 OLAP 服务常常源自一个或多个专门设计 的数据集市。OLAP 服务应该被看作数据仓库解 决方案的一部分,参见图 4.2。 图4.2 数据仓库中的OLAP报告 14 第四章 联机分析处理(OLAP) 4.1 OLAP概念 4.2 OLAP的基本操作 4.2.1 数据切片(SLICE) 4.2.2 数据切块(DICE) 4.2.3 数据上探/下钻(DRILL-UP/DRILL-DOWN) 4.2.4 数据旋转(PIVOT) 4.2.5 其它OLAP操作 4.3 OLAP的数据模型 4.4 OLAP分类和服务器类型 4.5 基于多维数据库的OLAP(MOLAP) 4.6 基于关系数据库的OLAP(ROLAP) 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结15 4.2 OLAP的基本操作 OLAP的基本操作是指通过对多维形式组织 起来的数据进行切片、切块、聚合、钻取、 旋转等分析动作,以求剖析数据使用户能够 从多种维度、多个侧面、多种数据综合度查 看数据,从而深入地了解包含在数据中的信 息、内涵。OLAP的操作方式迎合了人的思 维模式,因此减少了混淆,降低了出现错误 解释的可能性。下面我们逐一介绍OLAP的 基本操作内容。 16 4.2.1 数据切片(SLICE) 定义4.3 在多维数组的某一维上选定一个取值,则多维数组就从n维降成了n 1维,我们称多维数组的子集(维度1,维度2,维成员Vi,维度n,变量 )(设维度i的维成员取Vi)为多维数组在维度i上的切片。 例4.1 图4.3所示是一个按产品维、城市维和时间维(年)组织起来的产品销售 数据,用多维数组表示为(时间,城市,产品,销售额)。如果在城市维上 选定一个维成员(设为“上海”或“广州”),就得到了在城市维上的一个切片; 如果在产品维上选定一个维成员(设为“电视机”或“电冰箱”),就得到了在产 品维上的一个切片。显然,这些切片的数目取决于每个维成员的个数。 图4.3 数据切片示意图17 按照定义4.3,一次切片一定使原来维数减1,因 此所得的切片结果并不一定是二维的“平面”,其 切片结果的维数取决于原来的多维数组的维数。 这样的切片定义不够通俗易懂,所以我们给出了 切片的另一个定义(这两个定义是不等价的)。 定义4.4 选定多维数组中两个维:维i和维j,在这 两个维上取某一区间或任意的维成员,而将其余 的维都分别取定一个维成员的动作称为多维数组 在维i和维j上的一个切片,表示为:(维i,维j,变 量)。 4.2.1 数据切片(SLICE) 18 例4.2 对于例4.1,选定多维数组(时间,城市,产品,销售额)中 的时间维度与产品维度,而在城市维上取定一个维成员(设为“上 海”或“广州”),就得到了多维数组(时间,城市,产品,销售额 )在时间和产品两维上的一个切片(时间,产品,销售额)。它 表示“上海”或“广州”地区各产品、每年的销售情况。相应地,选定 时间维度与城市维度,而在产品维上取定一个维成员(设为“电视 机”或“电冰箱”),就得到了多维数组(时间,城市,产品,销售 额)在时间和城市两维上的一个切片(时间,城市,销售额)。 从定义4.4可以得出两点: 1)一个多维数组的切片最终是由该数组中除切片所在平面的二个 维之外的其他维的成员值确定的。 2)维是观察数据的角度,那么切片的作用或结果就是舍弃一些观 察角度,使人们能在两个维上集中观察数据。因为人的空间想象 能力毕竟有限,一般很难想象四维以上的空间结构。所以对于维 数较多的多维数据空间,数据切片是很有意义的。 定义4.4可以看成是定义4.3的一个特例。对于一个n维数组,按定 义4.3进行的n-2次切片的结果,就必定是对应于按定义4.4进行的 某一次切片的结果。 4.2.1 数据切片(SLICE) 19 4.2.2 数据切块(DICE) 和切片相对应,我们对切块也下两个定义: 定义4.5 将多维数组某一维上的取值设定为一个区间(例如取 “1999至2004年”)的维成员的动作称为切块。显然,当这一区 间只取一维成员时,即得到一个切片(见定义4.3)。 定义4.6 选定多维数组中三个维:维i、维j和维k,在这三个维 上取某一区间或任意的维成员,而将其余的维都分别取定一个 维成员的动作称为多维数组在维i、维j和维k上的一个切块,表 示为:(维i,维j,维k,变量)。 从另一个角度来讲,切块可以看成是由多个切片叠合而成。 例4.3 在图4.3中,如果将城市维上的取值设定为一个区间(例 如取上海、北京、广州),而非单一的维成员时,就得到一个 数据切块,它可以看成是上海、北京和广州三个切片叠合而成 。 20 4.2.3 数据上探/下钻(DRILL-UP/DRILL- DOWN) 维度是有层次性的,如时间维可能由年、季、月、日构 成,维度的层次实际上反映了数据的综合程度。维度层 次越高,代表的数据综合度越高,细节越少,数据量越 少;维度层次越低,则代表的数据综合度越低,细节越 充分,数据量越大。数据钻取包含向下钻取(drill-down )/下卷(roll-down)和向上探取(drill-up)/上卷(roll- up)操作,上探是在某一维上将低层次的细节数据概括 到高层次的汇总数据。而下钻则相反,它从汇总数据深 入到细节数据进行观察。这两者都是改变维的层次和变 换分析的操作。 例4.4 在图4.4中,2004年某产品销售收入如表1,时间层 次是“年”,如在时间维上进行下钻操作,可获得其下层 各季度销售数据如表2所示,表2显示的是2004年某产品 每季度的销售情况,显然,表2中各个季度的销售总和应 当等于表1中一年的销量。同理,如果我们在季度层次上 继续向下钻取,则可得到2004年该产品每季度、每月的 销售情况,等等。相反,若进行上探,则可从表2得到表 1的结果。 21 图4.4 上探、下钻操作示意图 显然,钻取的深度与维所划分的层次相对应。如果对时间维度上只定义了 “年”、“季度”这两个层次关系,那么表2是我们能够得到的最细节的数据 ,不能再进一步下钻。如果对时间维度定义了“年”、“季度”、“月份”、“周 ”、“日”等更多的层次,则还可以进一步钻取。类似地,也可以在部门维 度上进行钻取。 4.2.3 数据上探/下钻(DRILL-UP/DRILL- DOWN) 22 4.2.4 数据旋转(PIVOT) 数据旋转是改变维度的位置关系,通过旋转可以 得到不同视角的数据。旋转可能交换行和列,也 可能是在维度层次之间进行交换。 例4.5 图4.5(a)的例子是一个行列交换示意图, 横向的时间维度和纵向的产品维度进行了交换, 从而形成横向为产品,纵向为时间的表。图4.5( b)是一个三维旋转示例。图4.5(c)中的例子则 是在维度层次之间进行了交换,这使得用户能够 更好地对同产品不同城市,不同季度的数据进行 比较。 23 4.2.4 数据旋转(PIVOT) 24 4.2.5 其它OLAP操作 除了上述的OLAP基本操作外,有些OLAP系统还提供其 他钻取操作。例如,钻过(drill_across)执行涉及多个多 维数组(事实表)的查询;钻透(drill_thriugh)操作使 用关系SQL机制,钻透数据立方体的底层,到后端关系 表。 其他OLAP操作可能包括列出表中最高或最低的N项,以 及计算移动平均值、增长率、利润、内部返回率、贬值 、流通转换和统计功能。 OLAP提供分析建模机制,包括推导比率、方差等以及计 算多维度量的计算引擎。它能在每一粒度级和在所有维 的交产生汇总、聚集和分层。OLAP也支持预测、趋势分 析和统计分析函数模型。在这种意义下,OLAP引擎是一 种强有力的数据分析工具。 25 第四章 联机分析处理(OLAP) 4.1 OLAP概念 4.2 OLAP的基本操作 4.3 OLAP的数据模型 4.3.1 什么是数据立方体 4.3.2 多维数据模型的存在形式 4.4 OLAP分类和服务器类型 4.5 基于多维数据库的OLAP(MOLAP) 4.6 基于关系数据库的OLAP(ROLAP) 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结 26 4.3 OLAP的数据模型 数据仓库和OLAP工具基于多维数据模型。 这种模型将数据看作数据立方体形式。本节 学习数据立方体如何对n维(n-D)数据建模 。还将学习星形、雪花形、事实星座形和雪 暴形等多维数据模型的存在形式等。 27 4.3.1 什么是数据立方体 数据立方体允许从多维对数据建模和观察。它由维和事实定义 。 维是人们观察数据的特定角度。例如,一个“销售(Sales)”数据仓库可能 涉及维:时间(time)、地点(location)、商品(item)和商品的供应商 (supplier)等。每个维都有一个表与之相关联,称为维表,它进一步描 述维。例如,“商品(item)”的维表可以包含属性商品名(item_name)、 品牌(brand)、类型(type)和颜色(color)。维表可以由用户或专家设 定,或者根据数据分布自动产生和调整。 多维数据模型围绕中心主题(例如销售)组织。主题用事实表表示。事实 一般是数值度量的。例如“销售(Sales)”数据仓库的事实包括销售额( dollars_sold(美元)和销售量(units_sold(个)。事实表包括事实的 名称或度量,以及每个相关维表的码。 尽管我们经常把数据立方体看作3维几何结构,但在数据仓库中,数据立 方体是n维的。为了更好地理解数据立方体和多维数据模型,让我们从考 察2维数据立方体开始(见表4.2)。事实上,它是某商店的销售数据中在“ 大理”市每季度相关商品的销售额表。在这个2维表中,“大理”市的销售用 时间(time)维(按季度组织)和商品(item)维(按所售商品的类型组 织)表示。所显示的事实或度量是销售量(dollars_sold,单位:万人民币 )。 28 4.3.1 什么是数据立方体 表4.2 某商店的销售数据在时间和商品维的2维视图 表4.3 某商店的销售数据在时间、商品和地点维的2维视图 地点=“大理” 时间 ( 季度) 商品(类型) 电视计算机电话冰箱 1季度60588516400 2季度66895232512 3季度812101736499 4季度917102539588 地点=“大理”地点=“丽江”地点=“玉溪”地点=“曲靖” 时 间 电 视 计 算 机 电 话 冰箱 电 视 计 算 机 电 话 冰箱 电 视 计 算 机 电 话 冰箱 电 视 计算 机 电 话 冰箱 1 60588516400107 8 968378728187474259160682214400 2 66895232512111 7 102 3 419258917695158868195231517 3 812101 7 36499103 4 104 9 47100 8 94479958727818102 4 33508 4 917102 5 39588114 7 109 7 5298797886559782927103 3 39589 29 现在假定在表4.2的基础上,增加一维,以3维形式观察销售数据。 例如,增加“地点”维来考察销售量。3维数据如表4.3所示。不难看 出,表4.3的3维数据以2维数据表序列的形式表示。从概念上讲, 也可以用3维数据立方体的形式表示这些数据。如图4.6所示。 4.3.1 什么是数据立方体 30 假定再增加一个维,如供应商(supplier),以4维形式观察这组销售数据 。观察4维事物变得有点麻烦,然而,可以把4维立方体看成3维立方体的 序列,如图4.7所示。如果按这种方法继续下去,可以把任意n维数据看成 (n-1)维“立方体”序列。数据立方体是对多维数据存储的一种可视化展示 ,这种数据的实际物理存储可以不同于它的逻辑表示。应注意的是:数据 立方体是n维的,而不限于3维。 4.3.1 什么是数据立方体 31 上面所示的每个数据立方体称作一个方体(cuboid)。于 是,给定维的集合,可以对给定维的每个可能的子集产 生一个方体。结果形成方体的格,每个方体在不同的汇 总级或group by(即维的不同子集)显示数据。方体的格 称作数据立方体。图4.8显示时间维(time)、地点维( location)、商品维(item)和供应商维(supplier)形成 的数据立方体的方体格。 存放最低层汇总的方体称作基本方体(base cuboid)。例 如,图4.8中的4维方体是给定维时间、地点、商品和供应 商的基本方体。图4.6是维时间、地点和商品的3维(非基 本的)方体对所有的供应商汇总。0维方体存放最高层的 汇总,称作顶点方体(apex cuboid)。在我们的例子中, 这是总销售在所有的四个维汇总。顶点方体通常用all标 记。 4.3.1 什么是数据立方体 32 4.3.1 什么是数据立方体 33 4.3.2 多维数据模型的存在形式 实体-联系数据模型(ER模型)广泛用于数据库 设计,其中数据库模式由实体集和它们之间的联 系组成。这种数据模型适于联机事务处理(OLTP )。然而,数据仓库需要简明的、面向主题的模 式,便于联机数据分析(OLAP)。最流行的数 据仓库数据模型是多维数据模型。这种模型可以 以星形模式、雪花形模式、事实星座形模式和雪 暴形模式形式存在。 通过将事实表和维表进行连接,我们就可以得到“ 星形结构(star schema)”。 34 4.3.2 多维数据模型的存在形式 例4.6 “销售”数据仓库的星形模式显示在图4.9中。该模式包含一个中心事 实表(fact table)“销售事务表”和4个维表(dimension table):时间维表 (time table)、销售商品维表(item table)、销售地点维表(location table)和顾客维表(customer table)。在销售事务表中存储着四个维表的 主码和三个度量“销售额”、“销售量”和“预算量”。这样,通过这四个维表 的主键,就将事实表与维表联系在一起,形成了“星形模式”,完全用二维 关系表示了数据的多维概念。 35 4.3.2 多维数据模型的存在形式 我们使用维表和事实表以及它们之间的关系,应用简单的连接运 算,就可以恢复出数据立方体。图4.10形象地说明了星形模式是关 系数据库和数据立方体之间的桥梁。 图4.10 星形模型成为关系数据库和数据立方体间的桥梁 这就是说,建立数据仓库的“星形模式”后,就可以在关系数据库中模 拟数据的多维查询。即:通过维表的主键,对事实表和每个维表做连 接操作,这样一次查询就可以得到数据的值以及对数据的多维描述。 比如图4.9的例子,如果从时间维角度考虑问题,得到的是各个时间段 上公司的销售情况。如果增加一个考虑的因素销售商品,从时间 和销售商品角度考虑问题,得到的是在各个时间段上各个销售商品公 司的销售情况。事实表记录的就是在这些因素限定下对问题的考虑结 果。 36 4.3.2 多维数据模型的存在形式 2. 雪花形模式 在上面介绍的星形模式中,每维只用一个表表示,而每个表包含一组 属性。例如,销售地点维表包含属性集location_id(地点标识), street(街道), city(市),province(省),country(国家)。这种 模式可能造成某些冗余。例如,“大理”和“丽江”都是中国云南省的城市 ,于是,销售地点维表中这些城市实体的属性province(省)和country (国家)中会有冗余,即(,大理,云南,中国),(,丽江,云 南,中国)。在冗余成为问题的时候,这些维表需要被规范化。 雪花形模式(snow flake schema) 是星形模式的变种,其中某些维表是规范化的,因而把数据进一 步分解到附加的表中。结果模式图形成类似雪花的形状。 雪花形模式和星形模式的模型主要不同点 雪花形模式的维表可能是规范化形式,以便减少冗余。这种表易于维 护并节省存储空间。然而,与巨大的事实表相比,这种空间的节省可以 忽略。此外,由于执行查询需要更多的连接操作,雪花形结构可能降低 浏览的性能。这样,系统的性能可能相对受到影响。因此,尽管雪花形 模式减少了冗余,但是在数据仓库设计中,雪花形模式不如星形模式流 行。 37 4.3.2 多维数据模型的存在形式 例4.7 “销售”数据仓库的雪花形模式在图4.11给出。这里中心事实表(fact table)“销售 事务表”与图4.9的星形模式相同。两个模式的主要不同是维表的定义。星形模式中的“ 销售商品维表”在雪花形模式中被规范化,导致新的“销售商品维表”和“供应商维表”。 例如,现在商品维表包含属性item_id、item_name、brand、type和supplier_id,其中, supplier_id连接到包含supplier_id和supplier_type信息的维表。类似地,星形模式中销 售地点维表被规范化成两个新表:“地点维表”和“城市维表”。两个维表通过属性 “city_id”连接。注意,如果需要,图4.11雪花形模式中的“province”和“country”还可以 进一步被规范化。 38 3. 事实星座形 在星形模式和雪花模式的讨论中,我们注意到,它 们都有多个维表,但是只能存在一个事实表。这是因为 一个星形模式或雪花模式对应一个问题的解决(一个主 题),我们在一个问题中通常只讨论“一件事”。比如,从 不同时间、不同商品、不同地点、不同顾客讨论公司的 销售额或销售利润。如果还想从不同时间、不同商品、 不同供货地点、不同供货商来考察其供货额或供货量, 那么,除同星形模式中的公司销售分析事实表外(见图 4.9,4.11),还将出现供货分析事实表,并且供货分析 也将同样涉及时间维、商品维和地点维,同时,还将涉 及供货商维。3个维表中的信息对于这两个问题来说是共 同的,可以考虑共享这部分数据,这种模式可以看作星 形模式的汇集,因此称作星系模式(galaxy schema)或事 实星座形模式。 4.3.2 多维数据模型的存在形式 39 例4.8 图4.12是一个较为典型的事实星座形模式。供货事实表有四个 维或码:time_id、item_id、shipper_id和location_id;两个度量:供货 额和供货数量。事实星座形模式允许事实表共享维表。事实表“销售” 和“供货”共享时间维表、商品维表和地点维表。 4.3.2 多维数据模型的存在形式 40 4. 雪暴形模式 在上述事实星座形模式的基础上,构造维表的多层结构 ,即“星座模式”和“雪花模式”的结合,就得到了“雪暴形模 式”。 例4.9 “销售”和“供货”的雪暴形模式在图4.13给出。这里,两个模 式(雪花形模式和雪暴形模式)的主要不同是维表的定义,即 维表被规范化了。与在雪花模式中讨论的类似,由于查询所需 的连接操作,性能将成为此模式的一个关键问题。当维和事实 表变大时,必须采用有效的查询优化技术和各种索引技术来提 高系统性能。 事实上,“星形模式”是最基本的模式,一个“星形模式”有 多个维表,但是只能存在一个事实表。在“星形模式”基础上, 为了避免数据冗余,用多张表来描述一个复杂维,即在“星形模 式”的基础上,构造维表的多层结构(或称维表的规范化),就 得到“雪花形模式”。如果打破“星形模式”只有一个事实表的限 制,且这些事实表共享部分或全部已有维表信息,这种结构被 称为“事实星座形模式”。再继续扩展,具有多个事实表和多层 维表的结构,我们称之为“雪暴形模式”。如图4.14形象地给出 这4个模型之间的区别和联系。 4.3.2 多维数据模型的存在形式 41 4.3.2 多维数据模型的存在形式 42 4.3.2 多维数据模型的存在形式 43 第四章联机分析处理(OLAP) 4.1 OLAP概念 4.2 OLAP的基本操作 4.3 OLAP的数据模型 4.4 OLAP分类和服务器类型 4.4.1 OLAP的分类 4.4.2 OLAP的三层客户/服务器结构 4.4.3 ROLAP服务器 4.4.4 MOLAP服务器 4.4.5 HOLAP服务器 4.5 基于多维数据库的OLAP(MOLAP) 4.6 基于关系数据库的OLAP(ROLAP) 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结 44 4.4.1 OLAP的分类 在OLAP系统的实现中,按照OLAP的存储方式(数据组织方式)的不 同,可将OLAP分成ROLAP(关系OLAP),MOLAP(多维OLAP)和 HOLAP(混合OLAP)。按照进行OLAP分析动作处理地点的不同,可将 OLAP分成Server OLAP和Client OLAP两种。 图4.15显示了按照不同方式对OLAP进行的分类。 从逻辑上讲,OLAP服务器为用户提供来自数据仓库或数据集市的多维 数据,而不必关心数据如何存放和存放在何处。然而,OLAP服务器的物 理结构和实现必须考虑数据存放问题。 45 4.4.2 OLAP的三层客户/服务器结构 OLAP的具体实现方案通常采用三层客户/服务器结构如 图4.16所示。第一层是数据仓库服务器,它实现与基层运 营的数据库系统的连接,完成企业级数据一致和数据共 享的工作;第二层是OLAP服务器,它根据最终客户的请 求实现分解成OLAP分析的各种分析动作,并使用数据仓 库中的数据完成这些动作;第三层是前端的展现工具, 用于将OLAP服务器处理得到的结果用直观的方式,如多 维报表、饼图、柱状图、三维图形等展现给最终用户。 图4.16 OLAP的三层客户/服务器结构图 这种三层体系结构使数据、应用逻辑和客户应用分离开 ,有利于系统的维护和升级。当系统需要修改功能或者 增加功能时,可以只修改三层中的某些部分,而不需要 像两层的客户/服务器体系那样做整体的改动。 46 4.4.3 ROLAP服务器 ROLAP服务器的体系结构如图4.17所示。使用关系或扩充关系 的DBMS存储并管理数据仓库,而OLAP中间件支持其余部分 。在接收用户的请求时,ROLAP服务器把多维查询转化成SQL 查询,然后由数据仓库服务器对以关系形式存放的数据执行 SQL查询,最终将数据返回给终端客户。 ROLAP服务器包括 DBMS的后端优化,聚集导航逻辑的实现,附加的工具和服务 。由于有强大的关系数据库技术的支撑,ROLAP技术比 MOLAP技术具有更大的可伸缩性。例如,Microstrategy的DSS 服务器就采用ROLAP方法。 图4.17 ROLAP 体系结构 47 4.4.4 MOLAP服务器 这些服务器通过基于数组的多维数据库(MDDB)支持数据的多 维视图。将多维视图直接映射到数据立方体数组结构。如图4.18所 示,MOLAP服务器存储的是多维数据库(MDDB),MDDB将自 动建立索引并进行预运算来提高查询存储性能(MDDB最终将数 据存放回数据仓库,成为数据仓库数据的一部分)。当用户请求 到来时,MOLAP服务器将对MDDB进行多维存取。使用数据立方 体的优点是能够对预计算的汇总数据快速索引。 图4.18 MOLAP 体系结构 48 4.4.5 HOLAP服务器 图4.19 HOLAP 体系结构 HOLAP结构如图4.19所示是ROLAP和MOLAP结构的 混合模式。这种技术得益于ROLAP较大的可伸缩性 和MOLAP的快速计算。例如,HOLAP服务器允许将 大量详细 数据存放在关系数据库中,而聚集保持在分 离的MOLAP存储中。当用户查询 到来时,或转化为 SQL语句直接查询 ,或通过MOLAP服务器对MDDB 进行直接存取。微软的SQL Server 2000支持HOLAP 服务器。 49 第四章联机分析处理(OLAP) 4.1 OLAP概念 4.2 OLAP的基本操作 4.3 OLAP的数据模型 4.4 OLAP分类和服务器类型 4.5 基于多维数据库的OLAP(MOLAP) 4.5.1 多维数据库(MDDB(Multi-Dimensional DataBase) 4.5.2 维的分类(CATEGORIES) 4.5.3 多维数据库存储 4.6 基于关系数据库的OLAP(ROLAP) 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结 50 在RDBMS中,数据总是以关系表的方式来组织。在多维数据 库中,数据将以多维方式来组织,并以多维数据库方式来存储。 多维数据库中的维是通过对问题的分析得到的。如图4.20,假 如分析某企业各个产品在各个地方的销售情况,则可以选取产品 维、地理维,以销售量作为度量变量,这样就形成了一个多维数 据,如图4.20(a)所示。通过“维”,多维数据直观地表达了客观 世界中的“一对多”、“多对多”的关系。如企业各个产品在各个地 区销售量的关系在多维表中能够直观地表现出来。 而在关系数据库中,“多对多”的关系总是转化成多个“一对多” 的关系,如图4.20(b)。在关系数据库中,将“多对多”的关系转 化成多个“一对多”关系有利于数据的一致性和规范化,这符合事 务处理系统的需求,但是这种方式并不能直观地反映人们对事物 的感知。 除了直观上的差异,同多维表相比,对于同样的数据,关系表 需要更多的表项和存储空间。对于需要处理大量数据的OLAP来说 ,应当选择对存储容量需求较小的方式多维表。 4.5.1 多维数据库(MDDB(Multi-Dimensional DataBase) 51 图4.20 数据组织结 构 4.5.1 多维数据库(MDDB(Multi-Dimensional DataBase ) 52 现在我们进一步讨论这两种表的差异,在OLAP中需要 使用多种综合层次的数据,因此对数据进行聚合(求和) 处理是非常普遍的,如果使用关系表求和,比如求所有产 品在东北区的总销量,需要首先选择各种产品在东北区销 售的相关条目,然后求和,这样大大增加了系统的响应时 间,对于大数据量的处理,这个问题将更加严重。 如果使用多维表进行求和,由于多维表本身就是按照 维度组织的,因此只需将东北对应的一列求和即可,如图 4.20(c)所示。同理,如果要统计各个产品的总销售量, 只需将多维表中的横向条目相加即可。利用多维表还可以 进行多个层次的求和。如将冰箱的销售总和同彩电的销售 总和相加,就可得到这两个产品的总销售量。至此,可以 看出多维表在进行多层次数据统计上的优越性。 在实际的OLAP系统中,系统通常先对用户常见请求进 行预处理,当最终用户请求到来时,系统可以直接读取已 经计算好的结果并展现给用户,这就是OLAP中著名的“空 间换时间”技术。 4.5.1 多维数据库(MDDB(Multi-Dimensional DataBase) 53 “空间换时间”这个思想在数据库系统中也有应用,比如存储过 程,对于经常使用的查询、计算等,写成存储过程进行编译、优 化后存储成可执行代码,需要时直接执行。 若对关系表也采用“空间换时间”技术,即将决策分析人员所需 的综合数据都预先统计出来,存放在数据库中。例如,我们可以 在关系数据库的表中加上一行总和的记录见图4.20(d)。在 这张关系表中,由于预先对产品在各地区的销售量进行了求和( 综合),查询时就不用再进行计算了。如果所求的所有总和都已 经被综合的话,只要读取单个记录就可以回答按产品(或按地区 )求和的问题了。这样处理似乎可以得到快速一致的查询响应。 但事实上,“总和”项破坏了关系表中列定义的统一语义,例如图 4.20(d)的地区列中的值表示的是地区名称,而“总和”就成为一 个例外。查询时用户必须了解这种约定。 综上所述,多维数据库的优势不仅在于多维概念表达清晰,占 用存储少,更重要的是它有着高速的综合速度。在MDDB中,数 据可以直接按行或列累加,并且由于MDDB中不像关系表那样重 复的出现产品和地区信息,因此其统计速度远远超过RDBMS,数 据库记录数越多,其效果越明显。 4.5.1 多维数据库(MDDB(Multi-Dimensional DataBase) 54 多维数据库的另一重要概念是维内元素的“类”概念。类是 指按照一定的划分标准对维成员全集的一个划分。比如,产品 可划分成“畅销”、“不畅销”;移动通信业务类型可划分为“通话 ”、“短信”。 前面我们介绍了维的层次(levels),这里又介绍了维的分 类,值得注意的是,维的层次和类是两个不同的概念,维的层 次主要是为了进行数据钻取分析(上探和下钻),让用户能够 查看不同层次的数据。维的分类是对维取值的划分,其目的通 常是为了在不同的类别间进行比较。比如“畅销”、“不畅销”产 品各占产品总量的比重?“通话”、“短信”对移动公司的收益贡献 分别是多少? 4.5.2 维的分类(CATEGORIES) 55 我们总结维的层次和类的主要区别如下: 1. 层次和类表达的意义不同 维层次表达的是维所描述的变量的不同综合层次。表现在层次图中,父 子结点的关系就是层次关系(如图4.21所示)。维层次越高,对应综合程 度越高,粒度也越大。维层次越多,粒度层次也越丰富。 4.5.2 维的分类(CATEGORIES) 图4.21 维的层次和类 维成员的类表达的则是某一子集维成员的共同特征,这个共同特 征是由类属性的某一值来表达的。表现在层次图中,父子结点之间不 存在类的关系,同一层次的维成员才可以划分为类 。如图4.21所示, 商品中的“冰箱”、“彩电”、“空调”等有一个共同特征,即属于电子类, 这个类的特征由类属性“商品大类”的值“电子类”来表达。 56 2. 在层次和类上进行的分析动作不同 在多维数据分析中,既有按维的层次关系进行的分析, 也有按维成员的类进行的分析。但这两类分析动作是不同的 。在维的层次上进行的分析主要有两种:上探和下钻,他们 都是跨越维层次的分析。而按照维成员的类进行的分析主要 有分类和归纳,他们是对兄弟结点之间关系的分析,因而不 可能跨越不同的维层次。 需要指出的是,在实际的多维数据分析应用中,往往是 既要在维的层次关系上,又要在维成员的类上进行错综复杂 的数据分析。这就要求将维的层次与类交叉、组合在一起, 形成更为复杂的层次图。 4.5.2 维的分类(CATEGORIES) 57 在多维数据库(MDDB)中二维数据很容易理解,当维数扩展 到三维甚至更多维时,多维数据库将形成类似于超立方体的结构。 那么,这些超立方体的结构是如何存储的? 实际上,MDDB由许多经压缩的、类似于数组的对象构成,这 种对象通常带有高度压缩的索引及指针结构。每个对象由聚集成组 的单元块组成,每个单元块都按类似于多维数组的结构存储,并通 过计算偏移进行存取。在MDDB中,数据管理主要以维及维成员为 主,大多数MDDB产品还提供了单元级控制,数据封锁可以达到单 元块级。这些管理控制工作均由MDDB中数据管理层实现,一般不 易绕过。 在MDDB中,并非维间的每种组合都会产生具体的值。实际上 ,许多组合没有具体值,是空的或者值为零。另外,许多值重复存 储,如一年中的价格可能一直不变。因此,MDDB必须具有高效的 稀疏数据处理能力,能略过空值、缺省和重复数据。 另外,在MDDB或数据仓库中,时间是最普遍的一个维。几乎 每个人都希望掌握事物的趋势,包括销售趋势、金融趋势、市场趋 势,等等。由于时间同其他维不同,时间往往包含着特有的周期, 不同周期之间存在着转化规则。因此,一种方便的方法是采用时间 序列数据类型,在通常只能存储一个数据的单元里存储一个时间序 列的数据,如一个财政月的销售数据等。这样,就可以简化对时间 的处理,给MOLAP产品的开发带来不少方便。 4.5.3 多维数据库存储 58 第四章联机分析处理(OLAP) 4.1 OLAP概念 4.2 OLAP的基本操作 4.3 OLAP的数据模型 4.4 OLAP分类和服务器类型 4.5 基于多维数据库的OLAP(MOLAP) 4.6 基于关系数据库的OLAP(ROLAP) 4.6.1 维表和事实表 4.6.2 ROLAP与MOLAP比较 4.7 OLAP实现 4.8 OLAP的衡量和特性 4.9 本章小结 59 同专用的多维数据库相比,关系数据库尽管表达多维概念不大自然 ,但在现有关系数据库广泛使用的情况下也不失为一种实用可行的方案 ,比如说Sybase,Informix和Teredata均采用了这种技术。 图4.22 维表抽取示例 4.6.1 维表和事实表 60 ROLAP将多维数据库中的多维结构划分为两类表:一类是 维表,用来记录维度信息;另一类是事实(Fact)表,用来存 储维度交叉点处的度量(Measure)信息及各个维度的码值。 这样,多维数据立方体各个坐标轴上的刻度以及立方体各个交 点的取值都被记录下来,因而数据立方体的全部信息就都被记 录了下来。 换句话说,用维表来记录多维数据库中的维度,将多维数 据立方体的坐标轴上的各个取值记录在一张维表中,这样对于 一个n维数据,ROLAP中就存在n张维表。例如在图4.22中,我 们示例了一个维表抽取的过程。数据立方体由时间维(time) 、商品维(product)和销售市场维(market)构成,时间维度 有4个取值(2001、2002、2003、2004),商品维度有4个取值 (计算机、彩电、冰箱、空调),销售市场维度有4个取值( 中百大,盛兴,新百大,华联),度量是商品的销售额。我们 分别将3个维度抽取为3个维表:时间维表(time table)、商品 维表(product table)、销售市场维表(market table)。 对每一个维来说,至少有一个表用来保存该维的元数据, 即维的描述信息,包括维的层次及成员类别等。 4.6.1 维表和事实表 61 4.6.1 维表和事实表 图4.23 事实表抽取示例 62 事实表是用于记录多维模型中维度交叉点处的度量信息的 关系表,该关系表的结构一般由维度的码值和相应度量值构成 。例如在图4.23中,我们示例了一个事实表抽取的过程。数据 立方体与图4.22中数据立方体相同,即由时间维(time)、商 品维(product)和销售市场维(market)构成,时间维度有4个 取值(2001、2002、2003、2004),产品维度有4个取值(计 算机、彩电、冰箱、空调),销售市场维度有4个取值(中百 大,盛兴,新百大,华联),度量是产品的销售额。于是事实 表的表结构为(time_id, product_id, market_id, sales),依次从 图4.23中阴影平面的右上角开始逐点记录度量信息。右上角对 应于(1,1,1,7000),依次是(1,2,1,5000)、(1,3 ,1,758)、(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加法减法考试题目及答案
- 2025年事业单位工勤技能考试试题预测试卷【预热题】附答案详解
- 2025年辽宁职业学院单招考试文化素质物理试题预测试卷及答案详解一套
- 冬季加绒打底衫穿着指南
- 一、档案袋封皮填写说明及范例
- 景观园林设计与施工一体化项目合同样本
- 类第号上海证券交易所投资者保护基金管理合同
- 离婚财产分割与婚前协议实施及权益保障合同
- 夫妻一方出轨并转移财产导致离婚诉讼起诉合同
- 离婚时房产、车辆等资产分割协议参考样例
- 2024年内蒙古人力资源和社会保障厅事业单位笔试真题
- 升降机风险辨识及防范措施
- 中医治未病健康宣教
- 食堂员工服务培训
- 提升心理抗压能力的技巧
- 中医医术确有专长人员(多年实践人员)医师资格考核申请表
- 低空飞行器设计
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 脑梗塞并出血护理查房
- 三对三篮球赛记录表
评论
0/150
提交评论