基于图的查询制造技术

技术编号:17959827 阅读:15 留言:0更新日期:2018-05-16 05:26
为了从图数据库请求期望信息,系统针对图数据库执行查询。图数据库可以存储图,该图包括节点、节点之间的边和谓语以表示并且存储具有无索引相邻性的数据。而且,查询可以标识第一边,该第一边与指定图中的节点中的一个或多个节点的谓语相关联。响应于查询,系统接收包括图的子集的结果。特别地,图的子集可以包括在图的相关联的结构内表达的期望信息。

Graph based query

To request the expected information from the graph database, the system executes queries against the graph database. A graph database can store graphs, including nodes and nodes between nodes, and predicates to represent and store data with no index adjacency. Moreover, the query can identify the first side, which is associated with the predicate of one or more nodes in the node in the specified graph. In response to the query, the system receives the result of the subset containing the graph. In particular, the subset of a graph can include the expected information expressed in the associated structure of the graph.

【技术实现步骤摘要】
【国外来华专利技术】基于图的查询
所描述的实施例涉及用于执行数据库的查询的技术。更具体地,所描述的实施例涉及用于执行图数据库的查询的技术。
技术介绍
与应用相关联的数据通常被组织并且被存储在数据库中。例如,在关系数据库中,数据基于关系模型被组织为行和列的一个或多个表,其中行表示数据实体的类型的实例,并且列表示相关联的值。信息可以通过使用以结构化查询语言(SQL)表达的查询从关系数据库提取。原则上,通过链接或者关联不同表中的行,复杂的关系可以被表示在关系数据库中。实际上,提取这样的复杂的关系通常需要执行查询集并且然后确定结果的交集或者结合结果。一般而言,通过利用底层关系模型的知识,该组查询可以被标识并且然后以最佳的方式执行。然而,应用通常不知道关系数据库中的关系模型。相反,从应用视角,数据通常被视为存储器中具有相关联的指针的对象的分层。因此,许多应用以零碎的方式生成查询,这使得难以以最佳方式对关系数据库标识或者执行查询集。这可以降低当使用应用时的性能和用户体验。各种方法已经被使用以试图解决该问题,包括使用对象-关系映射器,使得应用有效地具有关于关系数据库中的关系模型的理解或者知识。然而,生成并且维持对象-关系映射器通常是困难的,特别是对于大的实时应用。备选地,取代关系数据库,可以使用键值存储(诸如NoSQL数据库)。键值存储可以包括对象或者记录以及具有记录的值的相关联的字段的集合。键值存储中的数据可以通过使用唯一地标识记录的键来存储或者检索。通过避免预定义关系模型的使用,键值存储可以允许应用将数据作为存储器中具有相关联的指针的对象来访问数据(即,以与应用的角度一致的方式)。然而,关系模型的缺少意味着可能难以优化键值存储。因此,从键值存储提取复杂的关系也可能是困难的(例如,它可以要求多个查询),这也会降低当使用应用时的性能和用户体验。附图说明图1是图示根据本公开的实施例的系统的框图。图2是图示根据本公开的实施例的图1的系统中的图数据库中的图的框图。图3是图示根据本公开的实施例的用于从图数据库请求期望信息的方法的流程图。图4是图示根据本公开的实施例的与图1的系统中的图数据库的交互的图。图5是图示根据本公开的实施例的用于从图数据库请求期望信息的方法的流程图。图6是图示根据本公开的实施例的串联查询的图。图7是图示根据本公开的实施例的用于从图数据库请求期望信息的方法的流程图。图8是图示根据本公开的实施例的查询结果的验证的图。图9是图示根据本公开的实施例的用于将第一查询转译为边查询的方法的流程图。图10是图示根据本公开的实施例的与图1的系统中的图数据库的交互的图。图11是图示根据本公开的实施例的将第一查询转译为边查询的图。图12是图示根据本公开的实施例的用于表示存储在图数据库中的图中的复合关系的方法的流程图。图13是图示根据本公开的实施例的与图1的系统中的图数据库的交互的图。图14是根据本公开的实施例的包括表示复合关系的中心节点的图的图。图15是图示根据本公开的实施例的执行图3、图5、图7、图9和图12的方法的计算机系统的框图。表1提供了根据本公开的实施例的边查询。表2提供了根据本公开的实施例的以JavaScript对象表示法(JSON)的数据。表3提供了根据本公开的实施例的边查询。表4提供了根据本公开的实施例的边查询的结果。表5提供了根据本公开的实施例的定义复合关系的命令集。表6提供了根据本公开的实施例的定义复合关系的命令集。注意,相同附图标记贯穿附图指代对应的部分。而且,相同部分的多个实例由通过破折号与实例编号分离的共同前缀指定。具体实施方式为了从图数据库请求期望信息,系统针对图数据库执行查询(其有时被称为“边查询”)。图数据库可以存储图,该图包括节点、节点之间的边和谓语以表示并且存储具有无索引相邻性的数据。而且,查询可以标识与指定图中的节点中的一个或多个的谓语相关联的第一边。响应于查询,系统接收包括图的子集的结果。特别地,图的子集通常必须包括在图的相关联的结构内表达的期望信息。而且,查询的结果可以被使用在串联或者顺序的查询集中。特别地,系统可以针对响应于原始查询接收到的图的子集执行第二查询。该第二查询可以标识与指定节点中的一个或多个的第二谓语相关联的第二边。然后,响应于第二查询,系统可以接收包括图的第二子集的第二结果。此外,系统可以验证响应于查询而返回的图的子集。特别地,系统可以验证图的子集包括一个或多个特定边(诸如与查询中的谓语对应的边)。更一般地,系统可以验证图的子集包括图的部分中的数据和/或相关联的结构。为了促进从图数据库请求期望信息,系统可以将初始查询转译为可以针对图数据库执行的查询。特别地,通过使用基元,系统可以将与除图数据库之外的一种类型的数据库(诸如关系数据库)相关联的初始查询转译为查询。注意,基元可以包括表达该类型的数据库中的关系模式或者模型的、基于图中的边的规则,以及与指定与该类型的数据库中的表对应的图中的节点、边和谓语之间的关系的复合键相关联的信息而且,为了促进数据的高效存储和提取,系统可以表示存储在图数据库中的图中的复合关系。特别地,系统(或者用户)可以基于与图中的节点中的两个或两个以上节点之间的边中的两个或两个以上边相关联的谓语中的两个或两个以上谓语来定义复合关系。然后,系统可以在图中生成中心节点,其与复合关系对应并且对图的用户隐藏,使得中心节点的标识符在图数据库的外部不可见。注意,中心节点的标识符可以通过使用两个或两个以上谓语在查询中指定,从而允许与复合关系相关联的数据被容易地标识、修改和/或提取。以这种方式,该图存储技术可以允许与复杂的关系相关联的信息从图数据库高效地提取。特别地,在图数据库上所执行的查询的结果可以在没有连接的情况下提供期望信息,而不是执行多个查询,将中间结果存储在数据存储中并且然后连接中间结果以获得期望信息。因此,图存储技术可以减少计算机系统针对相对于其他类型的数据库(诸如关系数据库或者键值存储)的应用从图数据库提取期望信息所需要的计算时间和存储器要求。而且,在不改变应用访问图数据库中的数据的方式(即,通过将数据视为存储器中具有相关联的指针的对象的分层)的情况下,图存储技术可以改进使用图数据库的应用的性能。而且,应用的经改进的性能还可以改进当使用应用时的用户体验。在下面的讨论中,个体或者用户可以是人(例如,社交网络的现有用户或者社交网络的新用户)。同样或者相反,图存储技术可以由任何类型的组织(诸如企业)使用,其应当被理解为包括营利公司、非营利公司、个体群组(或者组群)、独资企业、政府机构、合伙企业等。我们现在描述系统和其使用的实施例。图1呈现了图示执行图存储技术的系统100的框图。在该系统中,电子设备110的用户可以使用至少部分地通过使用在系统100中执行的一个或多个软件产品或应用而被提供的服务。如下面进一步描述的,应用可以由系统100中的引擎执行。而且,通过使用在电子设备110上驻留并且执行的软件应用的实例,服务可以至少部分地提供。在一些实施方式中,用户可以与网页交互,网页经由网络112由通信服务器114提供,并且网页由电子设备110上的网络浏览器绘制。例如,在电子设备110上执行的软件应用的至少部分可以是被嵌入在网页中并且在网络浏览器的虚拟环境中执行的应用工具。本文档来自技高网...
基于图的查询

