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

文档序号:10612815阅读:213来源:国知局
一种关系数据库中基于主题类簇单元的关键词查询方法
【专利摘要】一种关系数据库中基于主题类簇单元的关键词查询方法,涉及信息检索领域,尤其涉及一种关系数据库中基于主题类簇单元的关键词查询方法。本发明要为解决现有关键词在线查询方法存在查询过程中频繁的表连接所带来巨大时间开销的问题,而现有关键词离线查询方法对于内部结构复杂、数据量庞大的大规模数据库上的查询存在查询效率低的问题。一种关系数据库中基于主题类簇单元的关键词查询方法按以下步骤进行:1、主题类簇单元构建过程;①、基于数据表特性和查询日志垂直分组;②、提出主题类簇中表连接顺序优化方案;③、基于主题类簇元组关联图水平分组;2、建立基于关联规则的索引优化机制;3、将查询结果返回给用户。本发明应用于信息检索领域。
【专利说明】
一种关系数据库中基于主题类簇单元的关键词查询方法
技术领域
[0001] 本发明涉及信息检索领域,尤其涉及一种关系数据库中基于主题类簇单元的关键 词查询方法。
【背景技术】
[0002] 近年来,关键词查询作为信息检索领域一项重要的查询技术得到了成功的应用。 由于其简单易用的特点,被越来越多的用户所接受。对于关系数据库,同样需要一种简单有 效的查询方法从纷繁复杂的关系数据库中获取用户感兴趣的信息。传统的结构化查询方 法,例如SQL查询,不仅需要用户了解关系数据库复杂的底层模式,还需要用户掌握相关查 询语言的使用方法,给查询工作带来了较大的困难与不便。因此,基于关系数据库的关键词 查询技术受到了广泛关注。公知的一些相关研究试图将传统的关键词查询方法直接引入关 系数据库,但是由于关系数据库需要遵循一定的规范化要求,信息被分散在不同的数据表 中,简单地引入并不能给用户带来良好的查询体验。因此需要结合关系数据库自身的结构 特点,研究一种适合关系数据库的关键词查询技术。
[0003] 现有的关键词查询方法可以分为在线查询和离线查询两大类。在线查询的主要思 想是使用模式图或者数据图对关系数据库进行建模,当用户提出一组查询关键词后,在线 进行图遍历,返回一个或者多个子图或者候选网络或者斯坦纳树作为查询结果。由于在查 询过程中不断地进行表连接,导致这类查询方法产生高昂的时间代价。相反,离线查询方法 则利用类似虚拟文档或元组单元的数据结构有效地解决了在线查询存在的问题。在用户提 出查询之前,使用广度优先遍历的方法进行表连接,从而避免了查询过程中频繁的表连接 所带来的时间开销。但是以上离线查询方法并没有考虑大规模关系数据库中的查询效率问 题。企业数据库通常包含成百上千张数据表,使用以上方法,预处理过程需要相当大的时间 开销。另外,由于最终形成的表规模庞大,即使构建索引,也不利于用户在较短时间内找到 期望的查询应答。
[0004] 为了解决此问题,本申请提出了 TCU-Based查询一一一种基于主题类簇单元的离 线询方法。首先,通过对数据库中的数据进行垂直方向和水平方向的两次分组操作,构造数 据结构一一主题类簇单元。其次,为了进一步提高数据预处理的效率,本申请基于遗传算法 设计了一种表连接顺序优化方案。最后,为每个主题类簇构建主题索引,使这些索引能够在 机器节点上并行工作,显著提高了查询速度。在用户提出查询之后,返回一个或者多个主题 类簇单元作为查询应答能够包含更为完整的信息,满足用户查询意图。

【发明内容】

