一种基于连接代价的sparql语义数据查询优化方法

文档序号:8512606阅读:393来源:国知局
一种基于连接代价的sparql语义数据查询优化方法
【技术领域】
[0001] 本发明属于计算机查询优化技术领域,具体涉及一种基于连接代价的SPARQL语 义查询优化方法。
【背景技术】
[0002] 目前关联数据(Linked Data)的规模逐年递增,基于关联数据的语义查询的效率 一直有待提高。关联数据一般采用RDF (资源描述框架)来表达,目前对RDF文档查询优 化研宄主要分为2个方面:一种是对RDF文档建立有效的索引机制,以及Oracle、My Sql等 关系数据库对RDF文档的序列化索引机制;另一种是对RDF标准查询语言SPARQL的优化。 前者主要依赖于RDF的索引结构、磁盘索引存储方式或数据库的特性来达到较高的I/O吞 吐性能;后者从分析SPARQL语法语义的角度,研宄其查询机制,找到最优的逻辑查询计划。 SPARQL类似于SQL查询语言的select-from结构,它的执行需要相应的查询处理器进行编 译。在编译过程中会进行关系代数等价转换,关系代数的等价形式有多种,各操作子的执行 顺序,连接操作的代价,以及操作子的具体实现方式都有差异,所以存在对SPARQL的各种 逻辑优化策略。
[0003] 目前对SPARQL优化的方法中,一些是从SPARQL语句中属性相关性的角度来调整 SPARQL语句中连接操作的选择度估值,以及使用自适应存储系统FlexTable来改善查询效 率;还有的方法采用SPARQL语义约简规则以及选择估值策略融合的方案来设计SPARQL的 优化算法;以及利用元组模式的选择度估值寻找元组模式最优连接顺序的方法,这种方法 已应用于Jena的SPARQL查询优化器ARQ中;将SPARQL查询模式进行分组也是一种优化策 略,还可以采用贝叶斯网和链直方图的方法进行选择度的估计来优化SPARQL查询。

【发明内容】

