论文部分内容阅读
近年来,XML数据的查询技术已经成为研究的热点。根据查询模式的不同,XML数据查询分为XML结构查询和XML关键字查询,但是对比XML结构查询,更多的用户习惯于不需要专业领域知识的XML关键字查询。随着数据采集和处理技术的进步,真实世界中的大部分数据都是不确定的。不确定XML数据是近年来研究者们提出的一种新的不确定数据的表示形式,不确定XML数据已经大量应用到金融、电信、军事等领域。目前对于不确定XML的关键字查询的研究很少,并且由于不确定XML关键字查询的每一个结果都对应一个概率值,所以用户通常希望得到前k个概率值最大的结果。不确定XML的Top-k关键字查询算法得到了广泛的关注。首先,已有的不确定XML关键字查询都是基于栈结构实现的,需要频繁的进栈、出栈操作以及频繁的字符串比较,时间效率低下。为了解决这一问题,本文提出一种基于动态Keyword数据仓的不确定XML关键字查询算法PrList。算法首先初始化动态Keyword数据仓,然后自底向上、自左向右遍历Keyword数据仓中的节点求解SLCA节点,不需要进出栈和字符串的比较。其次,目前不确定XML的Top-k关键字查询仅返回概率值排在前k的根节点,需要进一步的处理才能构建满足特定条件下的子树,时间效率低下。为了解决这一问题,本文定义了一种新的基于最小相关联通子树的Top-k查询语义SRCT-Top-k,SRCT-Top-k查询返回概率值排在前k的最小相关联通子树。为了便于处理SRCT-Top-k查询,对动态Keyword数据仓进行了扩展,形成扩展动态Keyword数据仓,然后基于扩展动态Keyword数据仓提出了PrListTop-k算法来处理SRCT-Top-k查询。PrListTop-k算法仅扫描一次扩展动态Keyword数据仓就能构建满足特定条件下的子树,并且制定的过滤策略可以大量地减少中间结果。本文进行了大量的对比实验。通过设定不同的查询条件,将提出的PrList算法与PrStack算法进行对比,并将提出的PrListTop-k算法与没有过滤策略的PrListTop-k-N算法进行对比。对最终的实验结果进行了详细的分析,证明了所提出的两种算法具有高效性。