首页> 中国专利> 一种关系数据库中基于主题类簇单元的关键词查询方法

一种关系数据库中基于主题类簇单元的关键词查询方法

摘要

一种关系数据库中基于主题类簇单元的关键词查询方法,涉及信息检索领域,尤其涉及一种关系数据库中基于主题类簇单元的关键词查询方法。本发明要为解决现有关键词在线查询方法存在查询过程中频繁的表连接所带来巨大时间开销的问题,而现有关键词离线查询方法对于内部结构复杂、数据量庞大的大规模数据库上的查询存在查询效率低的问题。一种关系数据库中基于主题类簇单元的关键词查询方法按以下步骤进行:1、主题类簇单元构建过程;①、基于数据表特性和查询日志垂直分组;②、提出主题类簇中表连接顺序优化方案;③、基于主题类簇元组关联图水平分组;2、建立基于关联规则的索引优化机制;3、将查询结果返回给用户。本发明应用于信息检索领域。

著录项

  • 公开/公告号CN105975488A

    专利类型发明专利

  • 公开/公告日2016-09-28

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201610264735.4

  • 申请日2016-04-25

  • 分类号G06F17/30(20060101);

  • 代理机构23109 哈尔滨市松花江专利商标事务所;

  • 代理人杨立超

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号

  • 入库时间 2023-06-19 00:32:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-18

    授权

    授权

  • 2016-10-26

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160425

    实质审查的生效

  • 2016-09-28

    公开

    公开

说明书

技术领域

本发明涉及信息检索领域,尤其涉及一种关系数据库中基于主题类簇单元的关键词查询方法。

背景技术

近年来,关键词查询作为信息检索领域一项重要的查询技术得到了成功的应用。由于其简单易用的特点,被越来越多的用户所接受。对于关系数据库,同样需要一种简单有效的查询方法从纷繁复杂的关系数据库中获取用户感兴趣的信息。传统的结构化查询方法,例如SQL查询,不仅需要用户了解关系数据库复杂的底层模式,还需要用户掌握相关查询语言的使用方法,给查询工作带来了较大的困难与不便。因此,基于关系数据库的关键词查询技术受到了广泛关注。公知的一些相关研究试图将传统的关键词查询方法直接引入关系数据库,但是由于关系数据库需要遵循一定的规范化要求,信息被分散在不同的数据表中,简单地引入并不能给用户带来良好的查询体验。因此需要结合关系数据库自身的结构特点,研究一种适合关系数据库的关键词查询技术。

现有的关键词查询方法可以分为在线查询和离线查询两大类。在线查询的主要思想是使用模式图或者数据图对关系数据库进行建模,当用户提出一组查询关键词后,在线进行图遍历,返回一个或者多个子图或者候选网络或者斯坦纳树作为查询结果。由于在查询过程中不断地进行表连接,导致这类查询方法产生高昂的时间代价。相反,离线查询方法则利用类似虚拟文档或元组单元的数据结构有效地解决了在线查询存在的问题。在用户提出查询之前,使用广度优先遍历的方法进行表连接,从而避免了查询过程中频繁的表连接所带来的时间开销。但是以上离线查询方法并没有考虑大规模关系数据库中的查询效率问题。企业数据库通常包含成百上千张数据表,使用以上方法,预处理过程需要相当大的时间开销。另外,由于最终形成的表规模庞大,即使构建索引,也不利于用户在较短时间内找到期望的查询应答。

为了解决此问题,本申请提出了TCU-Based查询——一种基于主题类簇单元的离线询方法。首先,通过对数据库中的数据进行垂直方向和水平方向的两次分组操作,构造数据结构——主题类簇单元。其次,为了进一步提高数据预处理的效率,本申请基于遗传算法设计了一种表连接顺序优化方案。最后,为每个主题类簇构建主题索引,使这些索引能够在机器节点上并行工作,显著提高了查询速度。在用户提出查询之后,返回一个或者多个主题类簇单元作为查询应答能够包含更为完整的信息,满足用户查询意图。

