论文部分内容阅读
数据仓库是市场激烈竞争的产物,它将大量用于事务处理的数据库数据进行清理、抽取和转换,并按决策主题的需要重新进行组织,以达到有效决策支持的目标。自从它上世纪90年代初被提出以来,迄今已经形成潮流。在美国,数据仓库已成为紧跟Internet之后处于第二位的技术热点。作为数据仓库技术研究的热点之一,实体化视图的联机维护是数据仓库联机维护技术中的一个关键技术。它是指,在数据仓库为用户提供服务的同时,当数据库中的原始数据发生改变时,系统能实时地将这种变化反映到数据仓库中,使相应的实体化视图得到及时的刷新。现有的数据仓库产品采用的都是定时脱机维护策略:系统先搜集记录,但不立刻加入数据仓库,而是采用定时技术对数据仓库进行增量更新,期间数据仓库被禁止使用。所以,许多采用现有数据仓库产品的公司都是利用夜晚对数据仓库进行刷新维护,以保证其在正常工作时间内能够读取数据仓库内的数据。但是,这种维护方式面临3个重要的问题:第一,随着全球经济一体化的推进,跨地区、甚至于跨国企业不断涌现。对于这些企业来说,由于时区的原因,专门对系统进行更新维护的“夜晚”将越来越难以确定,从而可能影响到企业数据的及时传送。第二,随着应用的不断深入,当数据量非常大的时候,这种维护方式所用的时间也会越来越长。同时,由于定时技术在刷新系统期间,对数据仓库是禁止使用的,而系统的维护工作必须在次日清晨用户开始使用数据仓库之前完成,因此时间是一个必须认真考虑的限制因素。第三,定时技术容易使信息过时。在一些对实时性要求比较高的关键任务中,如战场决策等,这种脱机维护方式是不能够被接受的。因此,开展24(小时)×7(天)的数据仓库实体化视图联机维护工作模式研究,是一个有着实际意义的课题。对于单数据源单视图环境下的数据仓库实体化视图的联机维护问题,论文通过引入数据扩展模式的概念,对数据源的修改信息进行分类记录;论文采用版本控制、补偿思想和应答机制来协调数据源与数据仓库间的数据更新,提出了相应维护算法Glide;该算法分为Glide-DW和Glide-DB两部分,分别在数据仓库端和源数据库端执行,以保证数据仓库实体化视图数据与源的一致性;对于一些必须通过访问源数据库才能给出的OLAP查询等,算法Glide也保证了它们的一致性;算法修正了前人算法中的一些不足,并提高了算法的健壮程度和源数据库端CPU<WP=5>的利用率;论文指出,算法Glide是完全一致收敛的,并给出了严格的数学证明;且通过一个示例说明了该算法在实际中的具体运用;对于包含源关系关键属性的数据仓库实体化视图定义,论文介绍了针对性维护算法ECA-Key.多数据源联接的数据仓库实体化视图的一致性维护,是该论文研究的第二个问题。其问题的难点在于,由于业务分布、介质及网络通信等方面的原因,数据仓库收到的查询计算结果,和它向各数据源发出的计算查询顺序并不一致,从而引起更新维护后数据的不一致。对于包含源关系关键属性的数据仓库实体化视图定义,论文介绍了针对性维护算法Strobe及其改进算法Strobe*,并给出算法Strobe*强一致收敛的理论证明。对于一般情景下的多源维护,论文提出了一个强一致普适性算法M-Glide,它是算法Glide的一个本质推广;算法引入动作列表(action list)概念,用于记录数据仓库端发出的操作序列集,并通过它保证维护提交的动作顺序和集成器收到的消息的顺序一致,从而确保当提交维护事务后数据仓库视图值与源的一致性;文章同时给出了一个说明示例。粒度是数据仓库的重要概念,在数据仓库中,多重粒度是必不可少的。如何进行粒度视图,即基本方体与聚合格间的维护,同时保证它们之间,以及它们与数据源之间的数据一致性,是论文研究的另外两个问题。论文引入了视图更新表(View Update Table)的概念,以用于记录各数据源记录变化对数据仓库视图的影响,于是当视图更新表判定当返回的查询结果,已能引起各数据仓库视图间的数据达到一致状态时,将由合并进程生成一个统一的维护事务向数据仓库提交;论文介绍了多视图维护算法SPA及PA,分别用于处理单一更新与集中处理的不同情况;算法保证当数据源发生变化时,多视图的维护能够确保视图数据与源之间,同时各视图之间的数据一致性。论文指出,简单画笔算法SPA是完全一致收敛的,而画笔算法PA是强一致收敛。对于带有聚集函数的视图维护问题,其实际背景是多维数据库的立方体概念。数据仓库的物理结构一般采用星型结构的关系数据库。星型结构由事实表和维表组成,多个维表之间形成多维数据结构。星型结构的数据体现了空间的多维立方体,聚合格即是事实表与相应维表之间的聚集联接。如何维护这些聚合格,可以看作是多视图维护的一个特例。与多视图维护不同的是,这些聚合格带有聚集函数定义,同时引发它们更新维护的原因在于基本方体的变化。论文在前人研究的基础上,提出了改进算法Refresh*,研究当基本方体发生增删变化时,聚合格如何反映这种的变化。算法给出了聚合格维护的一个具体方法,与原有的算法相比,算法Refresh*在时间复杂度上有很大的改进。论文还