=============需要原版答案请留言!!==============
4.1 试述多个异构信息源的集成,为什么许多公司更喜欢更新驱动的方法(构造和使用数据仓库),而不是查询驱动的方法(适用包装器和集成器)。 描述查询驱动的方法比更新驱动的方法更可取的情况。
对于决策查询和经常问到的查询,更新驱动的方法更为可取。这是因为昂贵的数据集成和聚合计算是在查询处理时间之前完成的。为了将在多个异构数据库中收集的数据用于决策过程,必须分析和解决多个数据库之间的任何语义异构问题,以便可以对数据进行集成和汇总。如果采用查询驱动的方法,这些查询将被转换为每个数据库的多个(通常是复杂的)查询。转换后的查询将与本地站点的活动竞争资源,从而降低其性能。此外,这些查询将生成一个复杂的答案集,这将需要进一步的过滤和集成。因此,查询驱动的方法通常是无效且昂贵的。数据仓库中使用的更新驱动方法更快,更高效,因为大多数查询可以在线进行。
对于很少使用的查询,参考最新数据和/或不需要聚合的查询,与更新驱动方法相比,查询驱动方法更为可取。在这种情况下,如果仅使用少量和/或相对较小的数据库,则组织为建立和维护数据仓库而付出的沉重费用可能是不合理的。如果查询依赖于当前数据,则情况也是如此,因为数据仓库不包含最新信息。
4.2 简要比较以下概念,可以使用例子解释你的观点。
(a)雪花模型,事实星座,星网查询模型 (b)数据清理,数据转换,刷新 (c)企业仓库,数据集市,虚拟仓库
(a)雪花模式和事实星座都是星形模式的变种,它由一个事实表和一组维表组成;雪花模式包含一些规范化的维度表,而事实星座则包含一组事实表共享维表。星网查询模型是查询模型(不是模式模型),它由从中心点发出的一组径向线组成。 每条径向线代表一个尺寸,沿该线的每个点(称为“足迹”)代表该尺寸的水平。 距中心的每一步代表维度概念层次的逐步降低。 顾名思义,星网查询模型用于查询,并为用户提供OLAP操作的全局视图。
(b)数据清理是检测数据中的错误并在可能时进行纠正的过程。 数据转换是将数据从异构源转换为统一的数据仓库格式或语义的过程。 刷新是将更新从数据源传播到仓库的功能。
(c)企业仓库收集有关整个组织的主题的所有信息,而数据集市则包含整个企业范围数据的子集,这对特定的用户群来说很有价值。企业仓库通常通过一个或多个操作系统或外部信息提供者提供企业范围的数据集成,并且在范围上具有跨功能,而数据集市则局限于特定的选定主题(例如客户,物料和销售对象,营销数据集市)。企业仓库通常包含详细数据以及汇总数据,而数据集市中的数据往往是汇总的。 企业数据仓库可以在传统大型机,计算机超级服务器或并行体系结构平台上实现,而数据集市通常在基于UNIX / LINUX或Windows的低成本部门服务器上实现。企业仓库的实施周期可能需要数月或数年,而数据集市的实施周期更可能以几周为单位。虚拟仓库是对操作数据库的一组视图。 为了进行有效的查询处理,可能仅实现一些可能的摘要视图。 虚拟仓库易于构建,但在操作数据库服务器上需要额外的容量。
4.3 假设数据仓库包含三个维—— time, doctor, 和patient,两个度量——count和charge,其中,charge是医生对一位病人的一次诊治的费用。
(a)列举三种流行的数据仓库建模模式。
(b)使用(a)中列出的模式类别之一为上述数据仓库绘制一个模式图。
(c)由基本方体[day,doctor,patient]开始,为列出2010年每位医生的收费总数,应该执行哪些的OLAP操作?
(d)为了获得相同的结果,编写一个SQL查询,假设数据已存放在关系数据库中,其模式为
fee(day,month,year,doctor,hospital,patient,count,charge)。
(a)流行用于数据仓库建模的三类模式是:星型模式、雪花模式和事实星座模式。
(b)
(c)time维:由“day”上卷到“year”, patient维:由“patient_name”上卷到“all”,对year=2010进行切片
(d)select doctor, SUM(charge) from fee where year=2010 group by doctor
4.4 假设Big_University的数据仓库包含如下四个维——student,course,semester和teacher,两个度量——count 和 avg_grade。 在最低的概念层时(例如,对于给定的学生,课程,学期和教师的组合),度量avg_grade存放学生的实际课程成绩。 在较高的概念层,avg_grade存放给定组合的平均成绩。 (a)绘制该数据仓库的雪花模式图。
(b)由基本方体[student,course,semester,instructor]开始,为列出Big_University每个学生的CS课程的平均成绩学生,应该执行哪些特定的OLAP操作(如由学期上卷年级)。
(c)如果每个维有5层(包括all),例如“student < major < status < university < all”,那么这个数据立方体将包含多少个方体(包括基础方体和顶点方体)?
(a)
(b)• Roll-up on course from course_id to department.
• Roll-up on student from student_id to university.
• Dice on course, student with department=“CS” and university = “Big_University”.
• Drill-down on student from university to student name.
(c)这个数据立方体包含个方体。
4.5 假定数据仓库包含4个维—— date、 spectator、 location 和game, 2个度量——count和charge, 其中charge是观众在给定的日期观看节目的费用。观众可以是学生、成年人或老年人,每类观众有不同的收费标准。 (a)画出该数据仓库的星形模式图。 (b)由基本方体[date, spectator, location, game] 开始,为列出2010年学生观众在GM_Place 的总付费,应当执行哪些OLAP操作? (c)对于数据仓库,位图索引是有用的。以该数据立方体为例,简略讨论使用位图索引结构的优点和问题。
(a)
(b)• Roll-up on date from date_id to year.
• Roll-up on game from game_id to all.
• Roll-up on location from location_id to location name. • Roll-up on spectator from spectator_id to status.
• Dice with status=“students”, location_name=“GM_Place”, and year=2010.
(c)位图索引对于基数较小的值域是有利的。 例如,在此多维数据集中,如果对维度位置进行了位图索引,则位置上的比较,联接和聚集操作将化为位算术,从而大大减少了处理时间。 此外,长位置名称的字符串可以用一个位表示,这导致空间和I / O的显着减少。 对于具有高基数的维(例如本示例中的日期),用于表示位图索引的向量可能会很长。 例如,十年的数据收集可能会产生3650个日期记录,这意味着事实表中的每个元组都需要3650位(或大约456个字节)来保存位图索引。
4.6 数据仓库可以用星形模式或雪花模式建模。简略讨论这两种模式的相似点和不同点,然后分析它们的相对优缺点。哪种模式更实用?给出你的观点并陈述理由。
从某种意义上来说,它们都是相似的,因为它们都具有一个事实表以及一些维表。主要区别在于雪花模式中的某些维表已被规范化,从而将数据进一步拆分为其他表。星型模式的优点是其简单性,可以提高效率,但需要更多空间。对于雪花模式,它通过共享公用表来减少一些冗余:这些表易于维护并节省一些空间。但是,与事实表的典型大小相比,效率较低且节省的空间可忽略不计。因此,从经验上讲,星型方案会更好,因为只要空间要求不是太大,效率通常就比空间具有更高的优先级。在行业中,有时来自雪花模式的数据可能会被规范化成星形模式以加快处理速度。另一个选择是使用雪花模式来维护维,然后向用户呈现折叠成星形的相同数据。
4.7为地区气象局设计 一个数据仓库。气象局大约有1000个观测点,散布在该地区的陆地和海洋,收集基本气象数据,包括每小时的气压、温度、降水量。所有的数据都送到中心站,那里已收集了这种数据长达十余年。你的设计应当有利于有效的查询和联机分析处理,以及有效地导出多维空间的一般天气模式。
由于气象局在整个陆地和海洋各地散布着约1000个探测器,因此我们需要构建一个空间数据仓库,以便用户可以按月,按地区以及温度和降水的不同组合在地图上查看天气模式, 并可以在任何维度上动态向下或向上滚动以探索所需的模式。
该天气空间数据仓库的星型结构可以如下图所示构建。
4.8 数据仓库实现的流行方法是构造-一个称为数据立方体的多维数据库。不幸的是,这常常产生大的、稀 疏的多维矩阵。 (a) 给出一个例子,解释这种大型稀疏数据立方体。 (b) 设计一种实现方法,可以很好地克服稀疏矩阵问题。注意,你需要详细解释你的数据结构,讨 论空间需求,以及如何从你的结构中提取数据。 (c)修改你在(b)中的设计,以便处理增量数据更新。给出你的设计理由。
(a)一个巨大而稀疏的数据立方体的例子:是从电话公司的计费数据库中生成的,该数据库保留有关每个客户的计费信息的记录,例如联系信息,付款方式,付款日期和详细的呼叫记录。 对于电话公司而言,为每个客户保留详细的通话记录超过三个月将非常昂贵。 因此,从数据库中删除该信息将是有益的,例如,仅保留已拨打的电话总数,记帐的总分钟数和记帐的金额。 计费数据库的最终计算出的数据立方体将具有大量丢失或删除的数据,从而导致庞大而稀疏的数据立方体。(类似于一个魔方一样,该多维立方体有好多属性缺失就类似于魔方有好多个组成块丢失。)
(b)
(c)
4.9 关于数据立方体度量计算: (a)根据计算数据立方体所用的聚集函数,列出度量的三种类型。 (b)对于具有三个维time、location 和product的数据立方体,函数variance (方差)属于哪一类?如果立方体被分割成一些块,说明如何计算它。 提示:计算variance函数的公式是: (c) 假定函数是“最高的10个销售额”。讨论如何在数据立方体中有效地计算该度量。
(a)度量的三种类型:分布的(整体计算和将整体分成多个单元计算的结果一样),代数的(不是分布的,但可由分布函数相互之间的运算得到)和整体的(只能直接由整体给出结果)。
(b)方差属于代数的度量。如果将多维数据集划分为多个块,则可以按以下方式计算方差:逐一读取块,跟踪累积(1)元组数量,(2)(xi)^2之和,(3)xi之和。 读取所有块后,计算xi的平均值,即xi的总和除以元组总数。 使用提示中所示的公式来获得方差。
(c)
首先对10个存储单元随意选定10个销售额
对这10个销售额从大到小排列
在立方体中读元组,如果其销售额大于这10个销售额中的元素,就把该元素插入到刚好比它大的元组后面,并且去掉最后一个最小的销售额。
重复3中的操作,直到整个立方体的元组取完。
4.10 假设公司想设计一个数据仓库,以便于以联机分析处理方式分析移动车辆。公司以如下格式记录大量汽车运动数据: (Auto_JID, location, speed, time)。 其中Auto_ID每个代表个车辆,涉及诸如比ve-hicle_category、 driver_category 等信息;每个location 沙及城市的一条街道。假定有一个该城市的街道图。 (a)设计一个数据仓库,以便于多维空间的有效联机分析处理。 (b)运动数据可能包含噪声。讨论如何开发一种方法, 自动地发现该数据库中可能被错误地记录的数据记录。 (c)运动数据可能是稀疏的。讨论如何开发一种方法, 尽管数据稀疏,但是仍然能够构造可靠的数据仓库。 (d)如果你想在特定的时间开车从A到B.讨论系统如何使用仓库中的数据,设计一条快速的路线。
4.11 射频识别 (RFID)通常用来跟踪对象运动,进行库存控制。RFID阅读器可以在任意预定的时间近距离成功地读取RFID标签。假设公司想设计一个数据仓库,便于以联机分析处理方式分析具有RFID标签的对象。假设公司以格式(RFID, at_lcation, time) 记录大量RFID数据,并且还有一些关于携带RFID标签的对象的信息,例如(RFID, produed_mame, product_calegory, poducer, date_produced, price)。 (a)设计一个数据仓库,以方便这类数据的有效登记和联机分析处理。 (b) RFID数据可能包含大量冗余信息。讨论种方法, 它在数据登人该RFID数据仓库时,最大限度减少冗余。 (c) RFID数据可能包含大量噪声,如遗漏登记和ID误读。讨论-种有效清理 RFID数据仓库中噪声的方法。 (d)你可能想进行联机分析处理,按月、品牌和价格区间确定有多少台电视机从洛杉矶港运到伊利诺伊州尚佩恩市的BestBuy。如果你在该数据仓库中存放了这种RFID数据,概述如何有效地做这件事。 (e)如果一位顾客送回一桶牛奶,并抱怨说在过期之前它已经变质,讨论如何在数据仓库中调查这一情况,找出问题是出在运输还是储在上。
4.12在许多应用中,新的数据集递增地添加到已有的大型数据集中。因此,一个重要的考虑是,度量是否能够以增量方式有效地计算。以计数、标准差和中位数为例,说明分布或代数度量有利于有效的增量计算,而整体度量不行。
4.13 假设你需要在数据立方体中记录三种度量: min()、average ()和median()。 倘若数据立方体允许递增地删除数据(即每次一小部分), 为每种度量设计有效的计算和存储方法。
对于min,请为每个长方体保留<min_val,count>对,以注册最小值和其计数。 对于每个删除的元组,如果其值大于min_val,则不执行任何操作。 否则,减少相应节点的计数。 如果计数减少到零,请重新计算结构。
对于平均值,每个长方体都保持一对<sum,count>。 对于每个删除的节点N,减少计数并从总和中减去值N。 计算平均值=总和/计数。
对于中位数,请保留少量的中心值p(例如p = 10)和两个计数:向上计数和向下计数。 每次删除可能会更改计数或删除中心值。 如果中位数不再属于这些中心值,请重新计算该集合。 否则,可以很容易地从以上设置中计算出中位数。
4.14 在数据仓库技术中,多维视图可以用关系数据库技术( ROLAP)、或多维数据库技术(MOLAP) 或混合数据库技术(HOLAP)实现。 (a)简要描述每种实现技术。 (b)对每种技术,解释如下函数如何实现: i数据仓库的产生( 包括聚集) ii.上卷 i下钻 iv.增量更新 (c)你喜欢哪种实现技术?为什么?
(a)ROLAP服务器:这是一种中间服务器,介于关系的后端服务器和客户前端工具之间。它们使用关系的或扩充关系的DBMS存储并管理数据仓库数据,而OLAP中间件支持其余部分。
MOLAP服务器:这些服务器通过基于数组的多维存储引擎,支持数据的多维视图。它们将多维视图直接映射到数据立方体数组结构。
HOLAP服务器:结合POLAP和MOLAP技术,得益于POLAP较大的伸缩性和MOLAP的快速计算。HOLAP服务器将大量详细的数据存放在关系数据库中,而聚集保持在分离的MOLAP存储中。
(b)
i数据仓库的产生( 包括聚集)
ROLAP:使用一个OLAP服务器,由一个汇总事实表关系的或扩充关系的DBMS来产生数据仓库,这个事实表可以存储给定立方体的聚集数据和给定立方体的模式连接键指出的抽象级别的数据。
MOLAP:使用多维数组结构来存储数据和多路数组聚集来计算数据立方体。
HOLAP:应用一些关系数据库来存储大量详细的数据和一些低层次的聚集,应用一个MOLAP来存储高层次的聚集。
ii.上卷
ROLAP:沿一维从汇总的事实表上卷,从包含期望维的泛化的数据中寻找记录。
MOLAP:在数据立方体中上卷维,直接到达期望维的概念层。
HOLAP:与POALP与MOLAP上卷方法相似,主要体现在依靠在相应维的执行中所使用的技术。 iii下钻
ROLAP:使用汇总的事实表往下下钻,是为了寻找表中的记录,这个表包含对期望维的一个泛化。
MOLAP:为了在数据立方体中执行下钻操作,直接降低概念分层以得到期望的维。
HOLAP:下钻方式与ROLAP与MOLAP类似 iv.增量更新
ROLAP:为了执行增量更新,先检查相应元组是否在汇总的事实表中,如若不在,则插入元组到汇总的事实表中,并且向上传播;否则更新元组值,并且也向上传播。
MOLAP:检查相应元组是否在数据立方体中,如若不在则插入元组到数据立方体中,并向上传播;否则更新元组值,并且向上传播。
HOLAP:增量更新方式与ROLAP与MOLAP类似。
(c)
HOLAP通常是首选,因为它结合了ROLAP和MOLAP方法的优点并避免了它们的缺点。 如果立方体非常密集,则通常首选MOLAP。 如果数据稀疏且维数高,则单元太多(由于指数增长),在这种情况下,通常希望计算冰山立方体而不是实现完整的立方体。
4.15 假设数据仓库包含20个维,每个维有5级粒度。 (a)用户感兴趣的主要是4个特定的维,每维有3个上卷和下钻频繁访问的层。如何设计数据立方体结构,能有效地对此予以支持? (b)用户时常想从一两个特定的维钻透数据立方体,到原始数据。如何支持这一特征?
(a)一个有效的数据立方体结构能够给予支持,可以使用部分物化或者方体的选择计算。通过仅计算整个可能的方体集合的适当子集,可以将所需的存储空间总量最小化,同时保持快速的响应时间并避免重复计算。
(b)由于用户只想在一维或二维中钻透数据立方体,因此可以通过动态计算所需的方体来支持这一特征。由于用户可能很少需要该功能,因此在运行中一维或二维上计算聚合所需的时间应该可以接受。
4.16数据立方体C具有n个维。 每个维在基本方体中怡有p个不同值。假定没有与这些维相关联的概念 (a)基本方体单元的最大个数可能是多少? (b)基本方体单元的最小个数可能是多少? (c)数据立方体C的单元(包括基本单元和聚集单元)的最大个数是多少? (d)数据立方体C的单元的最小个数是多少?
(a),这是您可以在每个维度上使用p个不同值形成的最大元组数。
(b)p,至少需要p个元组才能在每个维中包含p个不同的值。 在这种情况下,没有元组在任何维度上共享任何值。
(c),参数与(a)部分相似,但是现在有了p + 1,因为除了每个维的p个不同的值之外,我们还可以选择*。
(d),最小单元数是每个方体仅包含p个单元(顶点除外,其中单个单元包含一个顶点)。
4.17三种主要的数据仓库应用即信息处理、分析处理和数据挖据的区别是什么?讨论OLAP挖掘(OLAM)的动机。
信息处理:支持查询和基本的统计分析,并使用交叉表、表、图表或图进行报告。
联机分析处理:支持基本的OLAP操作,包括切片与切块、下钻、上卷和转轴。联机分析处理的主要优势是支持数据仓库的多维数据分析。
数据挖掘:支持知识发现,包括找出隐藏的模式和关联,构造分析模型,进行分类和预测,并使用可视化工具提供挖掘结果。
注:【信息处理用于查询,发现有用的信息。这种查询的回答反映直接存放在数据库中的信息,或通过聚集函数可计算的信息;它们不反映复杂的模式,或隐藏在数据库中的规律,因此信息处理不是数据挖掘。联机分析处理向数据挖掘走近了一步,因为它可以由用户选定的数据仓库子集,在多粒度上导出汇总的信息】。OLAP挖掘(OLAM)的动机:
数据仓库中数据的高质量:数据仓库中的高质量数据(即集成,一致和干净的数据)是OLAP和数据挖掘的宝贵来源。
基于OLAP的多维数据探索:分析处理使用基本的OLAP操作,例如切片和切块,向下钻取,汇总以及对历史数据进行透视操作,以便对数据仓库数据进行多维分析。
环绕数据仓库的信息处理基础设施:全面的数据处理和数据分析基础设施已经围绕数据仓库系统的建立,明智的做法是尽量利用可用的基础设施,而不是一切从头做起。