发明内容

本申请涉及的相关理论

关键词查询技术大致可以分为在线查询和离线查询两大类。在线查询主要思想是:查询前,构建与数据库对应的模式图或数据图;用户提出查询后,在线进行图遍历,以发现top-k个候选网络或斯坦纳树,并作为查询应答返回给用户。而离线查询则以离线方式对数据库进行预处理,构建虚拟文档或元组单元,利用信息检索技术返回top-k个查询应答,避免了在线表连接和图遍历操作,从而显著提升了查询处理效率。

1、在线查询

按照查询涉及数据库的数量划分,在线查询又可分为面向单个关系数据库的关键词查询和面向分布式数据库的关键词查询。

面向单个关系数据库的关键词查询

在DBXplorer和DISCOVER系统中,数据库被建模为模式图G,其中节点代表关系,边代表关系间的主外键约束,关键词查询的结果即一组候选网络。BANKS、BANKS-II和BLINKS等系统则采用了基于数据图的关键词查询方法,直接在底层数据图上检索包含关键词的斯坦纳树。BANKS系统使用反向扩展搜索算法,当遇到一个入度较大的节点时,该方法性能受到严重影响。BLINKS在其基础上提出了一种新的搜索方法——双向搜索,显著提高了搜索性能。

面向分布式数据库的关键词查询

为了解决分布式数据库上的关键词查询问题,目前公知的研究工作主要存在以下几种策略:Kite系统,该系统综合使用模式匹配和结构发现技术,以获取异构数据库之间的主外键连接,从而解决异构关系数据库上的关键词查询问题。Hristidis,V.等人为每一个数据库DBi建立关键词关系矩阵KRMi作为数据库的摘要。对于每一个关键词词对(ki,kj),项KRMi(ki,kj)用于记录关键词ki和kj在不同距离上出现的频率。但是关键词关系矩阵仅仅通过特征词之间的二元关系剪枝掉不能作为查询应答的数据库。为了克服以上不足,有人提出了G-KS方法,使用关键词关系图表征关键词之间的复杂关系。图中节点代表特征词,边代表词与词之间的关系。因此,利用关键字关系图可以计算数据库与关键字查询之间的相似性,从而检索出最具潜力的数据库。

2、离线查询

以上查询方法均没有考虑在线表连接导致高昂的时间开销问题。一般来说,通过对数据库中表和元组进行预处理,可以改善上述问题。近年来,有人深入探讨了基于关系数据库的离线查询问题,并提出了初步的解决方案。Feldman,P.等人首次提出了文本对象和虚拟文档的概念,在用户提出查询之前完成数据库中的表连接操作,使查询效率得到了显著提高。Teorey,T.J.等人在文本对象的基础上进一步扩展,将具有相同属性值的元组进行合并,以构建内容更为完整的数据结构——元组单元,并将相互连接的多个元组单元作为查询应答返回给用户,使结果精度得到了有效提高。上述方法仅仅考虑简单的表连接和元组的group|by操作,并不适用于内部表结构复杂的数据库。本申请所述方法通过优化表连接顺序,并且定义一种更为合理的数据结构——主题类簇单元,从而显著地提高了查询效率和精度。

3、垂直分组

给定一个由l张表组成的数据库D(T1,T2,...,Tl),垂直分组是指:按照一种合理的划分策略,将数据库D中的表划分为一组主题类簇CD={C1,C2,...,Ck},使得(1)每个主题类簇Ci∈CD包含一组结构上关联紧密、内容相关的数据表Ci={T1,T2,...,Tj};(2)均有CiI>j=φ;(3)对所有的i,

4、水平分组

给定一个数据表T'(t1,t2,...,tn),其中ti表示元组,数据表的水平分组是指:根据某种相似性度量函数,将具有较高相似度的元组分配到同一集合Γi中。如图1所示,经过水平分组操作之后,表American>1,Γ2,...,Γm,其中m≤n。

5、主题类簇元组关联图