[0005] 本申请涉及的相关理论
[0006] 关键词查询技术大致可以分为在线查询和离线查询两大类。在线查询主要思想 是:查询前,构建与数据库对应的模式图或数据图;用户提出查询后,在线进行图遍历,以发 现top-k个候选网络或斯坦纳树,并作为查询应答返回给用户。而离线查询则以离线方式对 数据库进行预处理,构建虚拟文档或元组单元,利用信息检索技术返回top-k个查询应答, 避免了在线表连接和图遍历操作,从而显著提升了查询处理效率。
[0007] 1、在线查询
[0008] 按照查询涉及数据库的数量划分,在线查询又可分为面向单个关系数据库的关键 词查询和面向分布式数据库的关键词查询。
[0009] 面向单个关系数据库的关键词查询
[0010]在DBXplorer和DISCOVER系统中,数据库被建模为模式图G,其中节点代表关系,边 代表关系间的主外键约束,关键词查询的结果即一组候选网络。BANKS、BANKS-II和BLINKS 等系统则采用了基于数据图的关键词查询方法,直接在底层数据图上检索包含关键词的斯 坦纳树。BANKS系统使用反向扩展搜索算法,当遇到一个入度较大的节点时,该方法性能受 到严重影响。BLINKS在其基础上提出了一种新的搜索方法--双向搜索,显著提高了搜索 性能。
[0011] 面向分布式数据库的关键词查询
[0012] 为了解决分布式数据库上的关键词查询问题,目前公知的研究工作主要存在以下 几种策略:Kite系统,该系统综合使用模式匹配和结构发现技术,以获取异构数据库之间的 主外键连接,从而解决异构关系数据库上的关键词查询问题。Hristidi S,V.等人为每一个 数据库DBi建立关键词关系矩阵KRMi作为数据库的摘要。对于每一个关键词词对(ki,kj),项 KRMdkhkJ用于记录关键词匕和4在不同距离上出现的频率。但是关键词关系矩阵仅仅通 过特征词之间的二元关系剪枝掉不能作为查询应答的数据库。为了克服以上不足,有人提 出了 G-KS方法,使用关键词关系图表征关键词之间的复杂关系。图中节点代表特征词,边代 表词与词之间的关系。因此,利用关键字关系图可以计算数据库与关键字查询之间的相似 性,从而检索出最具潜力的数据库。
[0013] 2、离线查询
[0014] 以上查询方法均没有考虑在线表连接导致高昂的时间开销问题。一般来说,通过 对数据库中表和元组进行预处理,可以改善上述问题。近年来,有人深入探讨了基于关系数 据库的离线查询问题,并提出了初步的解决方案。Feldman,P.等人首次提出了文本对象和 虚拟文档的概念,在用户提出查询之前完成数据库中的表连接操作,使查询效率得到了显 著提高。Teorey,T. J.等人在文本对象的基础上进一步扩展,将具有相同属性值的元组进行 合并,以构建内容更为完整的数据结构一一元组单元,并将相互连接的多个元组单元作为 查询应答返回给用户,使结果精度得到了有效提高。上述方法仅仅考虑简单的表连接和元 组的group |by操作,并不适用于内部表结构复杂的数据库。本申请所述方法通过优化表连 接顺序,并且定义一种更为合理的数据结构一一主题类簇单元,从而显著地提高了查询效 率和精度。
[0015] 3、垂直分组
[0016] 给定一个由1张表组成的数据库...,T〇,垂直分组是指:按照一种合理的 划分策略,将数据库D中的表划分为一组主题类簇...,&},使得(1)每个主题类 簇CieCD包含一组结构上关联紧密、内容相关的数据表Ci= m,!^,. . .,Tj}; (2) , 均有Cil Cj= Φ ; (3)对所有的i,K. = ?
[0017] 4、水平分组
[0018] 给定一个数据表T'U^ts,. . .,tn),其中^表示元组,数据表的水平分组是指:根 据某种相似性度量函数,将具有较高相似度的元组分配到同一集合「:中。如图1所示,经过 水平分组操作之后,表American football中的η个元组被划分为m个单元Γ Γ 2, ···,rm, 其中m<n。
[0019] 5、主题类簇元组关联图
[0020] 给定主题类簇中的一个表Τ'(t'^t'2, . . .,t'n),其中表示主题类簇元组,主题 类簇元组关联图为加权无向图G=(V,E),其中顶AVleV表示主题类簇元组,如果两元组 1:':1和1:'」间的相似性8;^(1:':1,1:'」)>0,则在节点¥」和节点¥;[之间存在一条边6;^卽,边6;^的 权重记为 sij (t ' i,t '」)。图2为表T '的部分主题类簇元组关联图。
[0021] 6、主题类簇单元
[0022]给定一个数据库...,T〇,包含1张相互连接的数据表。首先,对其进行垂 直分组得到k个主题类簇C={Ci,C2,. . .,Ck};其次,根据主外键关系将每一个主题类簇Ci中 的表进行表连接得到综合表f i(tl,t2, . . .,tn)。最后,对综合表f i(tl,t2, . . .,tn)中的η个 元组进行水平分组得到Γ Γ 2, . . .,rm。其中Γ ,被称为主题类簇单元。主题类簇American football中的主题类簇单元Γ !,Γ 2, ···,rm,如图1所示。
[0023] 7、top_k关键词查询
[0024] 给定一个关键词查询. . .,km}和一个包含1张数据表的数据库DCh, T2, . . .,T〇,top_k关键词查询返回相关性得分排名前k位的主题类簇单元作为查询结果。
[0025] 8、本申请整体构架
[0026] 现有的大部分关键词查询方法需要在用户提出特定的查询之后,不断地进行表连 接,因此产生较大的时间开销。为解决此类问题,有人提出了离线查询的概念,但他们并没 有考虑内部结构复杂的关系数据库上的查询。本申请要思想是:依次对数据表进行垂直方 向和水平方向二次分组,构建一组主题类簇单元;同时设计一种基于遗传算法的最优表连 接顺序选取方案,减小数据预处理的代价;最后采用关联规则算法为各个主题类簇构建主 题索引,从而显著提升关系数据库上的查询效率和准确率。
[0027] 图4为本申请查询方法的体系架构,总体分为在线和离线两部分。
[0028] 在线查询部分
[0029]用户在线向查询处理器提交一组查询关键词,查询处理器通过主题索引,将包含 一个或多个关键词的主题类簇单元作为查询应答返回给用户。
[0030] 离线数据预处理部分
[0031] 分为以下四大模块:垂直分组模块、表连接顺序优化模块、水平分组模块和主题索 引构建模块。
[0032] (1)垂直分组模块
[0033]此模块将关系数据库和用户查询日志作为输入,利用一种图的最优划分策略一一 改进的谱聚类算法,并结合关系数据库自身的特点,同时考虑表的内容信息和来自查询日 志的用户反馈信息,将数据表进行垂直分组,形成一个主题类簇集合。其中每个主题类簇均 包含一组数据表,这些表不仅在结构上关联紧密、内容相近,而且在用户的查询日志中具有 较高的共现频率。
[0034] (2)表连接顺序优化模块
[0035]针对垂直分组模块得到的每一个主题类簇,对其中的数据表按照主外键关系进行 表连接。由于大型数据库中表的数量庞大,表连接操作需要相对较大的时间开销,因此需要 对表连接操作进行优化。此模炔基于遗传算法设计表连接顺序的最优选取方案,显著减小 了表连接代价。
[0036] (3)水平分组模块
[0037]利用以上模块得到的主题类簇集合作为输入,通过计算主题类簇中元组间的混合 相似度,分别为每个主题类簇构建元组关联图。进一步使用层次聚类算法,对各个主题类簇 进行水平分组操作,形成主题类簇单元集合。
[0038] (4)主题索引构建模块
[0039]此模块将水平分组模块中得到的主题类簇单元集合作为输入,使用关联规则进行 索引词的选取,进而为每个主题类簇构建主题索引。
[0040] 本申请为解决现有关键词在线查询方法存在查询过程中频繁的表连接所带来巨 大时间开销的问题,而现有关键词离线查询方法对于内部结构复杂、数据量庞大的大规模 数据库上的查询存在查询效率低的问题,而提出一种关系数据库中基于主题类簇单元的关 键词查询方法。
[0041] -种关系数据库中基于主题类簇单元的关键词查询方法,按以下步骤进行:
[0042] 一、主题类簇单元构建过程;
[0043] - .一、基于数据表特性和查询日志的垂直分组;
[0044] - .二、提出主题类簇中表连接顺序优化方案;
[0045] -.三、基于主题类簇元组关联图的水平分组;
[0046] 二、建立基于关联规则的索引优化机制;
[0047]三、将查询结果返回给用户。
[0048]本发明包括以下有益效果:
[0049] 1、提出了一种基于主题类簇单元的离线查询方法,适用于大规模关系数据库上的 关键词查询;
[0050] 2、构造了新型数据结构一一主题类簇单元。分别使用改进的谱聚类算法和主题类 簇元组关联图对数据表和元组进行垂直分组和水平分组;离线构建TCU集合并将其作为查 询应答,不仅能够显著减少查询响应时间,而且能够返回更加丰富、完整的主题语义信息;
[0051] 3、设计了一种基于遗传算法的表连接顺序优化方案,减少了预处理的时间开销;
[0052] 4、使用关联规则算法对索引词进行选择,进而为每个主题类簇构建索引,显著加 快了查询速度。
【附图说明】
[0053] 图1为主题类簇Americanfootball水平分组示意图;
[0054]图2为部分主题类簇元组关联图;
[0055]图3为基于主题类簇单元查询架构图;
[0056]图4为垂直分组方法架构图
[0057]图5为基于遗传算法的表连接顺序优化方案流程图;
[0058]图6为连接树与整数序列的对应关系示意图;
[0059] 图7为预处理时间对比关系图;
[0060] 图8为不同关键词个数下的平均响应时间对比关系图;
[0061] 图9为不同k值下的平均响应时间对比关系图;
[0062]图10为关键词数量与平均准确率对应关系图;
[0063]图11为关键词数量与平均召回率对应关系图;
[0064] 图12为不同数据集大小对查询性能的影响关系图
【具体实施方式】
[0065] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合图4至图6和具 体实施方式对本发明作进一步详细的说明。
【具体实施方式】 [0066] 一、本实施方式所述的一种关系数据库中基于主题类簇单元的关键 词查询方法,按以下步骤进行:
[0067] 一、主题类簇单元构建过程;
[0068] 一 .一、基于数据表特性和查询日志的垂直分组;
[0069] 一 .二、提出主题类簇中表连接顺序优化方案;
[0070] 一.三、基于主题类簇元组关联图的水平分组;
[0071]二、建立基于关联规则的索引优化机制;
[0072]三、将查询结果返回给用户。
[0073]本实施方式包括以下有益效果:
[0074] 1、提出了一种基于主题类簇单元的离线查询方法,适用于大规模关系数据库上的 关键词查询;
[0075] 2、构造了新型数据结构一一主题类簇单元。分别使用改进的谱聚类算法和主题类 簇元组关联图对数据表和元组进行垂直分组和水平分组;离线构建TCU集合并将其作为查 询应答,不仅能够显著减少查询响应时间,而且能够返回更加丰富、完整的主题语义信息;
[0076] 3、设计了一种基于遗传算法的表连接顺序优化方案,减少了预处理的时间开销;
[0077] 4、使用关联规则算法对索引词进行选择,进而为每个主题类簇构建索引,显著加 快了查询速度。
【具体实施方式】 [0078] 二、本实施方式是对一所述的一种关系数据库中基于 主题类簇单元的关键词查询方法的进一步说明,步骤一.一所述基于数据表特性和查询日 志的垂直分组的具体过程为:本申请采用表间相似性矩阵构建方法,分别从表特性,包括表 间拓扑紧密性和表间内容相似性以及查询日志两个方面构建初始输入矩阵,垂直分组方法 将关系数据库D和用户查询日志作为输入,一组主题类簇作为输出,具体流程如图4所示,垂 直分组方法大致可分为以下3大模块:输入模块、相似性矩阵构建模块和输出模块。输入模 块,将关系数据库及其模式图作为系统输入,分别用于描述数据库的内容信息和结构信息; 此外,查询日志也作为系统输入,侧面反映数据库的信息分布特征;相似性矩阵构建模块: 通过对输入模块中模式图和数据库的分析、计算,得到数据表间的拓扑紧密性和内容相似 性,分别构建拓扑紧密性矩阵和内容相似性矩阵,并在此基础上构建表间相似性矩阵;另外 对查询日志进行统计分析使以上矩阵得到进一步的加强和修正;最后,以一组主题类簇作 为结果输出。
[0079] (1)表间拓扑紧密性
[0080] 给定数据库的模式图G=(V,E),节点Vi和节点Vj之间的拓扑紧密性定义如下:
[0081]
[0082] 其中,|vi|为数据库中表Ti的大小,|vj|为数据库中表Tj的大小;0为影响因子,0越 大节点间的相互作用力越强;反之,相互作用力越弱。为节点 Vl和节点^之间的逻辑距 离:即数据库模式图中,节点Vl和节点W之间的路径长度。根据高斯函数的数学性质,对于给 定的σ值,每个节点的影响范围近似等于的局部区域,当两节点间的逻辑距离,大 于该值时,两节点间的拓扑紧密性迅速衰减为〇。
[0083] 通过公式(1)计算出任意两节点之间的拓扑紧密性,进而构建关系数据库的拓扑 紧密性矩阵如下:
[0084]
[0085] (2)表间内容相似性
[0086] 数据表由表名、属性和元组构成,因此在对表间内容相似性进行分析时可以从命 名相似性和赋值相似性两个方面进行深入探究;
[0087] 命名相似性包括表名相似性和属性名相似性两大部分,本申请用向量空间中计算 两实体间相似性的方法,首先提取表Ti的表名以及属性名中的关键字为表Ti构建向量Vi,提 取表Tj的表名及属性名中的关键字,为表Tj构建向量Vj,使用Cosine函数计算命名相似性:
[0088] Simi(Ti,Tj)=Sim(Vi,Vj)=Vi · Vj/( |Vi| · |Vj|) (2)
[0089] 其中Siim (Ti,Tj)为表Ti和表Tj间的命名相似性;
[0090] Sim(Vi,Vj)为向量Vi和向量Vj间的相似性
[0091] I Vi I和I Vj I分别为向量Vi和向量Vj的大小;
[0092] 赋值相似性具体求解过程如下:
[0093] 1、使用Jaccard距离计算两属性间的内容相似性;
[0094] J(u,v)=|ul v|/|uUv (3)
[0095] 其中,u为数据表Ti中的属性列;v为数据表Tj中的属性列;
[0096] 2、使用贪婪匹配策略检测数据库中的属性对集合Z;
[0097] 3、加权求平均得到两表间的赋值相似性;
[0098]
[0099] 其中,I Ti I为数据表Ti中的属性列个数;I Tj I为数据表Tj中的属性列个数;max( I Ti I,I Tj )为I Ti I和I Tj I两者中的较大值;》y=瓦/ ?χ?οο%为属性列u的变异系数,v.F=瓦/[xioo%为属 性列V的变异系数,是衡量表中各观测值变异程度的一个统计量;变异系数越小,属性列内 容的丰富度越小;反之,变异系数越大,属性列内容的丰富度越大;公式中i为属性列U的标 准差,瓦为属性列V的标准差,?7为属性列U的平均值;?为属性列V的平均值;ma X(u.V,v.V) 为u.V和v.V两者中的较大值;
[0100]综上所述,数据表Ti和数据表Tj间的内容相似性为:SimdTjXSimKTiJjH Sim2(Ti,Tj))/2;
[0101] 数据表间的内容相似性矩阵S为:
[0102]
其中1为数据库中数据表的个数;
[0103] 综合考虑结构和内容上的相似性,得到表间相似性矩阵:Adb = T+S;
[0104] 其中T为关系数据库的拓扑紧密性矩阵;
[0105] (3)相似性矩阵修正方法
[0106] 查询日志记录了用户检索数据库的历史访问信息,包含3个字段:用户ID、查询Q、 查询结果及结果所在的数据表T。带有用户反馈的垂直分组方法基本思想在于对查询日志 中的查询记录进行统计分析,并使用以下boost函数对相似性矩阵进行修正。
[0107] boos ti〇g( Ti, Tj ) = exp (log (count (Ti,Tj))/log (max (count))) (5)
[0108] (3〇11111:(1\,1'」)记录了表1\和表1'」在查询日志中的共现次数,11^((3〇11111:)为查询日 志中任意两表共现次数的最大值。由公式(5)可知,在查询日志中共现次数越多的表,紧密 性得分被加强的程度越大。
[0109] 使用用户查询日志中的信息对以上垂直分组结果进行加强,提出以下得分加强函 数:
[0110] AFinai(ti, tJ) = Adb(ti, tJ) Xboosti〇g(ti, tj) (6)
[0111] 进而得到表间相似性矩阵
,其中1为数据库中数 据表的个数;
[0112] (4)垂直分组
[0113] 本申请为基于改进谱聚类的垂直分组
[0114] 输入:G=(V,E)、k和影响因子〇,其中,V={V1,…,V1}, |E| =m;
[0115] 输出:主题类簇集合C= {&,C2,…,Ck};
[0116] 步骤:
[0117] ①构建表间相似性矩阵AFinai;
[0118] ②计算特征向量和特征值,用前k个特征向量ui, ...,Uk构建特征向量空间Rk;
[0119] ③将V中所有的节点映射到Rk空间;
[0120] ④使用k-means算法将Rk中的节点聚集到主题类簇Ci,C2, . . .,Ck中。
【具体实施方式】 [0121] 三、本实施方式是对一或二所述的一种关系数据库中 基于主题类簇单元的关键词查询方法的进一步说明,步骤一.二所述提出主题类簇中表连 接顺序优化方案的具体过程为:
[0122] 为了避免查询过程中复杂的表连接操作,在数据预处理中需要将主题类簇C1 = m,T2, . . .,Tn)中的η张表m,. . .,Tn进行连接得到综合表T、。现有的方法仅仅按照主外 键关系,进行广度优先遍历对表进行连接。在大型数据库中,通常包含成百上千张数据表, 使用以上方法需要付出较大的时间开销,预处理效率受到极大影响。针对这一问题,本发明 基于遗传算法设计了表连接顺序优化方案,如图5所示。
[0123] 首先,在运用遗传算法进行表连接顺序优化时,最关键的一步是对数据表进行编 码。使用连接树的形式表达不同的表连接顺序,为了全面保留连接树的特征信息,采用先根 遍历连接树的形式进行编码。如图6所示:
[0124] 经过以上编码后,随机选取poplength个连接树作为初始种群,并对第一代种群进 行遗传操作产生genlength个新个体。遗传操作使用交叉和变异两种算子对种群进行交换。 交叉算子:随机产生相同大小的子树进行交换,对于交叉后连接树上重复的数据表,用其他 未出现的数据表替换;变异算子:交换连接树上任意非零位的数据表。接着依据公知的连接 树代价公式计算每个连接树的代价,选择poplength个代价最小的连接树作为下一代种群。 重复以上遗传、选择过程直到达到预定迭代次数,该迭代次数通过对多次实验的分析总结 得到合理的取值,进化过程最后一代中代价最小的连接树就是通过遗传算法得到的最优表 连接顺序。
【具体实施方式】 [0125] 四、本实施方式是对一至三之一所述的一种关系数据 库中基于主题类簇单元的关键词查询方法的进一步说明,步骤一.三所述基于主题类簇元 组关联图的水平分组的具体过程为:
[0126] 经过垂直分组和主题类簇表连接操作之后,得到主题类簇集合..., &),其中每个主题类簇Q均包含一张综合表,通常,用户希望将多个相关元组进行集成 作为应答结果,因此采用一种合理的水平分组方法对主题类簇作进一步分组能够有效地提 高查询速度。现有水平分组方法简单地使用数据库中的group by操作进行,可能会导致属 性值不同但具有较高相似性的元组被分到不同的分组中,从而导致水平分组结果不够合 理。本发明使用主题类簇元组关联图对主题类簇进行水平分组,在提高查询效率的同时使 数据的分组更符合用户查询需求。另外,使用一种混合相似性计算方法,使元组间的相似性 计算结果更加精确且具有良好的扩展性。
[0127] 主题类簇元组混合相似性计算
[0128] 水平分组策略中一个重要的数据模型就是主题类簇元组关联图G=(V,E),它是一 个加权无向图,主题类簇元组间的相似度作为边的权值,为了提高主题类簇元组间相似性 计算的准确率和可扩展性,本小节提出了一种混合相似性计算方法。
[0129] 假定VdPt、为主题类簇匕中任意两个元组,两元组的混合相似性计算过程如下:
[0130] 1、定义不同的距离函数dk,包括:欧几里得距离、编辑距离、汉明距离;
[0131] 2、将主题类簇元组在η维空间上进行映射,并根据距离函数求出两元组间的距离 dk(t i , t j);
[0132] 3、根据以下公式求出两元组间的混合相似性。 (7)
[0135] 其中,511^(^',4')为距离函数为(11{时,元组"4时/」间的相似性;
[0136] /6^3#((',以为距离函数为4 1^{1,2,3}时,元组^1和^间相似性的最大值;
[0137] 3加(6,匕)为两元组6和匕间的混合相似性。
[0138] 水平分组的步骤:
[0139] 1、计算主题类簇Ci中各主题类簇元组间的混合相似性,构建主题类簇元组关联 图;
[0140] 2、按照相似度阈值Φ,将关联图划分为若干个连通分支;
[0141 ] 3、找出主题类簇元组个数大于Minsize的主题类簇单元,并计算其融合性,选出融 合性最小的主题类簇单元,断开该主题类簇单元中相似性最小的边;
[0142] 4、重复步骤3,直到所有主题类簇单元中所含的元组数小于Minsize为止;
[0143] 5、计算主题类簇单元间的分离性,合并分离性最小的主题类簇单元;
[0144] 6、重复步骤5,直到主题类簇匕中主题类簇单元的个数1C」达到要求为止。
[0145] 步骤3和步骤5中用到的主题类簇单元融合性、分离性通过以下公式进行计算:
[0146] (8)
[0147] fy
[0148] 其中,SimUWj)为主题类簇元组t'i和t'j间的混合相似性;TCUk和TCUi分别表 示两个不同的主题类簇单元;
[0149] 公式(8)和(9)涉及到3个参数:相似度阈值Φ、最终主题类簇单元的个数k和 Minsize,前两个参数根据用户的要求设定,Minsize则设为整个数据量的1 %~3%。
【具体实施方式】 [0150] 五、本实施方式是对一至四之一所述的一种关系数据 库中基于主题类簇单元的关键词查询方法的进一步说明,步骤二所述建立基于关联规则的 索引优化机制的具体过程为:
[0151] 为了加快查询速度,需要为数据库构建索引。传统的方法仅仅为单个关键词构建 倒排索引项列表,在多关键词查询中索引效率受到较大限制。为了解决以上问题,本申请提 出了基于主题类簇单元的多关键词索引构建机制。
[0152] 分别在每个主题类簇中使用关联规则算法找到频繁项集,每个频繁项集都对应一 个倒排索引项列表,列表中包含了所有直接出现该关键词或关键词组合的主题类簇单元。 索引结构如下所示:
[0153] Keyword(s)^(TCUi,TCU2-·· · · ) (10)
[0154] 我们利用Lucene工具包生成以上基于主题类簇单元的主题索引。
【具体实施方式】 [0155] 六、本实施方式是对一至五之一所述的一种关系数据 库中基于主题类簇单元的关键词查询方法的进一步说明,步骤三所述所述将查询结果返回 给用户的具体过程为:
[0156] 利用基于主题类簇单元的主题索引即可以有效地将包含关键词(组)的主题类簇 单元作为查询结果返回给用户。给定一组关键词查询K={lu,k 2, ....,kn},系统并行搜索多 个主题索引找到对应的主题类簇单元,根据现有的结果排序函数计算相关主题类簇单元的 得分,按照得分对其进行降序排序,将t〇p-k个主题类簇单元返回给用户。
[0157]为验证本发明的有益效果,作如下仿真实验:
[0158]本实验采用公开数据集FreebaseTreebase是一个开放的结构化数据库,规模较 大且具有一定的结构复杂性,其中包含约2000张表和3900万个实体。由于受到实验条件的 限制,我们在不影响实验结果的前提下对数据集进行简化处理。保持数据库底层模式和数 据表间的连接关系不变,从Freebase数据库中抽取部分数据(400M)作为本实验的数据集。 为验证本申请提出的TCU-Based查询方法的效果与性能,进行了以下三组实验。首先,通过 数据预处理时间的对比,验证表连接顺序优化方案的有效性。其次,将本申请提出的TCU-Based查询方法与基准方法DBXplorer、BLANKS和SAINT进行比较,验证本申请方法的效率和 准确率。最后,通过在不同规模的数据集上进行查询响应时间的对比实验,验证该方法的可 扩展性。
[0159]算法在Microsoft Windows 7操作系统、JAVA环境下运行,采用IntcKiiCore(TM) 2 · 5GHz 的 CPU,4GB 内存,500G 硬盘。
[0160]表连接顺序优化方案评估
[0161]统计表连接顺序优化前后的数据预处理时间,并且通过在不同规模的数据库中进 行对比分析,验证本申请提出的基于遗传算法的表连接顺序优化方案的有效性。实验结果 如图7所示。图中横坐标表示数据预处理过程中涉及数据表的数量,纵坐标表示数据预处理 时间。由图中结果可知,数据预处理采用遗传算法得到的表连接顺序可以显著提高预处理 的效率,且随着表数量的增加,效果越明显。
[0162] 方法对比
[0163] 通过与基准查询方法进行对比,评估了本申请查询方法TCU-Based的性能。分别从 查询效率和结果准确率两个方面进行实验。从数据库的查询日志中随机选出100个关键词 查询,在Freebase数据集上分别使用DBXplorer、BLANKS、SAINT和TCU-Based四种方法进行 查询,分析各个方法的查询响应时间和查询结果的质量。
[0164] (1)查询效率
[0165] 首先,我们使用不同数量的查询关键词,将四种方法的top-2平均查询响应时间进 行比较。查询响应时间从执行查询开始到产生top-2个查询应答结束,不包括离线数据预处 理时间。如图8所示,横坐标表示关键词个数,纵坐标表示平均查询响应时间。由图可知,离 线查询方法SAINT和TCU-Based查询效率明显优于在线查询方法DBXplorer和BLANKS,原因 是前两种方法在查询过程中需要进行复杂的表连接操作,尤其在结构较为复杂的数据库 中,此类表连接操作需要较大的时间开销;相反,离线查询方法在用户提出查询之前对数据 库中的表以及元组进行预处理,因此显著提高了查询速度。另外,本申请提出的查询方法 T⑶-Based为每个主题类簇构建主题索引,在用户提出查询后多个索引并行执行,使查询效 率相对于离线查询方法SAINT有了进一步提升。由图8可知,当关键词个数大于等于3时,查 询效率的提高更为明显,原因是使用关联规则进行索引词的选取,在用户给出多个查询关 键词时,可以直接检索到包含所有关键词的索引项,而不需要进行索引连接。
[0166] 为了进一步评估本申请查询方法的性能,我们进行了top-k上的查询方法对比,k 从2到20进行取值。如图9所示,图中横坐标表示k的不同取值,纵坐标为不同k值下的平均查 询响应时间。显然,本申请方法的查询性能明显优于另外三种基准检测查询方法。例如,在k 取 12 时,DBXplorer、BLANKS、SAINT 的平均查询响应时间分别为 1350〇1^、74521118、342〇1118,而 本申请的查询方法T⑶-Based仅仅花费2014ms。具体原因类似于图8,此处不再赘述。
[0167] (2)查询有效性
[0168] 查询有效性分别使用准确率和召回率两个评价指标进行衡量。为了对其进行准确 的计算,首先我们随机选取1〇〇个SQL查询并将其对应的查询应答作为标准查询结果。然后 提取SQL查询中的关键词,并作为上述四种查询方法的输入。其平均准确率和平均召回率对 比情况如图10和图11所示。由图10可知,随着关键词数量的增加,查询算法的准确率呈下降 趋势。1-key word和2-keyword查询的准确率一般情况下优于3-keyword、4-keyword和5_ keyword,因为随着关键词数量的增多,关键词间的关系变得更为复杂。本文方法TCU-Based 在准确率方面比同类方法SAINT高出3%~7%,与其他两种方法相比,效果更为显著。由图 11可知,在召回率方面本文方法均明显优于现有方法,与SAINT相比高出15 %左右。
[0169] 可扩展性评估
[0170] 本实验对top-5的平均查询响应时间进行度量。图12中横坐标表示不同数据集大 小,纵坐标表示top-5的平均查询响应时间。从图12中可知,随着数据库规模从100MB依次增 加到500MB,由本文方法得到的平均查询响应时间变化缓慢。这是由于数据量的增大,仅仅 对预处理时的元组连接产生了较大的影响,而对在线索引的影响并不大。通过实验可以证 明本文方法在不同数据集大小上展现了较好的可扩展性。
【主权项】
1. 一种关系数据库中基于主题类簇单元的关键词查询方法,其特征在于它按W下步骤 进行: 一、主题类簇单元构建过程; 一.一、基于数据表特性和查询日志的垂直分组; 一.二、提出主题类簇中表连接顺序优化方案; 一. Ξ、基于主题类簇元组关联图的水平分组; 二、 建立基于关联规则的索引优化机制; Ξ、将查询结果返回给用户。2. 如权利要求1所述的一种关系数据库中基于主题类簇单元的关键词查询方法,其特 征在于步骤一.一所述基于数据表特性和查询日志的垂直分组的具体过程为: 采用表间相似性矩阵构建方法,分别从表特性,包括表间拓扑紧密性和表间内容相似 性W及查询日志两个方面构建初始输入矩阵,垂直分组方法将关系数据库D和用户查询日 志作为输入,一组主题类簇作为输出,垂直分组方法分为W下3大模块:输入模块、相似性矩 阵构建模块和输出模块;输入模块,将关系数据库及其模式图作为输入,查询日志也作为输 入;相似性矩阵构建模块:通过对输入模块中模式图和数据库的分析、计算,得到数据表间 的拓扑紧密性和内容相似性,分别构建拓扑紧密性矩阵和内容相似性矩阵,并在此基础上 构建表间相似性矩阵;对查询日志进行统计分析使W上矩阵得到进一步的加强和修正;最 后,W-组主题类簇作为结果输出; (1) 表间拓扑紧密性 给定数据库的模式图G= (V,E),节点VI和节点V么间的拓扑紧密性定义如下:(1) 其中,I VI巧数据库中表Τι的大小,I vj巧数据库中表L的大小;。为影响因子;旬:,.为节 点VI和节点Vj之间的逻辑距离:即数据库模式图中,节点VI和节点Vj之间的路径长度;根据 高斯函数的数学性质,对于给定的σ值,每个节点的影响范围近似等于^3口Α/?]的局部区域, 当两节点间的逻辑距离W、,i,大于该值时,两节点间的拓扑紧密性迅速衰减为0; 通过公式(1)计算出任意两节点之间的拓扑紧密性,进而构建关系数据库的拓扑紧密 性矩阵如下:(2) 表间内容相似性 数据表由表名、属性和元组构成,因此在对表间内容相似性进行分析时可W从命名相 似性和赋值相似性两个方面进行深入探究; 命名相似性包括表名相似性和属性名相似性两大部分,本申请用向量空间中计算两实 体间相似性的方法,首先提取表Τι的表名W及属性名中的关键字为表Τι构建向量Vi,提取表 Tj的表名及属性名中的关键字,为表Tj构建向量Vj,使用Cosine函数计算命名相似性: Simi(Ti,Tj) = Sim(Vi,Vj)=Vi · Vj/^(|Vi| · |Vj|) (2)其中Simi(Ti,Tj)为表Ti和表Tj 间的命名相似性; Sim( Vi,Vj)为向量Vi和向量Vj间的相似性 Vi I和I Vj I分别为向量Vi和向量Vj的大小; 赋值相似性具体求解过程如下: ① 使用化ccard距离计算两属性间的内容相似性; ^u,v)=|ul v|/|uUv| (3) 其中,u为数据表Ti中的属性列;V为数据表Tj中的属性列; ② 使用贪婪匹配策略检测数据库中的属性对集合Z: ③ 加权求平均得到两表间的赋值相似性。(4) 其中,|Ti巧数据表Τι中的属性列个数;|Tj巧数据表T冲的属性列个数;max( |Τι|,|Tj )为I Ti I和I Tj巧者中的较大值;化Γ=玄/uxloo%为属性列u的变异系数,V.F=S,/;X100% 为属性列V的变异系数,是衡量表中各观测值变异程度的一个统计量;变异系数越小,属性 列内容的丰富度越小;反之,变异系数越大,属性列内容的丰富度越大;公式中:?:为属性列U 的标准差,&为属性列V的标准差,?7为属性列U的平均值;?为属性列V的平均值;maxU.V, v.V)为U.V和v.V两者中的较大值; 数据表Ti和数据表Tj间的内容相似性为:Sim(Ti,Tj) = (Sim(Ti,Tj)+Sim2(Ti,Tj))/2; 数据表间的内容相似性矩阵S为:其中1为数据库中数据表的个数; 综合考虑结构和内容上的相似性,得到表间相似性矩阵:Adb = T+S; 其中T为关系数据库的拓扑紧密性矩阵; (3)相似性矩阵修正方法 查询日志记录了用户检索数据库的历史访问信息,包含3个字段:用户ID、查询Q、查询 结果及结果所在的数据表T;带有用户反馈的垂直分组方法基本思想在于对查询日志中的 查询记录进行统计分析,并使用W下boost函数对相似性矩阵进行修正; boosti〇g(Ti ,Tj) = exp (log (count (Ti ,Tj))/log (max (count))) (5) count (Ti, Tj)记录了表Ti和表Tj在查询日志中的共现次数,max(count)为查询日志中任 意两表共现次数的最大值; 使用用户查询日志中的信息对W上垂直分组结果进行加强,提出W下得分加强函数: AFinal(ti'tj) = ADB(ti,tj) XboOStlog(ti'tj) (6) 进而得到表间相似性矩构> 其中1为数据库中数据表的 个数; (4)垂直分组 本申请为基于改进谱聚类的垂直分组 输入:G=(V,E)、k和影响因子。,其中,V= {vi,. . .,vi},|E| =m; 输出:主题类簇集合C= {Cl,C2,. . .,Ck}; 步骤: ① 构建表间相似性矩阵AFinal; ② 计算特征向量和特征值,用前k个特征向量m,...,uk构建特征向量空间Rk; ③ 将V中所有的节点映射到Rk空间; ④ 使用k-means算法将Rk中的节点聚集到主题类簇Ci,C2,. . .,Ck中。3. 如权利要求1或2所述的一种关系数据库中基于主题类簇单元的关键词查询方法,其 特征在于步骤一.二所述主题类簇中表连接顺序优化方案的具体内容为: 在数据预处理中将主题类簇Ci=(Tl,T2, . . .,Τη)中的η张表Τ?,Τ2, . . .,Τη进行连接得到 综合表Τι',本发明基于遗传算法设计了表连接顺序优化方案,首先,在运用遗传算法进行 表连接顺序优化时,使用连接树的形式表达不同的表连接顺序,并且采用先根遍历连接树 的形式进行编码;经过编码后,随机选取poplength个连接树作为初始种群,并对第一代种 群进行遗传操作产生genlength个新个体;遗传操作使用交叉和变异两种算子对种群进行 交换;交叉算子:随机产生相同大小的子树进行交换,对于交叉后连接树上重复的数据表, 用其他未出现的数据表替换;变异算子:交换连接树上任意非零位的数据表;接着依据公知 的连接树代价公式计算每个连接树的代价,选择pop 1 ength个代价最小的连接树作为下一 代种群;重复W上遗传、选择过程直到达到预定迭代次数,该迭代次数通过对多次实验的分 析总结得到合理的取值,进化过程最后一代中代价最小的连接树就是通过遗传算法得到的 最优表连接顺序。4. 如权利要求3所述的一种关系数据库中基于主题类簇单元的关键词查询方法,其特 征在于步骤一.Ξ所述基于主题类簇元组关联图的水平分组的具体过程为: 经过垂直分组和主题类簇表连接操作之后,得到主题类簇集合C=(Ci,C2, . . .,Ck),其 中每个主题类簇Cl均包含一张综合表Τι',使用主题类簇元组关联图对主题类簇进行水平分 组,使用一种混合相似性计算方法; 主题类簇元组混合相似性计算 水平分组策略中一个重要的数据模型就是主题类簇元组关联图G=(V,E),是一个加权 无向图,主题类簇元组间的相似度作为边的权值; 假定ti '和t/为主题类簇Cl中任意两个元组,两元组的混合相似性计算过程如下: ① 定义不同的距离函数dk,包括:欧几里得距离、编辑距离、汉明距离; ② 将主题类簇元组在η维空间上进行映射,并根据距离函数求出两元组间的距离 dk(ti',tj'); ③ 根据W下公式求出两元组间的混合相似性;其中,Simk(ti',t/)为距离函数为dk时,元组ti'和t/间的相似性; h乂为距离函数为dk ke {1,2,3}时,元组ti'和t/间相似性的最大值; Sim(ti ',t/ )为两元组ti '和t/间的混合相似性; 水平分组的步骤: ① 计算主题类簇Cl中各主题类簇元组间的混合相似性,构建主题类簇元组关联图; ② 按照相似度阔值Φ,将关联图划分为若干个连通分支; ③ 找出主题类簇元组个数大于Minsize的主题类簇单元,并计算其融合性,选出融合性 最小的主题类簇单元,断开该主题类簇单元中相似性最小的边; ④ 重复步骤③,直到主题类簇Cl中各主题类簇单元中所含的元组数小于Minsize为止; ⑤ 计算主题类簇单元间的分离性,合并分离性最小的主题类簇单元; ⑥ 重复步骤⑤,直到主题类簇Cl中主题类簇单元的个数I Cl I达到要求为止; 步骤③和步骤⑤中用到的主题类簇单元融合性、分离性通过W下公式进行计算:其中,Sim( ti ',t/ )为主题类簇元组ti '和t/间的混合相似性;TOJk和TOJi分别表示两 个不同的主题类簇单元。5. 如权利要求4所述的一种关系数据库中基于主题类簇单元的关键词查询方法,其特 征在于步骤二所述建立基于关联规则的索引优化机制的具体过程为:分别在每个主题类簇 中使用关联规则算法找到频繁项集,每个频繁项集都对应一个倒排索引项列表,列表中包 含了所有直接出现该关键词或关键词组合的主题类簇单元,索引结构如下所示: Keyword (S)一(TCUi,TCU2.....) (10) 利用Lucene工具包生成W上基于主题类簇单元的主题索引。6. 如权利要求5所述的一种关系数据库中基于主题类簇单元的关键词查询方法,其特 征在于步骤Ξ所述将查询结果返回给用户的具体过程为: 给定一组关键词查询Κ=化l,k2, ....,kn},并行捜索多个主题索引找到对应的主题类 簇单元,根据公知的结果排序函数计算相关主题类簇单元的得分,按照得分对其进行降序 排序,将top-k个主题类簇单元返回给用户。
【文档编号】G06F17/30GK105975488SQ201610264735
【公开日】2016年9月28日
【申请日】2016年4月25日
【发明人】王念滨, 周连科, 王红滨, 王瑛琦, 何鸣, 宋奎勇
【申请人】哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1