分层图形数据结构制造技术

技术编号:25196861 阅读:37 留言:0更新日期:2020-08-07 21:22
可以使用顶点表和边线表存储分层图形数据结构。顶点表包括顶点标识符列和第一图形标识符列。边线表包括第二图形标识符列、节点标识符列和边线类型列。对分层图形数据结构的查询包括目标实体和图形级别,并且基于图形级别和存储在边线类型列中的数据执行对顶点表和边线表的迭代搜索。

【技术实现步骤摘要】
【国外来华专利技术】分层图形数据结构
以下公开内容涉及数据库存储和数据库架构的

技术介绍
计算系统和互联网的普遍使用导致不仅企业和其他组织而且个人消费者对计算机的使用急剧增加。如今,某些人通常使用多个计算设备,例如个人笔记本电脑、商务笔记本电脑、移动计算设备(例如,智能手机)、控制台游戏设备和/或平板计算设备。仅作为实例,对于某些个人来说,拥有多个电子商务网站、游戏和娱乐网站、社交媒体网站和个人理财网站的大量用户帐户也是很常见的。个人、企业和组织之间计算机使用的持续增长导致人们对存储与用户有关的数据的方式的需求比传统数据库所提供的方式更为有效。早期的数据库包括平面文件,其中各个应用程序管理平面文件中存储的数据。后来,更高级的关系数据库系统使用专用的数据库程序而不是单个应用程序来管理和访问数据。关系数据库系统通常采用关系数据模型,其中数据存储在一组表中,每个表都有各自的行。行表示数据项的实例,而列表示可以在数据项之间共享的属性(例如“名称”)。关系数据库系统固有地限制了如何存储数据。例如,数据项实例不能具有除表中指定为列的属性以外的其他属性。此外,一个表中代表真实值的属性值(例如,用户名字符串)通常不指向另一表中的相同值。相反,关系数据库通常使用自动生成的主键或唯一标识符,并且某些关系需要特殊的表来对关系进行建模。传统的关系数据库系统的结构可能导致应用程序使用大量表,并且随着表数的增加以及每个表中存储的数据量的增加,数据搜索需要花费指数级更长的时间才能完成,从而需要更多的资源或减少响应时间。使用图形数据建模技术可以有效地对某些域进行建模。在图形数据建模中,使用顶点和连接顶点的边线对数据域建模。在某些图形数据模型中,边线可以对应于它们连接的顶点之间的特定关系。社交网络和产品目录可能自然地适合于图形数据建模。例如,在社交网络中,可以将用户和雇主建模为顶点,并且边线可能对应于诸如“是……的朋友”或“为……工作”的关系。由于图形数据模型的结构与关系数据模型不同,因此,使用传统的关系数据库来存储建模为图形的数据可能会导致效率低下,例如不必要的大型数据库大小。这些低效率可能导致不必要的资源消耗、低效的搜索、缓慢的查询响应时间或增加的数据存储成本。附图说明图1示出了与所公开的实施例一致的分层图形数据结构的示例主层。图2示出了与所公开的实施例一致的图1的示例分层图形数据结构的示例第二层。图3示出了与所公开的实施例一致的图1的示例分层图形数据结构的示例第三层。图4示出了与所公开的实施例一致的用于存储分层图形数据结构的示例表和数据条目。图5示出了与所公开的实施例一致的用于使用分片存储分层图形数据结构的示例表和数据条目。图6示出了与所公开的实施例一致的用于存储和查询分层图形数据结构的示例计算机网络架构。图7示出了计算机架构图,显示了用于实现所公开的实施例的各方面的一种说明性计算机硬件架构。图8示出了计算系统图,显示了用于实现所公开实施例的各方面的数据中心的一种配置。图9示出了与所公开的实施例一致的用于响应使用分层图形数据结构对存储的数据的查询的流程图。具体实施方式本公开描述了分层图形数据结构、使用分层图形数据结构的数据存储以及分层图形数据结构的查询处理的实施例。对于具有分级、层级、分层或图形数据的数据域,所公开的实施例提供了对诸如关系数据模型之类的现有数据模型的技术改进。仅作为一些实例,这样的应用可以包括但不限于社交媒体网络、产品目录、员工或人力资源管理系统以及文档管理系统。可以使用图形对分级、层级、分层或图形数据域进行建模。可以将图定义为通过一组边线链接在一起的一组顶点。由于关系数据模型与图形数据模型本质上不同,因此使用关系数据库存储图可能效率很低。例如,在关系数据库中存储图形数据集可以包括使用一个或多个存储顶点属性的表,一个或多个存储关于图形的信息的表以及一个或多个链接表,该链接表将存储顶点属性的表的行关联到存储有关图的信息的表的行。随着图形数据集的大小增加,存储图形数据集的数据库的大小可能相对于图形数据集的大小呈指数增长,从而导致所需的存储量效率低下。此外,大小的增加也可能增加查询响应时间,或者可能需要其他计算资源来维持查询响应时间。为了解决以上确定的技术问题,所公开的实施例以分层图形数据结构的形式提供了一种技术解决方案,其利用了图形的固有分层结构来优化数据存储。该解决方案通过使数据库结构与数据域的图更加紧密地对齐,减少了存储图形数据集所需的资源数量。该解决方案还至少以两种方式缩短了查询响应时间。首先,由于存储的数据少于使用常规数据存储技术所需的数据,因此查询响应时间更快。其次,由于所公开的实施例的数据库结构,对数据集的搜索深度可以限于特定应用所需的内容。可以通过使用两个表(顶点表和边线表)存储分层图形数据结构来部分实现所公开实施例的技术优势。顶点表的行表示分层图结构中的顶点,其中边线表的行表示连接两个顶点的边线。顶点表和边线表都包括图形标识符列,该列用作顶点表的行和边线表的行之间的链接。在一些实施例中,顶点表和边线表存储分层图形数据结构的第一层或主层的顶点和边线。根据一些实施例,顶点表包括顶点标识符列和图形标识符列。顶点列的行表示分层图形数据结构的顶点(存储在顶点标识符列中)到该顶点关联图的标识符(存储在图标识符列中)的映射。随着分层图形数据结构中顶点数量的增加,可以使用分片来缩放顶点表。分片是一种数据库设计技术,其中数据库表的行分开保存,而不是分成几列(这是规范化和垂直分区在不同程度上的进行的)。每个分区构成分片的一部分,而分片又可以位于单独的数据库服务器或分布式计算系统中的物理位置上。在一些实施例中,可以基于顶点标识符对顶点表分片,这可以改善查询响应时间,如下面更详细地描述的。根据一些实施例,边线表包括图形标识符列,第一节点标识符列和第二节点标识符列以及边线类型列。边线表的每一行代表第一顶点(存储在第一节点标识符列中)和第二顶点(存储在第二节点标识符列中)之间的连接。存储在边线类型列中的数据值描述了连接第一顶点和第二顶点的边线的类型。如下面更详细说明的,边线类型可以传达两个顶点之间的边线是否在同一图形内(内边线),或者两个顶点之间的边线是否连接两个图形(外边线)。如同顶点表,随着边线表的规模扩展,可以对它进行分片以在不同服务器或物理位置之间分布数据存储。在一些实施例中,可以基于图标识符对边线表分片,这可以改善查询响应时间。所公开的实施例还通过提供查询服务来提供附加的技术优势,该查询服务可以为所提供的目标实体基于图形级别找到相关实体。例如,查询服务可以提供应用程序编程接口(API),该接口接受目标实体标识符和图形级别作为参数,将分层图形数据结构搜索到请求的图形级别,并返回在请求的图形级别找到的实体。在对相关实体的请求中提供的图形级别与分层图形数据结构的各层相关。图形级别可以指示例如分层图形数据结构的主要层上目标实体和相关实体之间的外边线的数量,也可以指示目标实体和本文档来自技高网...