给定主题类簇中的一个表T'(t'1,t'2,...,t'n),其中t'i表示主题类簇元组,主题类簇元组关联图为加权无向图G=(V,E),其中顶点vi∈V表示主题类簇元组t'i,如果两元组t'i和t'j间的相似性sij(t'i,t'j)>0,则在节点vj和节点vi之间存在一条边eij∈E,边eij的权重记为sij(t'i,t'j)。图2为表T'的部分主题类簇元组关联图。

6、主题类簇单元

给定一个数据库D(T1,T2,...,Tl),包含l张相互连接的数据表。首先,对其进行垂直分组得到k个主题类簇C={C1,C2,...,Ck};其次,根据主外键关系将每一个主题类簇Ci中的表进行表连接得到综合表T′i(t1,t2,...,tn)。最后,对综合表T′i(t1,t2,...,tn)中的n个元组进行水平分组得到Γ12,...,Γm。其中Γi被称为主题类簇单元。主题类簇American>1,Γ2,...,Γm,如图1所示。

7、top-k关键词查询

给定一个关键词查询Q={k1,k2,...,km}和一个包含l张数据表的数据库D(T1,T2,...,Tl),top-k关键词查询返回相关性得分排名前k位的主题类簇单元作为查询结果。

8、本申请整体构架

现有的大部分关键词查询方法需要在用户提出特定的查询之后,不断地进行表连接,因此产生较大的时间开销。为解决此类问题,有人提出了离线查询的概念,但他们并没有考虑内部结构复杂的关系数据库上的查询。本申请要思想是:依次对数据表进行垂直方向和水平方向二次分组,构建一组主题类簇单元;同时设计一种基于遗传算法的最优表连接顺序选取方案,减小数据预处理的代价;最后采用关联规则算法为各个主题类簇构建主题索引,从而显著提升关系数据库上的查询效率和准确率。

图4为本申请查询方法的体系架构,总体分为在线和离线两部分。

在线查询部分

用户在线向查询处理器提交一组查询关键词,查询处理器通过主题索引,将包含一个或多个关键词的主题类簇单元作为查询应答返回给用户。

离线数据预处理部分

分为以下四大模块:垂直分组模块、表连接顺序优化模块、水平分组模块和主题索引构建模块。

(1)垂直分组模块

此模块将关系数据库和用户查询日志作为输入,利用一种图的最优划分策略——改进的谱聚类算法,并结合关系数据库自身的特点,同时考虑表的内容信息和来自查询日志的用户反馈信息,将数据表进行垂直分组,形成一个主题类簇集合。其中每个主题类簇均包含一组数据表,这些表不仅在结构上关联紧密、内容相近,而且在用户的查询日志中具有较高的共现频率。

(2)表连接顺序优化模块

针对垂直分组模块得到的每一个主题类簇,对其中的数据表按照主外键关系进行表连接。由于大型数据库中表的数量庞大,表连接操作需要相对较大的时间开销,因此需要对表连接操作进行优化。此模块基于遗传算法设计表连接顺序的最优选取方案,显著减小了表连接代价。

(3)水平分组模块

利用以上模块得到的主题类簇集合作为输入,通过计算主题类簇中元组间的混合相似度,分别为每个主题类簇构建元组关联图。进一步使用层次聚类算法,对各个主题类簇进行水平分组操作,形成主题类簇单元集合。

(4)主题索引构建模块

此模块将水平分组模块中得到的主题类簇单元集合作为输入,使用关联规则进行索引词的选取,进而为每个主题类簇构建主题索引。

本申请为解决现有关键词在线查询方法存在查询过程中频繁的表连接所带来巨大时间开销的问题,而现有关键词离线查询方法对于内部结构复杂、数据量庞大的大规模数据库上的查询存在查询效率低的问题,而提出一种关系数据库中基于主题类簇单元的关键词查询方法。

一种关系数据库中基于主题类簇单元的关键词查询方法,按以下步骤进行:

一、主题类簇单元构建过程;

