论文部分内容阅读
给定一条查询,近似查询返回数据集中与该查询相似的所有实体。在关系数据中,每个实体被表示为一个单一的记录,因此,使用基于记录级别的相似度评价方法即可用来评价关系数据中实体与查询之间的相似度。然而,在时态数据中,每个实体被表示为一组记录,其中,每个记录都附带其创建的时间戳。如何有效地定义时态数据中实体与查询之间的相似度是一个开放的问题,其主要原因为:当查询时态数据中的实体时,用户易于把该实体中不同时间段的信息组合在一起形成查询条件,从而造成了使用基于记录级别的相似度评价方法无法有效地评价时态数据中实体与查询的相似度。为此,把近似查询中记录与查询之间的相似度定义问题扩展到一个一般化的相似度定义问题:即实体与查询之间的相似度。为此,首先研究了时态数据中近似查询的有效性问题:即如何评价时态数据中实体与查询之间的相似度。 (1)总结了当前用来描述关系数据中记录与查询之间相似度的各种评价模型,并分析它们的优缺点。借助于记录级别的相似度评价模型,可以定义关系数据中实体(等价于记录)与查询之间的相似度。而在时态数据中,每个实体通常以不同时间戳的多个记录形式存在。同时,用户的查询很可能把同一实体不同时间段的信息错误地组合在一起。为了解决这个问题,把每个实体看成是一组“虚拟记录”,其中,每个虚拟记录是由该实体不同时间段的信息组合而成的。在此工作中,提出了一种新颖的评价方法,来定义虚拟记录与查询之间的相似度值。进一步地,每个实体中所有虚拟记录的最大相似度值作为该实体与查询之间的相似度; 其次,还研究了时态数据中近似查询的性能问题:即如何快速地找到时态数据中与查询相似的所有实体: (2)由于每个实体所包含虚拟记录个数与属性的个数成指数关系,与其包含的记录个数成多项式关系。因此,计算实体中每个虚拟记录与查询之间的相似度,其性能代价极其昂贵。为此,提出了一种基于限定-剪枝-改进(Bounding-Pruning-Refining)策略的DTA算法。其主要思想是:对于每个实体,不需要一开始就计算其全部虚拟记录与查询之间的相似度,而是每一次计算一小部分虚拟记录与查询之间的相似度来限定或改进该实体与查询之间的相似度范围。当剩下部分的虚拟记录与查询之间的相似度无法用来改进该实体与查询之间的相似度时,则当前该实体与查询之间相似度范围的下界即是该实体与查询之间的相似度值。通过在真实数据集和人造数据集的试验中,说明了该评价模型的有效性和DTA算法的性能。 虽然DTA算法在回答时态数据中的近似查询具有较高的性能,但是在回答一些特殊数据集上的近似查询,例如,在回答关系数据上的近似查询(关系数据中的实体概念等价于记录概念)时,其性能不够理想。为此,对关系数据中的近似查询性能进行了优化: (3)给定一个字符串数据集和一个查询字符串,在使用编辑距离作为相似度函数的前提下,研究如何更快地回答阈值和KNN这两种近似查询。目前,相关的研究工作主要围绕在如何提高回答阈值近似查询的性能,但不能够很好地支持KNN近似查询。为此,提出了一个基于数据划分和B+-树索引的PBI算法。与现存的工作相比,PBI算法能够同时快速地回答阈值和KNN近似查询。此外,由于人们的方法是基于B+-树索引的,因此其可以很容易地集成到数据库管理系统当中; (4)给定一个记录集和一个查询记录,在使用权重向量模型的相似度评价方法(用来定义记录与查询之间相似度的一种评价模型)下,研究如何更快的回答KNN近似查询。对于每条记录,(i)通过使用某个指定的相似度函数来计算其与查询在各个属性上的相似度;(ii)每个属性都被分配一个权重值,该记录的相似度值定义为各个属性上的相似度值乘以相应权重的几何平均。然而不幸的是,在该框架下,需要逐一地计算每个记录与查询之间的相似度才能获得与查询相似的所有记录。当数据集包含的记录数量较多时,其计算代价相当昂贵。为了避免计算每个记录的相似度,提出了两种基于倒排索引的解决方法,包括ScanIndex和Top-Down,并在实验中展示了这两种方法的性能.