【技术保护点】
1.一种系统,其包括:/n一个或多个处理器;/n计算机可读介质,其存储指令,所述指令在由所述一个或多个处理器执行时执行包括以下的操作:/n接收用于查找与目标实体相关的相关实体的请求,所述请求包括目标实体的实体标识符和图形级别;/n基于所述实体标识符设置目标标识符;/n基于所述图形级别执行一个或多个迭代以响应于所述请求而生成结果集,其中所述一个或多个迭代包括:/n访问顶点表,所述顶点表包括:/n顶点标识符列,以及/n第一图形标识符列;/n从所述顶点表中,基于对应于与所述目标标识符匹配的在所述顶点标识符列中的条目的在所述第一图形标识符列中的条目,确定所述目标标识符的图形标识符;/n访问边线表,所述边线表包括:/n第二图形标识符列,/n节点标识符列,以及/n边线类型列;/n基于对应于与所述图形标识符匹配的在所述第二图形标识符列中的条目的在所述节点标识符列中的条目,确定下一个标识符;/n基于以下确定是否执行所述一个或多个迭代的下一迭代:/n所述图形级别,和/n对应于与所述图形识别符匹配的在所述第二图形识别符列中的条目的在所述边线类型列中的条目;/n基于是否执行所述下一迭代的所述确定:/n将所述目标标识符设置为下一标识符并执行所述下一迭代,或者/n向所述结果集添加与所述下一标识符对应的实体信息;和/n提供所述结果集。/n...