一.一、基于数据表特性和查询日志的垂直分组;

一.二、提出主题类簇中表连接顺序优化方案;

一.三、基于主题类簇元组关联图的水平分组;

二、建立基于关联规则的索引优化机制;

三、将查询结果返回给用户。

本发明包括以下有益效果:

1、提出了一种基于主题类簇单元的离线查询方法,适用于大规模关系数据库上的关键词查询;

2、构造了新型数据结构——主题类簇单元。分别使用改进的谱聚类算法和主题类簇元组关联图对数据表和元组进行垂直分组和水平分组;离线构建TCU集合并将其作为查询应答,不仅能够显著减少查询响应时间,而且能够返回更加丰富、完整的主题语义信息;

3、设计了一种基于遗传算法的表连接顺序优化方案,减少了预处理的时间开销;

4、使用关联规则算法对索引词进行选择,进而为每个主题类簇构建索引,显著加快了查询速度。

附图说明

图1为主题类簇Americanfootball水平分组示意图;

图2为部分主题类簇元组关联图;

图3为基于主题类簇单元查询架构图;

图4为垂直分组方法架构图

图5为基于遗传算法的表连接顺序优化方案流程图;

图6为连接树与整数序列的对应关系示意图;

图7为预处理时间对比关系图;

图8为不同关键词个数下的平均响应时间对比关系图;

图9为不同k值下的平均响应时间对比关系图;

图10为关键词数量与平均准确率对应关系图;

图11为关键词数量与平均召回率对应关系图;

图12为不同数据集大小对查询性能的影响关系图

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合图4至图6和具体实施方式对本发明作进一步详细的说明。

具体实施方式一、本实施方式所述的一种关系数据库中基于主题类簇单元的关键词查询方法,按以下步骤进行:

一、主题类簇单元构建过程;

一.一、基于数据表特性和查询日志的垂直分组;

一.二、提出主题类簇中表连接顺序优化方案;

一.三、基于主题类簇元组关联图的水平分组;

二、建立基于关联规则的索引优化机制;

三、将查询结果返回给用户。

本实施方式包括以下有益效果:

1、提出了一种基于主题类簇单元的离线查询方法,适用于大规模关系数据库上的关键词查询;

2、构造了新型数据结构——主题类簇单元。分别使用改进的谱聚类算法和主题类簇元组关联图对数据表和元组进行垂直分组和水平分组;离线构建TCU集合并将其作为查询应答,不仅能够显著减少查询响应时间,而且能够返回更加丰富、完整的主题语义信息;

3、设计了一种基于遗传算法的表连接顺序优化方案,减少了预处理的时间开销;

4、使用关联规则算法对索引词进行选择,进而为每个主题类簇构建索引,显著加快了查询速度。

具体实施方式二、本实施方式是对具体实施方式一所述的一种关系数据库中基于主题类簇单元的关键词查询方法的进一步说明,步骤一.一所述基于数据表特性和查询日志的垂直分组的具体过程为:本申请采用表间相似性矩阵构建方法,分别从表特性,包括表间拓扑紧密性和表间内容相似性以及查询日志两个方面构建初始输入矩阵,垂直分组方法将关系数据库D和用户查询日志作为输入,一组主题类簇作为输出,具体流程如图4所示,垂直分组方法大致可分为以下3大模块:输入模块、相似性矩阵构建模块和输出模块。输入模块,将关系数据库及其模式图作为系统输入,分别用于描述数据库的内容信息和结构信息;此外,查询日志也作为系统输入,侧面反映数据库的信息分布特征;相似性矩阵构建模块:通过对输入模块中模式图和数据库的分析、计算,得到数据表间的拓扑紧密性和内容相似性,分别构建拓扑紧密性矩阵和内容相似性矩阵,并在此基础上构建表间相似性矩阵;另外对查询日志进行统计分析使以上矩阵得到进一步的加强和修正;最后,以一组主题类簇作为结果输出。

(1)表间拓扑紧密性