[0004] 本发明在于解决海量RDF语义数据查询效率低下的问题,设计了一种基于连接代 价的SPARQL语义查询优化方法。
[0005] 为实现上述目标,本发明采用如下技术方案:
[0006] -种基于连接代价的SPARQL语义数据查询优化方法,包括如下步骤:
[0007] 步骤1 :构建RDF语义数据索引,使用B树结构对RDF语义数据进行索引存储,选 择spo、pos、osp三种索引方式;其中,S为主语、P为谓语、0为宾语;
[0008] 步骤2 :获取用户客户端提交的SPARQL查询语句,解析出SPARQL查询语句中的图 模式,并表示为SPARQL连接图形式;
[0009] 步骤3 :利用RDF模式信息简化SPARQL查询语句,得到简化的SPARQL连接图;
[0010] 步骤4 :估计SPARQL查询语句子查询结果的基数大小cart (t);使用公式cart (t) =3XN/4进行估计,其中N表示子查询经过哈希运算后结果集个数的取值范围;t表示 SPARQL查询语句中的一个子查询,对应精简后的SPARQL连接图中的一个节点;子查询是指 SPARQL连接图模式中的一条三元组查询;
[0011] 步骤5 :对连接操作的结果集大小进行估计;
[0012] 步骤6 :根据步骤5得到的连接操作的结果集大小的估计值,使用动态规划方法在 整个连接图空间中查找最优的执行顺序。
[0013] 步骤7 :根据最佳执行顺序,产生新的SPARQL查询并提交服务器端执行语义查 询;
[0014] 步骤8:结束。
[0015] 进一步的,所述的步骤3中利用RDF模式信息简化SPARQL查询语句;的具体精简 规则为:
[0016] ①对含有公共变量的SPARQL连接图模式{ ? X rdf :type CL ? X rdf :type C2.......}简化为{? x rdf: type CL......},其中,Cl 和 C2 是 RDF 中的概念,c i e c 2 ; ? x表示待查询的变量;
[0017] ②对于{? x rdf: type CL ? x p 〇·......}的SPARQL连接图模式,其中p为非 rdf: type类型的属性,简化为{? X p 〇.……},〇为宾语;使用该规则时,根据模式信息考 察谓语P的定义域或值域是否为单个概念,如果是,直接按该规则简化,如果不是,SPARQL 连接图模式将不进行简化处理;
[0018] ③对于含有公共变量形{ ? X pi ? 〇. ? y p2 ? 〇.......}的图模式,其中p 1是 P 2的子属性,简化为{ ? X pi ? 〇·......}。
[0019] 进一步的,所述的步骤5中使用如下方法估计连接操作结果集的基数:
[0020]
【主权项】
1. 一种基于连接代价的SPARQL语义数据查询优化方法,其特征在于,包括如下步骤: 步骤1 :构建RDF语义数据索引,使用B树结构对RDF语义数据进行索引存储,选择spo、 pos、osp三种索引方式;其中,S为主语、P为谓语、0为宾语; 步骤2 :获取用户客户端提交的SPARQL查询语句,解析出SPARQL查询语句中的图模 式,并表示为SPARQL连接图形式; 步骤3 :利用RDF模式信息简化SPARQL查询语句,得到简化的SPARQL连接图; 步骤4 :估计SPARQL查询语句子查询结果的基数大小cart (t);使用公式cart (t) =3XN/4进行估计,其中N表示子查询经过哈希运算后结果集个数的取值范围;t表示 SPARQL查询语句中的一个子查询,对应精简后的SPARQL连接图中的一个节点;子查询是指 SPARQL连接图模式中的一条三元组查询; 步骤5 :对连接操作的结果集大小进行估计; 步骤6 :根据步骤5得到的连接操作的结果集大小的估计值,使用动态规划方法在整个 连接图空间中查找最优的执行顺序。 步骤7 :根据最佳执行顺序,产生新的SPARQL查询并提交服务器端执行语义查询; 步骤8 :结束。
2. 根据权利要求1所述的一种基于连接代价的SPARQL语义数据查询优化方法,其特征 在于,所述的步骤3中利用RDF模式信息简化SPARQL查询语句;的具体精简规则为: ① 对含有公共变量的SPARQL连接图模式{? X rdf: type CL ? X rdf: type C2.......} 简化为{? x rdf: type CL……},其中,Cl和C2是RDF中的概念,c ! = c 2 ; ? x表示待 查询的变量; ② 对于{ ? X rdf :type CL ? X P 〇·......}的SPARQL连接图模式,其中p为非 rdf: type类型的属性,简化为{? X p 〇.……},〇为宾语;使用该规则时,根据模式信息考 察谓语P的定义域或值域是否为单个概念,如果是,直接按该规则简化,如果不是,SPARQL 连接图模式将不进行简化处理; ③ 对于含有公共变量形{ ? X Pl ? 〇. ? y P2 ? 〇.......}的图模式,其中P 1是P 2 的子属性,简化为{ ? X pl ? 〇.......}。
3. 根据权利要求1所述的一种基于连接代价的SPARQL语义数据查询优化方法,其特征 在于,所述的步骤5中使用如下方法估计连接操作结果集的基数: T(R?S)=sX |R| X |S| 其中,R和S分别表示SPARQL查询语句子查询结果的基数大小,T(RXS)表示r、$连接 操作的结果集基数大小的估计,S表示选中率,|R|表示R的基数,Isl表示S的基数,其估 计通过cart (t)计算;假设R中的变量集合为VK,S中的变量集合为Vs;s的确定分如下几 种情况: ① 当左右连接操作数没有公共变量时,SPARQL连接图中子图之间没有直接的边连接, 这种情况泛化为笛卡尔积,这时s = 1,那么 T(R^S)= |R|X|S| ② 当左右连接操作数有公共变量时,假设公共变量的集合为Vks= V Kn V S,W(R,VKS)表 示R上的Vks变量集上的不同值的个数,W(S,V KS)表示S上的Vks变量集上的不同值数,并 假设不同值在操作数上都是均匀分布的;当W(R,VKS) < W(S,VKS),假设R在变量Vks的值都 * S上,那么R中每个元组在S中有^^个元组匹配,贝丨J iT(RtxlS)= W(S,Vss)叫, S = W(S1Vss) ?同理当 W (S,Vks)彡 W (R,Vks)时,t(rms)= W (R, VRS) X Is I , S = W (R, Vss), 两种情况可简化为: T(R>:IS)= _I " I X I >s.i_ 。 max{W(R, Vsi ),W(S, Vss )}
4. 根据权利要求3所述的一种基于连接代价的SPARQL语义数据查询优化方法,其特征 在于,所述的W (R,VKS),W (S,Vks)的估计利用子查询结果基数的估计值和属性统计信息来计 算。
5. 根据权利要求1所述的一种基于连接代价的SPARQL语义数据查询优化方法,其特征 在于,所述的步骤6中,该步骤中求解的每一个阶段需要求解的项目包括:连接操作结果集 大小的估计T、连接操作最小代价的估计C、该阶段最佳执行顺序Q。
6. 根据权利要求5所述的一种基于连接代价的SPARQL语义数据查询优化方法,其特征 在于,所述的连接操作最小代价的估计C使用中间结果集基数和进行估计。
7. 根据权利要求6所述的一种基于连接代价的SPARQL语义数据查询优化方法,其特征 在于,所述的动态规划方法为: 首先,初始化SPARQL连接图,包括节点大小及边的权值; 第一阶段:计算每一条边的连接操作结果集大小的估计T1,每一条边的连接操作最小 代价的估计Cl,第一阶段最佳执行顺序Ql ; 第二阶段:计算每两条连接边的连接操作结果集大小的估计T2、每两条边的连接操作 最小代价的估计C2、第二阶段最佳执行顺序Q2 ; 第三阶段:计算每三条连接边的连接操作结果集大小的估计T3、每三条边的连接操作 最小代价的估计C3、第三阶段最佳执行顺序Q3,直至所有连接边都计算完成,输出该阶段 的Q。
【专利摘要】本发明提供了一种基于连接代价的SPARQL语义数据查询优化方法,本方法使用RDF的模式信息来精简SPARQL基本图模式,然后使用B树结构快速估计SPARQL连接图的节点大小及边权值,使用连接代价估计并结合动态规划方法找到最优逻辑查询计划,从而提高RDF语义数据的查询效率。<b/>
【IPC分类】G06F17-30
【公开号】CN104834754
【申请号】CN201510288922
【发明人】徐雷, 方卿, 袁小群
【申请人】武汉大学
【公开日】2015年8月12日
【申请日】2015年5月29日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1