【技术特征摘要】
【国外来华专利技术】1.一种系统,其包括:
一个或多个处理器;
计算机可读介质,其存储指令,所述指令在由所述一个或多个处理器执行时执行包括以下的操作:
接收用于查找与目标实体相关的相关实体的请求,所述请求包括目标实体的实体标识符和图形级别;
基于所述实体标识符设置目标标识符;
基于所述图形级别执行一个或多个迭代以响应于所述请求而生成结果集,其中所述一个或多个迭代包括:
访问顶点表,所述顶点表包括:
顶点标识符列,以及
第一图形标识符列;
从所述顶点表中,基于对应于与所述目标标识符匹配的在所述顶点标识符列中的条目的在所述第一图形标识符列中的条目,确定所述目标标识符的图形标识符;
访问边线表,所述边线表包括:
第二图形标识符列,
节点标识符列,以及
边线类型列;
基于对应于与所述图形标识符匹配的在所述第二图形标识符列中的条目的在所述节点标识符列中的条目,确定下一个标识符;
基于以下确定是否执行所述一个或多个迭代的下一迭代:
所述图形级别,和
对应于与所述图形识别符匹配的在所述第二图形识别符列中的条目的在所述边线类型列中的条目;
基于是否执行所述下一迭代的所述确定:
将所述目标标识符设置为下一标识符并执行所述下一迭代,或者
向所述结果集添加与所述下一标识符对应的实体信息;和
提供所述结果集。


2.根据权利要求1所述的系统,其中所述系统包括分布式系统,并且所述顶点表根据所述顶点标识符列被分片。


3.根据权利要求1所述的系统,其中所述系统包括分布式系统,并且所述边线表根据第二图形标识符列被分片。


4.根据权利要求1所述的系统,其中所述边线类型列中的数据值指示所述节点标识符列中的对应数据值是否链接到同一图中的顶点。


5.根据权利要求1所述的系统,其中所述边线类型列中的数据值指示所述节点标识符列中的对应数据值是否链接到同一图外的顶点。


6.根据权利要求1所述的系统,其中所述图形级别包括数值。


7.根据权利要求1所述的系统,其中所述图形级别包括字符串值。


8.根据权利要求1所述的系统,还包括查询服务,所述查询服务暴露用于接收所述请求的应用编程接口。


9.一种查找与目标实体有关的实体的方法,所述方法包括:
接收对结果集的请求,所述请求包括目标标识符和图形级别;
通过将所述目标标识符与顶点标识符列中的第一数据项匹配,从包括所述顶点标识符列和第一图形标识符列的顶点表中获取第一图形标识符列中的第一图形标识符;
在包括第二图形识别符列、节点识别符列和边线...

【专利技术属性】
技术研发人员:张新峰A·奈尔周健任文李健F·杨冯国文
申请(专利权)人:电子技术公司
类型:发明
国别省市:美国;US

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

1