给定数据库的模式图G=(V,E),节点vi和节点vj之间的拓扑紧密性定义如下:

其中,|vi|为数据库中表Ti的大小,|vj|为数据库中表Tj的大小;σ为影响因子,σ越大节点间的相互作用力越强;反之,相互作用力越弱。为节点vi和节点vj之间的逻辑距离:即数据库模式图中,节点vi和节点vj之间的路径长度。根据高斯函数的数学性质,对于给定的σ值,每个节点的影响范围近似等于的局部区域,当两节点间的逻辑距离大于该值时,两节点间的拓扑紧密性迅速衰减为0。

通过公式(1)计算出任意两节点之间的拓扑紧密性,进而构建关系数据库的拓扑紧密性矩阵如下:

T=0Compv1,v2KCompv1,vlCompv2,v10MOCompvl,v10

(2)表间内容相似性

数据表由表名、属性和元组构成,因此在对表间内容相似性进行分析时可以从命名相似性和赋值相似性两个方面进行深入探究;

命名相似性包括表名相似性和属性名相似性两大部分,本申请用向量空间中计算两实体间相似性的方法,首先提取表Ti的表名以及属性名中的关键字为表Ti构建向量Vi,提取表Tj的表名及属性名中的关键字,为表Tj构建向量Vj,使用Cosine函数计算命名相似性:

Sim1(Ti,Tj)=Sim(Vi,Vj)=Vi·Vj/(|Vi|·|Vj|)(2)

其中Sim1(Ti,Tj)为表Ti和表Tj间的命名相似性;

Sim(Vi,Vj)为向量Vi和向量Vj间的相似性

|Vi|和|Vj|分别为向量Vi和向量Vj的大小;

赋值相似性具体求解过程如下:

1、使用Jaccard距离计算两属性间的内容相似性;

J(u,v)=|uI v|/|uUv|(3)

其中,u为数据表Ti中的属性列;v为数据表Tj中的属性列;

2、使用贪婪匹配策略检测数据库中的属性对集合Z;

3、加权求平均得到两表间的赋值相似性;

Sim2(Ti,Tj)=Σ(u,v)Z{J(u,v)}.max(u.V,v.V)max(|Ti|,|Tj|)---(4)

其中,|Ti|为数据表Ti中的属性列个数;|Tj|为数据表Tj中的属性列个数;max(|Ti|,|Tj|)为|Ti|和|Tj|两者中的较大值;为属性列u的变异系数,为属性列v的变异系数,是衡量表中各观测值变异程度的一个统计量;变异系数越小,属性列内容的丰富度越小;反之,变异系数越大,属性列内容的丰富度越大;公式中为属性列u的标准差,为属性列v的标准差,为属性列u的平均值;为属性列v的平均值;max(u.V,v.V)为u.V和v.V两者中的较大值;

综上所述,数据表Ti和数据表Tj间的内容相似性为:Sim(Ti,Tj)=(Sim1(Ti,Tj)+Sim2(Ti,Tj))/2;

数据表间的内容相似性矩阵S为:

其中l为数据库中数据表的个数;

综合考虑结构和内容上的相似性,得到表间相似性矩阵:ADB=T+S;

其中T为关系数据库的拓扑紧密性矩阵;

(3)相似性矩阵修正方法

查询日志记录了用户检索数据库的历史访问信息,包含3个字段:用户ID、查询Q、查询结果及结果所在的数据表T。带有用户反馈的垂直分组方法基本思想在于对查询日志中的查询记录进行统计分析,并使用以下boost函数对相似性矩阵进行修正。

boostlog(Ti,Tj)=exp(log(count(Ti,Tj))/log(max(count)))(5)

count(Ti,Tj)记录了表Ti和表Tj在查询日志中的共现次数,max(count)为查询日志中任意两表共现次数的最大值。由公式(5)可知,在查询日志中共现次数越多的表,紧密性得分被加强的程度越大。

使用用户查询日志中的信息对以上垂直分组结果进行加强,提出以下得分加强函数:

AFinal(ti,tj)=ADB(ti,tj)×boostlog(ti,tj)(6)

进而得到表间相似性矩阵其中l为数据库中数据表的个数;

(4)垂直分组

本申请为基于改进谱聚类的垂直分组

输入:G=(V,E)、k和影响因子σ,其中,V={v1,...,vl},|E|=m;

输出:主题类簇集合C={C1,C2,...,Ck};

步骤:

①构建表间相似性矩阵AFinal

②计算特征向量和特征值,用前k个特征向量u1,...,uk构建特征向量空间Rk

③将V中所有的节点映射到Rk空间;

④使用k-means算法将Rk中的节点聚集到主题类簇C1,C2,...,Ck中。

具体实施方式三、本实施方式是对具体实施方式一或二所述的一种关系数据库中基于主题类簇单元的关键词查询方法的进一步说明,步骤一.二所述提出主题类簇中表连接顺序优化方案的具体过程为:

为了避免查询过程中复杂的表连接操作,在数据预处理中需要将主题类簇Ci=(T1,T2,...,Tn)中的n张表T1,T2,...,Tn进行连接得到综合表T′i。现有的方法仅仅按照主外键关系,进行广度优先遍历对表进行连接。在大型数据库中,通常包含成百上千张数据表,使用以上方法需要付出较大的时间开销,预处理效率受到极大影响。针对这一问题,本发明基于遗传算法设计了表连接顺序优化方案,如图5所示。

首先,在运用遗传算法进行表连接顺序优化时,最关键的一步是对数据表进行编码。使用连接树的形式表达不同的表连接顺序,为了全面保留连接树的特征信息,采用先根遍历连接树的形式进行编码。如图6所示:

经过以上编码后,随机选取poplength个连接树作为初始种群,并对第一代种群进行遗传操作产生genlength个新个体。遗传操作使用交叉和变异两种算子对种群进行交换。交叉算子:随机产生相同大小的子树进行交换,对于交叉后连接树上重复的数据表,用其他未出现的数据表替换;变异算子:交换连接树上任意非零位的数据表。接着依据公知的连接树代价公式计算每个连接树的代价,选择poplength个代价最小的连接树作为下一代种群。重复以上遗传、选择过程直到达到预定迭代次数,该迭代次数通过对多次实验的分析总结得到合理的取值,进化过程最后一代中代价最小的连接树就是通过遗传算法得到的最优表连接顺序。

具体实施方式四、本实施方式是对具体实施方式一至三之一所述的一种关系数据库中基于主题类簇单元的关键词查询方法的进一步说明,步骤一.三所述基于主题类簇元组关联图的水平分组的具体过程为:

经过垂直分组和主题类簇表连接操作之后,得到主题类簇集合C=(C1,C2,...,Ck),其中每个主题类簇Ci均包含一张综合表T′i,通常,用户希望将多个相关元组进行集成作为应答结果,因此采用一种合理的水平分组方法对主题类簇作进一步分组能够有效地提高查询速度。现有水平分组方法简单地使用数据库中的group>

主题类簇元组混合相似性计算

水平分组策略中一个重要的数据模型就是主题类簇元组关联图G=(V,E),它是一个加权无向图,主题类簇元组间的相似度作为边的权值,为了提高主题类簇元组间相似性计算的准确率和可扩展性,本小节提出了一种混合相似性计算方法。

假定t′i和t′j为主题类簇Ci中任意两个元组,两元组的混合相似性计算过程如下:

1、定义不同的距离函数dk,包括:欧几里得距离、编辑距离、汉明距离;

2、将主题类簇元组在n维空间上进行映射,并根据距离函数求出两元组间的距离dk(t′i,t′j);

3、根据以下公式求出两元组间的混合相似性。

Simk(ti,tj)=1-dk(ti,tj)/maxk{1,2,3}{dk(ti,tj)}

Sim(ti,tj)=1/(1+exp(-Σk=13Simk(ti,tj)))---(7)