【技术保护点】
一种用于操作图数据库的计算机系统实现的方法,所述方法包括:针对所述图数据库执行对于期望信息的查询,其中:所述图数据库存储一个图,所述图包括节点、所述节点之间的边和谓语,以表示并且存储具有无索引相邻性的数据;以及所述查询标识与第一谓语相关联的第一边,所述第一谓语指定所述图中的所述节点中的一个或多个节点;以及响应于所述查询来接收结果,其中所述结果包括所述图的子集。

【技术特征摘要】
【国外来华专利技术】2015.09.18 US 14/858,1781.一种用于操作图数据库的计算机系统实现的方法,所述方法包括:针对所述图数据库执行对于期望信息的查询,其中:所述图数据库存储一个图,所述图包括节点、所述节点之间的边和谓语,以表示并且存储具有无索引相邻性的数据;以及所述查询标识与第一谓语相关联的第一边,所述第一谓语指定所述图中的所述节点中的一个或多个节点;以及响应于所述查询来接收结果,其中所述结果包括所述图的子集。2.根据权利要求1所述的方法,其中:所述方法还包括基于所述期望信息来生成所述查询;以及所述查询包括主语、谓语和宾语。3.根据权利要求2所述的方法,其中所述主语和所述宾语表示由所述图表示的专业网络中的实体。4.根据权利要求1所述的方法,还包括:接收标识与第二谓语相关联的第二边的后续查询;以及针对所述图的所述子集执行所述后续查询;其中所述后续查询的结果是所述图的第二子集。5.根据权利要求1所述的方法,还包括:基于与所述图中的至少两个边相关联的至少两个谓语来定义复合关系;以及在所述图中生成与所述复合关系对应的中心节点;其中所述中心节点对所述图的用户隐藏。6.根据权利要求1所述的方法,还包括:接收与和所述图数据库不同的数据库的类型兼容的另一查询;以及将所述另一查询转换为所述查询。7.根据权利要求6所述的方法,其中所述数据库的类型包括以下之一:关系数据库和分层数据库。8.根据任一前述权利要求所述的方法,其中所述图的所述子集包括:在所述图的相关联的结构内表达的所述期望信息。9.根据权利要求1所述的方法,其中所述方法还包括:接收与JavaScript对象表示法兼容的另一查询;以及将所述另一查询转换为所述查询。10.根据权利要求1所述的方法,其中所述结果不包括分层约束和关系约束。11.一种装置,包括:一个或多个处理器;存储器;以及程序模块,其中所述程序模块被存储在所述存储器中,并且在所述装置的操作期间,所述程序模块由所述一个或多个处理器执行以操作图数据库,所述程序模块包括:用于针对所述图数据库执行对于期望信息的查询的指令,其中:所述图数据库存储一个图,所述图包括节点、所述节点之间的边和谓语,以表示并且存储具有无索引相邻性的数据;以及所述查询标识与第一谓语相关联的第一边,所述第一谓语指定所述图中的所述节点中的一个或多个节点;以及用于响应于所述查询来接收结果的指令,其中所述结果包括所述图的子集。12.根据权利要求11所述的装置,其中:所述程序模块还包括用于基于所述期望信息来生成所述查询的指令;以及所述查询包括主语、谓语和宾语。13.根据权利要求12所述的装置,其中所述主语和所述宾语表示由所述图表示的专业网络中的实体。14.根据权利要求11所述的装置,其中所述程序模块还包括用于以下的指令:接收标识与第二谓语相关联的第二边的后续查询;以及针对所述图的所述子集执行所述后续查询;其中所述后续查询的结果是所述图的第二子集。15.根据权利要求11所述的装置,其中所述程序模块还...

【专利技术属性】
技术研发人员:S·尚卡R·W·斯蒂芬森A·J·卡特M·SB·李S·M·梅耶
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1