论文部分内容阅读
物化视图是一种将代价大、重复次数多的查询预先计算出来并用于回答用户查询的优化手段,在分析型应用环境中能够非常有效地提升数据库系统的响应速度。为了满足联机分析处理(Online Analytical Processing, OLAP)、数据挖掘等分析性应用环境的要求,达梦(Da Meng, DM)数据库管理系统需要支持物化视图功能。要实现对物化视图的支持,必须解决好视图维护和利用物化视图对用户查询进行优化这两个关键问题,并提供一个适合达梦数据库管理系统的实现方案。针对分析性应用环境下物化视图引用的关系的变化量小的特点,采用增量的方式对物化视图进行维护比重新执行一次视图内容的效率要高很多。为了在达梦数据库管理系统中实现物化视图的增量维护,并保证增量维护机制的正确性,为SPJ查询中的选择、投影、连接操作引出了8条的等价增量推导规则。为了实现对分组聚集操作的维护,引入了两个专用附加操作符来更新由插入和删除操作所带来的聚集结果的变化。利用关系代数理论对所给的增量维护机制的正确性进行了证明。为了利用物化视图优化用户查询,首先利用系统中定义的物化视图生成所有与原查询等价的重写查询,然后在所生成的等价查询中选择一条代价最小的查询作为最终查询。查询重写的过程分为对关系乘积、选择条件、分组属性列表和输出部分的重写4个阶段构成,为每个阶段定义了一个等价重写子过程,并对等价重写的正确性进行了证明。在实现的过程中,对达梦数据库管理系统的框架进行了扩充和修改。引入了物化视图对象并添加了物化视图定义器用于执行与物化视图相关的DDL(Data Definition Language)语句,维护保存物化视图元数据的数据字典。添加了查询重写索引管理模块,将系统中的物化视图的定义用一棵称为查询重写索引(Query Rewrite Index, QTI)的多路搜索树组织起来,引入了利用物化视图进行查询重写的模块,对查询重写索引进行遍历生成所有可能的等价查询,利用代价估算器对等价查询的执行代价进行估算。修改了数据更新语句的查询计划,当对物化视图所依赖的关系中的元组进行修改时,首先获取增量数据保存到增量辅助表中,然后依次对物化视图和基表进行修改。