其中,Simk(ti',tj')为距离函数为dk时,元组t′i和t′j间的相似性;

为距离函数为dk>i和t′j间相似性的最大值;

Sim(t′i,t′j)为两元组t′i和t′j间的混合相似性。

水平分组的步骤:

1、计算主题类簇Ci中各主题类簇元组间的混合相似性,构建主题类簇元组关联图;

2、按照相似度阈值φ,将关联图划分为若干个连通分支;

3、找出主题类簇元组个数大于Minsize的主题类簇单元,并计算其融合性,选出融合性最小的主题类簇单元,断开该主题类簇单元中相似性最小的边;

4、重复步骤3,直到所有主题类簇单元中所含的元组数小于Minsize为止;

5、计算主题类簇单元间的分离性,合并分离性最小的主题类簇单元;

6、重复步骤5,直到主题类簇Ci中主题类簇单元的个数|Ci|达到要求为止。

步骤3和步骤5中用到的主题类簇单元融合性、分离性通过以下公式进行计算:

I(TCUk)=ΣtiTCUk,tjTCUkSim(ti,tj)---(8)

S(TCUk,TCUl)=ΣtiTCUk,tjTCUlSim(ti,tj)---(9)

其中,Sim(t′i,t′j)为主题类簇元组t′i和t′j间的混合相似性;TCUk和TCUl分别表示两个不同的主题类簇单元;

公式(8)和(9)涉及到3个参数:相似度阈值φ、最终主题类簇单元的个数k和Minsize,前两个参数根据用户的要求设定,Minsize则设为整个数据量的1%~3%。

具体实施方式五、本实施方式是对具体实施方式一至四之一所述的一种关系数据库中基于主题类簇单元的关键词查询方法的进一步说明,步骤二所述建立基于关联规则的索引优化机制的具体过程为:

为了加快查询速度,需要为数据库构建索引。传统的方法仅仅为单个关键词构建倒排索引项列表,在多关键词查询中索引效率受到较大限制。为了解决以上问题,本申请提出了基于主题类簇单元的多关键词索引构建机制。

分别在每个主题类簇中使用关联规则算法找到频繁项集,每个频繁项集都对应一个倒排索引项列表,列表中包含了所有直接出现该关键词或关键词组合的主题类簇单元。索引结构如下所示:

Keyword(s)→(TCU1,TCU2…··)(10)

我们利用Lucene工具包生成以上基于主题类簇单元的主题索引。

具体实施方式六、本实施方式是对具体实施方式一至五之一所述的一种关系数据库中基于主题类簇单元的关键词查询方法的进一步说明,步骤三所述所述将查询结果返回给用户的具体过程为:

利用基于主题类簇单元的主题索引即可以有效地将包含关键词(组)的主题类簇单元作为查询结果返回给用户。给定一组关键词查询K={k1,k2,....,kn},系统并行搜索多个主题索引找到对应的主题类簇单元,根据现有的结果排序函数计算相关主题类簇单元的得分,按照得分对其进行降序排序,将top-k个主题类簇单元返回给用户。

为验证本发明的有益效果,作如下仿真实验:

本实验采用公开数据集Freebase。Freebase是一个开放的结构化数据库,规模较大且具有一定的结构复杂性,其中包含约2000张表和3900万个实体。由于受到实验条件的限制,我们在不影响实验结果的前提下对数据集进行简化处理。保持数据库底层模式和数据表间的连接关系不变,从Freebase数据库中抽取部分数据(400M)作为本实验的数据集。为验证本申请提出的TCU-Based查询方法的效果与性能,进行了以下三组实验。首先,通过数据预处理时间的对比,验证表连接顺序优化方案的有效性。其次,将本申请提出的TCU-Based查询方法与基准方法DBXplorer、BLANKS和SAINT进行比较,验证本申请方法的效率和准确率。最后,通过在不同规模的数据集上进行查询响应时间的对比实验,验证该方法的可扩展性。

