用于查询数据库的系统和方法技术方案

技术编号:22447107 阅读:33 留言:0更新日期:2019-11-02 06:22
本申请提供了用于向用户提供数据库查询服务的系统和方法。该方法可以包括:获取查询数据库的查询请求,其中数据库包括至少两个数据表;基于服务请求确定至少两个数据表中的一个或以上目标数据表;基于至少两个数据表生成有向图,其中有向图包括一个或以上段,每个段连接两个数据表;确定一个或以上目标数据表中的参考数据表;对于一个或以上目标数据表中的每一个,遍历有向图以确定具有参考数据表和目标数据表之间的最短距离的目标路径;并且,基于具有最短路径的一个或以上目标路径来查询数据库。

System and method for querying database

【技术实现步骤摘要】
【国外来华专利技术】用于查询数据库的系统和方法相关申请的交叉引用本申请要求于2017年6月22日提交的中国专利申请No.201710482300.1的优先权,其全部内容以引用方式包含于此。
本专利技术涉及数据库查询技术的
,尤其涉及根据两个不同数据表之间的最短路径查询数据库的系统和方法。
技术介绍
数据库是按照数据结构来组织、存储和管理数据的仓库。目前,在数据库的组织与管理中,可以生成通用的数据表,用户选择想要查询的字段时,基于该数据库表可以查找到对应的数据。若用户想要查询的字段分布在多个数据表中,可以将数据表进行连接,基于连接的数据表为用户查找对应的数据。然而,随着数据表的增多,数据表的连接会耗费大量的时间和处理资源。因此,期望提供一种系统和方法,以在至少两个字段分布在大量不同数据表中时提高查询与至少两个字段相关的数据的效率。
技术实现思路
根据本申请的第一方面,提供了一种被配置为提供数据库查询服务的系统。该系统可以包括一个或以上包括一组指令的非暂时性存储介质;一个或以上与所述一个或以上非暂时性存储介质通信的处理器,其中,当执行所述指令时,所述一个或以上处理器可以用于:获取查询数据库的查询请求,其中,所述数据库包括:至少两个数据表;基于服务请求确定至少两个数据表中的一个或以上目标数据表;基于至少两个数据表生成有向图,其中有向图包括一个或以上段,每个段连接两个数据表;确定一个或以上目标数据表中的参考数据表;对于一个或以上目标数据表中的每一个,遍历有向图以确定具有参考数据表和目标数据表之间的最短距离的目标路径;并且,基于具有最短路径的一个或以上目标路径来查询数据库。在一些实施例中,为了基于至少两个数据表生成有向图,所述一个或以上处理器还可以用于:遍历数据库并确定至少两个数据表中的第一数据表和第二数据表;当第一数据表和第二数据表具有公共字段时,生成第一数据表和第二数据表之间的段。在一些实施例中,第一数据表和第二数据表之间的段可以具有从第一数据表到第二数据表的方向,或者从第二数据表到第一数据表的方向。在一些实施例中,一个或以上处理器还可以用于:确定第一数据表是否是目标数据表;响应于确定第一表是目标数据表,将第一权重分配给第一数据表和具有从第一数据表到第二数据表的方向的第二数据表之间的段。在一些实施例中,一个或以上处理器还可以用于:响应于确定第一数据表不是目标数据表,将第二权重分配给第一数据表和第二数据表之间的段。从第一个数据表到第二个数据表的方向。在一些实施例中,第二权重可以大于第一权重。在一些实施例中,可以在一个或以上目标数据表中随机确定参考数据表。在一些实施例中,具有最短路径的目标路径可以包括一个或以上数据表,并且基于具有最短路径的一个或以上目标路径来查询数据库,该一个或以上处理器还用于:生成初始化表集;遍历一个或以上目标路径;对于一个或以上目标路径中的每一个,确定目标路径中包括的数据表是否在初始表集内;响应于确定目标路径中包括的数据表不在初始表集内,将数据表添加到初始表集中;并连接初始表集中的数据表以生成连接表集;并根据连接表集查询数据库。在一些实施例中,可以基于查询请求的字段来确定一个或以上目标数据表。根据本申请的第二方面,提供了一种在计算设备上实现的用于查询数据库的方法。计算设备可以包括存储器和一个或以上处理器。该方法可以包括:由一个或以上处理器获得查询数据库的查询请求,其中数据库包括至少两个数据表;基于所述服务请求,由所述一个或以上处理器确定所述至少两个数据表中的一个或以上目标数据表;所述一个或以上处理器生成基于所述至少两个数据表的有向图,其中所述有向图包括一个或以上段,每个段连接两个数据表;所述一个或以上处理器确定所述一个或以上目标数据表中的参考数据表;对于一个或以上目标数据表中的每一个,由一个或以上处理器遍历有向图以确定具有参考数据表和目标数据表之间的最短距离的目标路径;并且,基于具有最短路径的一个或以上目标路径,由一个或以上处理器查询数据库。根据本申请的第三方面,提供了一种体现计算机程序产品的非暂时性计算机可读介质。该计算机程序产品可以包括被配置为使计算设备:获得查询数据库的查询请求的指令,其中该数据库包括至少两个数据表;基于服务请求确定至少两个数据表中的一个或以上目标数据表;基于至少两个数据表生成有向图,其中有向图包括一个或以上段,每个段连接两个数据表;确定一个或以上目标数据表中的参考数据表;对于一个或以上目标数据表中的每一个,遍历有向图以确定具有参考数据表和目标数据表之间的最短距离的目标路径;并且,基于具有最短路径的一个或以上目标路径来查询数据库。本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。附图描述本申请将通过示例性实施例进行进一步描述。当结合附图阅读时,在以下详细描述中使本申请的实施例的前述和其他方面更加明显。图1是根据本申请的一些实施例所示的用于查询数据库的示例性系统的结构图;图2是根据本申请的一些实施例所示的计算设备的示例性硬件和软件组件的示意图;图3是根据本申请的一些实施例所示的移动设备的示例性硬件和/或软件组件的结构图;图4是根据本申请的一些实施例所示的处理引擎的结构图;图5是根据本申请的一些实施例所示的用于查询数据库的示例性过程和/或方法的流程图;图6是根据本申请的一些实施例所示的用于确定有向图的示例性过程和/或方法的流程图;图7A是根据本申请的一些实施例所示的示例性有向图的示意图;图7B是根据本申请的一些实施例所示的示例性有向图的示意图;图8是根据本申请的一些实施例所示的用于基于最短路径连接数据表的示例性过程和/或方法的流程图。具体描述以下描述是为了使本领域技术人员能够实施和利用本申请,并且该描述是在特定的应用场景及其要求的环境下提供的。对于本领域的普通技术人员来讲,显然可以对所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请并不限于所描述的实施例,而应该被给予与权利要求一致的最广泛的范围。本申请所使用的术语仅用于描述特定实施例,并不限制本申请的范围。如本文使用的单数形式“一”、“一个”及“该”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本说明书中所示,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。本申请中的术语“数据表”或“表”可以指以结构化格式组织的数据元素的集合。数据库可以包括一个或以上数据表。在一些实施例中,数据表可包括一个或以上列和一个或以上行。术语“字段”或“列”可以指不同实体或记录或行的特定属性的一组数据值。术语“行”或“记录”可以指与同一主题相关的不同属性或字段的一组数据值。例如,下表1是根据本申请的一些实施例所示的示例性数据表。表1用户名订单价格(RMB)订单持续时间(分钟)用户15036用户23016用户34328如表1所示,本文档来自技高网...

