论文部分内容阅读
目前在各类企业信息系统、特别是高校信息系统应用中,经常会遇到一类新的应用需求,用户经常会随机地突然需要查询某些特定信息,这些查询需求给当前信息系统带来了新的挑战。本文提出与OLTP、OLAP应用相对应的联机即席查询OLAQ(On-line Ad-hoc Query)的概念,以概括即席查询应用的需求和特点,并设计开发一种新的灵活易用的即席查询工具-SwiftQuery。该工具的核心思想是通过业务数据对象来封装业务人员所关心的数据集合,以此来屏蔽底层数据库模式的技术细节。本文的主要工作包括:(1)提出业务数据对象BDO(Business Data Object)的概念,利用其对数据库中表的元组或属性进行计算、封装,使得用户能够使用熟悉的具有业务语义的业务数据对象表达即席查询需求。(2)针对即席查询需求,利用语义缓存的思想,设计基于BDO的缓存块模型-BDO缓存,BDO缓存舍弃了传统语义缓存中对结果集的谓词条件描述,而以BDO描述缓存。该方式牺牲部分空间作为代价,提高查询的执行效率。(3)研究通过BDO组合表达即席查询需求的方法,以及根据BDO组合生成SQL语句的生成算法,在此基础上提出一种基于BDO缓存以及BDO模式匹配的查询处理优化算法bpmTrim(bdo pattern matcher Trim),该算法可以有效提高即席查询效率。(4)研究BDO缓存的替换策略,在传统算法的基础上,提出一种可充分考虑访问频率、更新频率、替换代价等因素的ILFU(Improved Least Frequently Used)替换策略,该策略能够更好地提高BDO缓存的性能。(5)在上述工作的基础上,实现了基于BDO缓存的即席查询工具SwiftQuery原型系统,实验结果验证该工具能够很好地解决实际应用中的即席查询需求,本文关键技术及相关解决方案是有效的。