算法在Microsoft Windows 7操作系统、JAVA环境下运行,采用Core(TM)2.5GHz的CPU,4GB内存,500G硬盘。

表连接顺序优化方案评估

统计表连接顺序优化前后的数据预处理时间,并且通过在不同规模的数据库中进行对比分析,验证本申请提出的基于遗传算法的表连接顺序优化方案的有效性。实验结果如图7所示。图中横坐标表示数据预处理过程中涉及数据表的数量,纵坐标表示数据预处理时间。由图中结果可知,数据预处理采用遗传算法得到的表连接顺序可以显著提高预处理的效率,且随着表数量的增加,效果越明显。

方法对比

通过与基准查询方法进行对比,评估了本申请查询方法TCU-Based的性能。分别从查询效率和结果准确率两个方面进行实验。从数据库的查询日志中随机选出100个关键词查询,在Freebase数据集上分别使用DBXplorer、BLANKS、SAINT和TCU-Based四种方法进行查询,分析各个方法的查询响应时间和查询结果的质量。

(1)查询效率

首先,我们使用不同数量的查询关键词,将四种方法的top-2平均查询响应时间进行比较。查询响应时间从执行查询开始到产生top-2个查询应答结束,不包括离线数据预处理时间。如图8所示,横坐标表示关键词个数,纵坐标表示平均查询响应时间。由图可知,离线查询方法SAINT和TCU-Based查询效率明显优于在线查询方法DBXplorer和BLANKS,原因是前两种方法在查询过程中需要进行复杂的表连接操作,尤其在结构较为复杂的数据库中,此类表连接操作需要较大的时间开销;相反,离线查询方法在用户提出查询之前对数据库中的表以及元组进行预处理,因此显著提高了查询速度。另外,本申请提出的查询方法TCU-Based为每个主题类簇构建主题索引,在用户提出查询后多个索引并行执行,使查询效率相对于离线查询方法SAINT有了进一步提升。由图8可知,当关键词个数大于等于3时,查询效率的提高更为明显,原因是使用关联规则进行索引词的选取,在用户给出多个查询关键词时,可以直接检索到包含所有关键词的索引项,而不需要进行索引连接。

为了进一步评估本申请查询方法的性能,我们进行了top-k上的查询方法对比,k从2到20进行取值。如图9所示,图中横坐标表示k的不同取值,纵坐标为不同k值下的平均查询响应时间。显然,本申请方法的查询性能明显优于另外三种基准检测查询方法。例如,在k取12时,DBXplorer、BLANKS、SAINT的平均查询响应时间分别为13500ms、7452ms、3420ms,而本申请的查询方法TCU-Based仅仅花费2014ms。具体原因类似于图8,此处不再赘述。

(2)查询有效性

查询有效性分别使用准确率和召回率两个评价指标进行衡量。为了对其进行准确的计算,首先我们随机选取100个SQL查询并将其对应的查询应答作为标准查询结果。然后提取SQL查询中的关键词,并作为上述四种查询方法的输入。其平均准确率和平均召回率对比情况如图10和图11所示。由图10可知,随着关键词数量的增加,查询算法的准确率呈下降趋势。1-keyword和2-keyword查询的准确率一般情况下优于3-keyword、4-keyword和5-keyword,因为随着关键词数量的增多,关键词间的关系变得更为复杂。本文方法TCU-Based在准确率方面比同类方法SAINT高出3%~7%,与其他两种方法相比,效果更为显著。由图11可知,在召回率方面本文方法均明显优于现有方法,与SAINT相比高出15%左右。

可扩展性评估

本实验对top-5的平均查询响应时间进行度量。图12中横坐标表示不同数据集大小,纵坐标表示top-5的平均查询响应时间。从图12中可知,随着数据库规模从100MB依次增加到500MB,由本文方法得到的平均查询响应时间变化缓慢。这是由于数据量的增大,仅仅对预处理时的元组连接产生了较大的影响,而对在线索引的影响并不大。通过实验可以证明本文方法在不同数据集大小上展现了较好的可扩展性。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号