在关系数据库上支持命令式图形查询的方法和系统的制作方法_5

文档序号:9471402阅读:来源:国知局
以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语目一诸如“C”语目或类似的编程语目。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0105]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0106]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0107]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0108]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0109]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
【主权项】
1.一种在关系数据库上支持命令式图形查询的方法,包括: 将命令式图形查询解析为执行计划的操作; 将所述关系数据库支持的执行计划的操作翻译为公共表表达式查询;以及 在所述关系数据库上执行所述翻译后的公共表表达式查询。2.根据权利要求1所述的方法,还包括: 将所述关系数据库不支持的执行计划的操作翻译为用户自定义函数查询; 在所述关系数据库上执行所述翻译后的用户自定义函数查询。3.根据权利要求1或2所述的方法,还包括: 将所述关系数据库不支持的执行计划的操作翻译为存储过程查询; 在所述关系数据库上执行所述翻译后的存储过程查询。4.根据权利要求2所述的方法,还包括: 将翻译后的用户自定义函数查询中的特定查询进一步翻译为公共表表达式查询。5.根据权利要求3所述的方法,还包括: 将翻译后的公共表表达式查询中的特定查询进一步翻译为存储过程查询。6.根据权利要求2所述的方法,还包括: 将翻译后的用户自定义函数查询中的特定查询进一步翻译为存储过程查询。7.根据权利要求1所述的方法,还包括: 响应于在所述翻译后的公共表表达式查询中存在重复的公共表表达式查询,合并所述重复的公共表表达式查询。8.根据权利要求1所述的方法,还包括: 基于所述关系数据库,根据翻译后的查询,建立查询树; 根据查询树的每个节点的估计代价,来重构所述查询树以使得整体的估计代价减少。9.根据权利要求8所述的方法,其中,所述查询树是左深连接树,该左深连接树中的每个具有两个子节点的连接父节点表示两个关系数据集的连接操作,每个只有一个子节点的非连接父节点和该子节点表示一个关系数据集的选择或投影操作,该左深连接树的各节点根据后序遍历顺序标号,最左侧的子节点具有最小标号, 其中,根据查询树的每个节点的估计代价,来重构所述查询树以使得整体的估计代价减少的步骤包括: 从具有最小标号的连接父节点开始,依次根据标号顺序处理每个连接父节点,其中,对一个连接父节点的处理包括: 估计与该连接父节点连接的两个子树的代价,及连接这两个子树得到该连接父节点的代价; 通过如下来判断左右子树是否可交换:估计交换左右子树后的连接父节点的代价;若交换左右子树后的代价更小,则交换其左右子树,以改写该连接父节点的连接顺序。10.根据权利要求8的方法,其中,所述每个节点的估计代价是基于所述关系数据库的统计而得到的每个数据集的数目。11.根据权利要求1所述的方法,其中,所述关系数据库支持的所述执行计划的操作包括下列中的一个或多个:图遍历操作以及在图遍历操作中的变换、过滤、分支操作,所述关系数据库不支持的所述执行计划的操作包括下列中的一个或多个:路径操作、循环操作、递归操作、增加、删除、改变图数据的操作。12.—种在关系数据库上支持命令式图形查询的系统,包括: 将命令式图形查询解析为执行计划的操作的装置; 将所述关系数据库支持的执行计划的操作翻译为公共表表达式查询的装置; 在所述关系数据库上执行所述翻译后的公共表表达式查询的装置。13.根据权利要求12所述的系统,该系统还包括: 将所述关系数据库不支持的所述执行计划的操作翻译为用户自定义函数查询的装置; 在所述关系数据库上执行所述翻译后的用户自定义函数查询的装置。14.根据权利要求12或13所述的系统,该系统还包括: 将所述关系数据库不支持的所述执行计划的操作翻译为存储过程查询的装置; 在所述关系数据库上执行所述翻译后的存储过程查询的装置。15.根据权利要求13所述的系统,还包括: 将翻译后的用户自定义函数查询中的特定查询进一步翻译为公共表表达式查询的装置。16.根据权利要求14所述的系统,还包括: 将翻译后的公共表表达式查询进一步翻译为存储过程查询的装置。17.根据权利要求13所述的系统,还包括: 将翻译后的用户自定义函数查询中的特定查询进一步翻译为存储过程查询的装置。18.根据权利要求12所述的系统,还包括: 响应于在所述翻译后的公共表表达式查询中存在重复的公共表表达式查询,合并所述重复的公共表表达式查询的装置。19.根据权利要求12所述的系统,还包括: 基于所述关系数据库,根据翻译后的查询,建立查询树的装置; 根据查询树的每个节点的估计代价,来重构所述查询树以使得整体的估计代价减少的 目-ο20.根据权利要求19所述的系统,其中,所述查询树是左深连接树,该左深连接树中的每个具有两个子节点的连接父节点表示两个关系数据集的连接操作,每个只有一个子节点的非连接父节点和该子节点表示一个关系数据集的选择或投影操作,该左深连接树的各节点根据后序遍历顺序标号,最左侧的子节点具有最小标号, 其中,根据查询树的每个节点的估计代价,来重构所述查询树以使得整体的估计代价减少的装置被配置为: 从具有最小标号的连接父节点开始,依次根据标号顺序处理每个连接父节点,其中,对一个连接父节点的处理包括: 估计与该连接父节点连接的两个子树的代价,及连接这两个子树得到该连接父节点的代价; 通过如下来判断左右子树是否可交换:估计交换左右子树后的连接父节点的代价;若交换左右子树后的代价更小,则交换其左右子树,以改写该连接父节点的连接顺序。21.根据权利要求19所述的系统,其中,所述每个节点的估计代价是基于所述关系数据库的统计而得到的每个数据集的数目。22.根据权利要求12所述的系统,其中,所述关系数据库支持的所述执行计划的操作包括下列中的一个或多个:图遍历操作以及在图遍历操作中的变换、过滤、分支操作,所述关系数据库不支持的所述执行计划的操作包括下列中的一个或多个:路径操作、循环操作、递归操作、增加、删除、改变图数据的操作。
【专利摘要】提供一种在关系数据库上支持命令式图形查询的方法和系统,该方法包括:将命令式图形查询解析为执行计划的操作;将所述关系数据库支持的执行计划的操作翻译为公共表表达式查询;在所述关系数据库上执行所述翻译后的公共表表达式查询。
【IPC分类】G06F17/30
【公开号】CN105224566
【申请号】CN201410294924
【发明人】孙文, 胡岗, 谢国彤, 梅婧, 沈炜嘉
【申请人】国际商业机器公司
【公开日】2016年1月6日
【申请日】2014年6月25日
【公告号】US20150379082
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1