【技术保护点】
1.一种被配置为向用户提供数据库查询服务的系统,包括:一个或以上包括一组指令的非暂时性存储介质;和一个或以上与所述一个或以上非暂时性存储介质通信的处理器,其中,当执行所述指令时,所述一个或以上处理器用于:获取查询数据库的查询请求,其中所述数据库包括至少两个数据表;基于所述服务请求确定所述至少两个数据表中的一个或以上目标数据表;基于至少两个数据表生成有向图,其中所述有向图包括一个或以上段,每个段连接两个数据表;确定所述一个或以上目标数据表中的参考数据表;对于所述一个或以上目标数据表中的每一个,遍历所述有向图以确定具有所述参考数据表和目标数据表之间的最短距离的目标路径;以及基于具有所述最短路径的一个或以上目标路径查询数据库。

【技术特征摘要】
【国外来华专利技术】2017.06.22 CN 20171048230011.一种被配置为向用户提供数据库查询服务的系统,包括:一个或以上包括一组指令的非暂时性存储介质;和一个或以上与所述一个或以上非暂时性存储介质通信的处理器,其中,当执行所述指令时,所述一个或以上处理器用于:获取查询数据库的查询请求,其中所述数据库包括至少两个数据表;基于所述服务请求确定所述至少两个数据表中的一个或以上目标数据表;基于至少两个数据表生成有向图,其中所述有向图包括一个或以上段,每个段连接两个数据表;确定所述一个或以上目标数据表中的参考数据表;对于所述一个或以上目标数据表中的每一个,遍历所述有向图以确定具有所述参考数据表和目标数据表之间的最短距离的目标路径;以及基于具有所述最短路径的一个或以上目标路径查询数据库。2.如权利要求1所述的系统,其中,为了基于所述至少两个数据表生成所述有向图,所述一个或以上处理器还用于:遍历所述数据库并确定至少两个数据表中的第一数据表和第二数据表;当所述第一数据表和第二数据表具有公共字段时,生成所述第一数据表和所述第二数据表之间的段。3.如权利要求2所述的系统,其中,所述第一数据表和所述第二数据表之间的段具有从所述第一数据表到所述第二数据表的方向,或从所述第二数据表到所述第一数据表的方向。4.如权利要求3所述的系统,其中,所述一个或以上处理器还用于:确定第一数据表是否是目标数据表;响应于确定所述第一数据表是所述目标数据表,将第一权重分配给所述第一数据表和所述第二数据表之间的段,所述第二数据表具有从所述第一数据表到所述第二数据表的方向。5.如权利要求4所述的系统,其中,所述一个或以上处理器还用于:响应于确定所述第一数据表不是所述目标数据表,将第二权重分配给所述第一数据表和所述第二数据表之间的所述段,所述第二数据表具有从所述第一数据表到所述第二数据表的所述方向。6.如权利要求5所述的系统,其中,所述第二权重大于所述第一权重。7.如权利要求1所述的系统,其中,在所述一个或以上目标数据表中随机确定所述参考数据表。8.如权利要求1-7中任一项所述的系统,其中,具有所述最短路径的目标路径包括一个或以上数据表,并且基于具有所述最短路径的一个或以上目标路径来查询所述数据库,所述一个或以上处理器还用于:生成初始表集;遍历所述一个或以上目标路径;对于所述一个或以上目标路径中的每一个,确定所述目标路径中包含的数据表是否在所述初始表集内;响应于确定所述目标路径中包括的所述数据表不在所述初始表集内,将所述数据表添加到所述初始表集中;并连接所述初始表集中的所述数据表以生成连接表集;以及基于所述连接表集查询所述数据库。9.如权利要求1-8中任一项所述系统,其中,基于所述查询请求的字段确定所述一个或以上目标数据表。10.一种在计算设备上实现的用于向用户提供数据库查询服务的方法,所述计算设备包括存储器和一个或以上处理器,所述方法包括:所述一个或以上处理器获取查询数据库的查询请求,所述数据库包括至少两个数据表;基于所述服务请求,由所述一个或以上处理器确定所述至少两个数据表中的一个或以上目标数据表;所述一个或以上处理器生成基于所述至少两个数据表的有向图,其中所述有向图包括一个或以上段,每个段连接两个数据表;所述一个或以上处理器确定所述一个或以上目标数据表中的...

【专利技术属性】
技术研发人员:李思旭万祥李佩杨帆
申请(专利权)人:北京嘀嘀无限科技发展有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1