数据处理方法及装置、存储介质、电子设备与流程

文档序号:19674176发布日期:2020-01-10 23:04阅读:189来源:国知局
数据处理方法及装置、存储介质、电子设备与流程

本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及数据处理方法、数据处理装置、存储介质和电子设备。



背景技术:

本部分旨在为权利要求中陈述的本发明的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。

随着互联网技术的快速发展,数据量越来越大,数据存储的结构也多种多样。例如,树型数据结构、链表型数据结构以及散列表数据结构等等。



技术实现要素:

但是,在一些技术中,由于数据结构本身的特性,在数据量变大导致数据结构深且复杂时,导致数据查询效率降低,无法实现对数据的快速查询。

因此,在现有技术中,如何实现简化数据存储方式,并提升数据的查询效率,仍然缺少有效的方法。

为此,非常需要一种改进的数据处理方法及装置、存储介质和电子设备,以实现对数据的高效存储和查询。

在本上下文中,本发明的实施方式期望提供一种数据处理方法及装置、存储介质和电子设备。

根据本公开的一个方面,提供一种数据处理方法,包括:

响应于用户的数据处理请求以获取源数据;

对所述源数据进行识别以提取多个对象,以及各对象的属性数据;其中,所述对象的属性数据包括本对象与至少一个其他对象的关联关系信息;

根据所述对象的关联关系信息对所述对象进行筛选,并根据筛选得到的第一对象之间的关联关系信息构建多个数据路径,其中,每个数据路径包含至少一个所述第一对象;以及

根据所述数据路径所包含的所述第一对象的关联关系信息对所述数据路径进行合并以存储所述源数据。

在本公开的一种示例性实施例中,所述响应于用户的数据处理请求以获取源数据,包括:

接收用户终端的数据处理请求;其中,所述数据数据处理请求包括源数据的地址信息;

根据所述地址信息获取所述源数据。

在本公开的一种示例性实施例中,所述对象的关联关系信息包括:本对象与关联对象之间的等级信息。

在本公开的一种示例性实施例中,所述根据所述对象的关联关系信息对所述对象进行筛选,并根据筛选得到的第一对象之间的关联关系信息构建多个数据路径,包括:

遍历所述对象以获取各所述对象的关联关系信息;

根据各所述对象的关联关系信息对具有关联关系的对象进行筛选以获取多个第一对象;

以所述第一对象作为数据路径的节点,并根据所述第一对象之间的关联关系信息构建多个数据路径。

在本公开的一种示例性实施例中,所述根据所述数据路径所包含的所述第一对象的关联关系信息对所述数据路径进行合并以存储所述源数据,包括:

根据所述数据路径所包含的所述第一对象的关联关系信息对所述路径进行合并处理;以及

根据各所述第一对象在所述合并后的数据路径中的位置为所述第一对象配置对应的节点特征数据;其中,所述节点特征数据包括:左值、右值、等级数据以及标识数据。

在本公开的一种示例性实施例中,根据各所述第一对象在所述合并后的数据路径中的位置为所述第一对象配置对应的节点特征数据,包括:

为所述合并后的数据路径的根节点配置左值和等级数据;以及

以所述根节点为起点,查询下一级的第一子节点,并在存在所述第一子节点时,为所述第一子节点配置左值和等级数据;

查询所述第一子节点下一级的第二子节点,并在存在所述第二子节点时,为所述第二子节点配置左值和等级数据;或者

在不存在所述下一级的第二子节点时,为所述第一子节点配置右值;以及

查询所述第一子节点的兄弟节点,并在存在所述兄弟节点时,依次为各所述兄弟节点配置左值、右值和等级数据;或者

在所述第一子节点不存在所述兄弟节点时,为所述第一子节点对应的父节点配置右值,直至回到所述根节点。

在本公开的一种示例性实施例中,所述方法包括:

响应于一节点添加请求,获取添加节点的添加位置以及父节点信息;

获取所述添加节点的父节点的右值x,并配置所述添加节点的左值为x,以及配置所述添加节点的右值为x+m;以及

将除所述添加节点外,数值大于以及等于x的各所述节点的左值、右值分别增加n,以更新所述节点特征数据;其中,x、m、n均为正整数,且n>m。

在本公开的一种示例性实施例中,所述方法包括:

响应于一节点删除请求,获取删除节点的右值y;

将数值大于y的各所述节点的左值和右值分别减去k,以更新所述节点特征数据,且更新后的各所述节点的左值、右值均大于或等于所述删除节点的左值;其中,y、k均为正整数。

在本公开的一种示例性实施例中,所述等级数据包括表征等级信息和详细等级信息;

所述方法还包括:

根据所述第一对象在所述合并后的数据路径中的位置为各节点配置第一等级信息;以及

根据所述第一对象的关联关系信息为所述第一对象对应的节点配置第二等级信息。

根据本公开的一个方面,提供一种数据处理装置,包括:

请求响应模块,用于响应于用户的数据处理请求以获取源数据;

对象识别模块,用于对所述源数据进行识别以提取多个对象,以及各对象的属性数据;所述对象的属性数据包括本对象与至少一个其他对象的关联关系信息;

数据路径建立模块,用于根据所述对象的关联关系信息对所述对象进行筛选,并根据筛选得到的第一对象之间的关联关系信息构建多个数据路径,其中,每个数据路径包含至少一个所述第一对象;以及

结构数据建立模块,用于根据所述数据路径所包含的所述第一对象的关联关系信息对所述数据路径进行合并以存储所述源数据。

在本公开的一种示例性实施例中,所述请求响应模块,包括:

请求接收单元,用于接收用户终端的数据处理请求;其中,所述数据数据处理请求包括源数据的地址信息;

源数据提取单元,用于根据所述地址信息获取所述源数据。

在本公开的一种示例性实施例中,所述对象的关联关系信息包括:本对象与关联对象之间的等级信息。

在本公开的一种示例性实施例中,所述数据路径建立模块,包括:

关联关系信息提取单元,用于遍历所述对象以获取各所述对象的关联关系信息;

对象筛选单元,用于根据各所述对象的关联关系信息对具有关联关系的对象进行筛选以获取多个第一对象;

数据路径构建单元,用于以所述第一对象作为数据路径的节点,并根据所述第一对象之间的关联关系信息构建多个数据路径。

在本公开的一种示例性实施例中,所述结构数据建立模块,包括:

路径合并单元,用于根据所述数据路径所包含的所述第一对象的关联关系信息对所述路径进行合并处理;以及

特征标记单元,用于根据各所述第一对象在所述合并后的数据路径中的位置为所述第一对象配置对应的节点特征数据;其中,所述节点特征数据包括:左值、右值、等级数据以及标识数据。

在本公开的一种示例性实施例中,所述特征标记单元,包括:

根节点配置单元,用于为所述合并后的数据路径的根节点配置左值和等级数据;以及

子节点查询单元,用于以所述根节点为起点,查询下一级的第一子节点,并在存在所述第一子节点时,为所述第一子节点配置左值和等级数据;以及查询所述第一子节点下一级的第二子节点,并在存在所述第二子节点时,为所述第二子节点配置左值和等级数据;

兄弟节点查询单元,用于在不存在所述下一级的第二子节点时,为所述第一子节点配置右值;以及查询所述第一子节点的兄弟节点,并在存在所述兄弟节点时,依次为各所述兄弟节点配置左值、右值和等级数据;

父节点查询单元,用于在所述第一子节点不存在所述兄弟节点时,为所述第一子节点对应的父节点配置右值,直至回到所述根节点。

在本公开的一种示例性实施例中,所述装置还包括:

添加请求响应模块,用于响应于一节点添加请求,获取添加节点的添加位置以及父节点信息;

第一赋值模块,用于获取所述添加节点的父节点的右值x,并配置所述添加节点的左值为x,以及配置所述添加节点的右值为x+m;

第二赋值模块,用于将除所述添加节点外,数值大于以及等于x的各所述节点的左值、右值分别增加n,以更新所述节点特征数据;其中,x、m、n均为正整数,且n>m。

在本公开的一种示例性实施例中,所述装置还包括:

删除请求响应模块,用于响应于一节点删除请求,获取删除节点的右值y;

第三赋值模块,用于将数值大于y的各所述节点的左值和右值分别减k,以更新所述节点特征数据,且更新后的各所述节点的左值、右值均大于或等于所述删除节点的左值;其中,y、k均为正整数。

在本公开的一种示例性实施例中,所述等级数据包括表征等级信息和详细等级信息;所述特征标记单元包括:

第一等级标记单元,用于根据所述第一对象在所述合并后的数据路径中的位置为各节点配置第一等级信息;以及

第二等级标记单元,用于根据所述第一对象的关联关系信息为所述第一对象对应的节点配置第二等级信息。

根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中所述的数据处理方法。

根据本公开的一个方面,提供一种电子设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述实施例所述的数据处理方法。

根据本发明实施方式的方法,在对源数据提取对象后,利用各对象的关联关系信息对全部的对象进行筛选,得到具有关联关系的第一对象,再根据第一对象之间的关联关系来构建数据路径,再根据各数据路径中各对象之间的关联关系将各数据路径进行合并,进而实现对源数据的高效存储。并且,由于存储的数据结构中各对象之间的关系清晰,便于对数据进行快速的查询。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的数据处理方法的流程图;

图2示意性地示出了根据本发明实施方式的一树型结构的数据结构示意图;

图3示意性地示出了根据本发明实施方式的树型结构数据对应的关系型数据示意图;

图4示意性地示出了根据本发明实施方式的树型结构数据增加节点的数据结构变化示意图;

图5示意性地示出了根据本发明实施方式的树型结构数据删除节点的数据结构变化示意图;

图6示意性地示出了根据本发明实施方式的数据处理装置的方框图;

图7示出了根据本发明实施方式的存储介质的示意图;以及

图8示意性示出了根据发明实施方式的电子设备的方框图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提供一种数据处理方法、数据处理装置、存储介质和电子设备。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐述本发明的原理和精神。

发明概述

本发明人发现,现有技术中,树形结构存储在关系型数据库里,一般通过每一行存储当前节点及其当前节点的父节点实现。比如a的子节点b,b的子节点c,c的子节点d,则转化成关系型存储的时候,则为:

(1)ab;

(2)bc;

(3)cd。

如果要查询节点b的所有子节点,那么就要先查询节点b的子节点c,然后再查询节点c的子节点d,最后聚合。当数据量达到一定的量级,树形结构变得深且复杂,则容易导致数据查询效率降低,数据查询耗时变长。

鉴于上述内容,本发明的基本思想在于:根据本发明实施方式的数据处理方法和数据处理装置,通过对源数据提取对象后,利用各对象的关联关系信息对全部的对象进行筛选,得到具有关联关系的第一对象,再根据第一对象之间的关联关系来构建多条数据路径;再根据各数据路径中各对象之间的关联关系将各数据路径进行合并,进而实现对源数据的高效存储。并且,由于存储的数据结构中各对象之间的关系清晰,便于对数据进行快速的查询。。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

示例性方法

下面结合图1来描述根据本发明示例性实施方式的数据处理方法。

参考图1,所述数据处理方法可以包括以下步骤:

s1、响应于用户的数据处理请求以获取源数据;

s2、对所述源数据进行识别以提取多个对象,以及各对象的属性数据;其中,所述对象的属性数据包括本对象与至少一个其他对象的关联关系信息;

s3、根据所述对象的关联关系信息对所述对象进行筛选,并根据筛选得到的第一对象之间的关联关系信息构建多个数据路径,其中,每个数据路径包含至少一个所述第一对象;以及

s4、根据所述数据路径所包含的所述第一对象的关联关系信息对所述数据路径进行合并以存储所述源数据。

在本发明实施方式的数据处理方法中,通过利用各对象的关联关系信息对全部的对象进行筛选,得到具有关联关系的第一对象,再根据第一对象之间的关联关系来构建数据路径,再根据各数据路径中各对象之间的关联关系将各数据路径进行合并,进而实现对源数据的高效存储。并且,由于存储的数据结构中各对象之间的关系清晰,便于对数据进行快速的查询。

在步骤s1中,响应于用户的数据处理请求以获取源数据。

在本公开的示例性实施方式中,上述的数据处理方法可以在服务器端执行。用户可以在终端设备向服务器端提交数据处理请求。具体来说,可以包括以下步骤:

步骤s11,接收用户终端的数据处理请求;其中,所述数据数据处理请求包括源数据的地址信息;

步骤s12,根据所述地址信息获取所述源数据。

举例来说,上述的用户终端可以是平板电脑、手机或者电脑等智能终端。用户通过终端设备向服务器端发送一数据处理请求。服务器端在接收到该数据处理请求后,可以对其进行解析以获取源数据的地址信息,并根据该地址信息提取源数据。例如,源数据可以保存在云存储空间的指定地址,或者是用户终端存储空间的指定地址。

或者,在本公开的一些示例性实施例中,上述的数据处理方法也可以在用户终端本地执行。举例来说,可以在用户终端提供一交互界面,用户通过该交互界面提交数据处理请求,用户终端便可以根据该请求向目标地址提取源数据。

在步骤s2中,对所述源数据进行识别以提取多个对象,以及各对象的属性数据;其中,所述对象的属性数据包括本对象与至少一个其他对象的关联关系信息

在本公开的示例性实施方式中,源数据可以是文本格式的原始数据,例如以文本文档格式保存的源数据;或者是结构化的原始数据,例如以表格格式保存的源数据。在获取源数据后,可以利用自然语言处理模型对源数据中包含的对象,以及各对象的属性数据进行识别和提取。其中,上述的自然语言处理模型采用现有的算法或模型即可实现。例如,可以采用例如基于神经网络的自然语言处理模型,或者基于分类器的自然语言处理模型等等。其处理过程可以包括例如:去噪、标准化、归一化,以及将文本转化为特征向量、句法分析等处理过程。本公开对自然语言处理方法的具体选择不做特殊限定。

此外,具体来说,上述的对象的属性数据可以包括对象本身与其他对象之间的关联关系,例如,与其他对象的直接或间接的上级关系、下级关系、归属关系或者兄弟关系等等。举例来说,如图2所示,其中关羽和诸葛亮均归属刘备;周仓的下级包括士兵;等等。

在步骤s3中,根据所述对象的关联关系信息对所述对象进行筛选,并根据筛选得到的第一对象之间的关联关系信息构建多个数据路径,其中,每个数据路径包含至少一个所述第一对象。

在本公开的示例性实施方式中,可以根据各对象的关联关系信息对各对象进行筛选和分组,并根据分组结果来构建对应的数据路径。具体来说,可以包括以下步骤:

步骤s31,遍历所述对象以获取各所述对象的关联关系信息;

步骤s32,根据各所述对象的关联关系信息对具有关联关系的对象进行筛选以获取多个第一对象;

步骤s33,以所述第一对象作为数据路径的节点,并根据所述第一对象之间的关联关系信息构建多个数据路径。

举例来说,可以提取各对象的关联关系信息,并根据各对象的关联关系中包含的上下级关系信息以及归属信息对直接相互关联的对象进行筛选,生成对应的对象集合。例如,可以随机选取一对象作为起点,筛选相关联的多个第一对象,生成对应的集合。

例如,对于公司人事组成的源数据中,对象的属性数据可以包括所属部门、职位、岗位等信息。便可以根据所述部门筛选至少一个第一对象,并生成对应的集合。

对于各集合,可以根据其中的各第一对象相对其他第一对象之间的关联关系建立数据路径。例如,部门经理的子节点包括多个组长,组长的子节点包括组员等等。或者,例如图2所示的结构图中,在第一数据路径中,关平为关羽的子节点,周仓和关平互为兄弟节点,周仓的子节点为小兵。在第二数据路径中,刘备的子节点为诸葛亮。诸葛亮的子节点包括马谡和姜维。

并且,对于对象来说,一个对象可以只存在于一个对象集合中。例如,上述的节点刘备,只存在于第二数据路径对应的节点集合中,而不能被包含在第一数据路径对应的节点集合中。

或者,在本公开的一些示例性实施例中,同一个对象也可以包含在多个节点集合中。例如上述的节点刘备,被包含在第二数据路径对应的节点集合中。同时,由于节点刘备与节点关羽也存在上下级关系,因此节点刘备也可以被包含在第一数据路径对应的节点集合中。

在本公开的一些示例性实施例中,在构建数据路径时,还可以随机选取一目标对象;并以该目标对象为起点,筛选与该目标对象具有直接关联关系的其他对象,例如根据关联关系信息筛选目标对象的上一级对象、下一级对象以及同级的兄弟对象。然后根据筛选的一个或多个对象与目标对象构建初始数据路径,然后对初始数据路径中的当前的第一级节点和末级节点执行上述的筛选操作,筛选上一级对象、下一级对象以及同级的兄弟对象,再将筛选的对象继续添加至数据路径中,直至某一级的节点不存在下一级的对象或上一级对象,便完成该数据路径的构建。循环执行上述的操作直至将所述对象均加入数据路径中,构建至少一条数据路径。

或者,在筛选对象时,也可以仅对上一级对象和下一级的对象进行筛选来构建数据路径。在构建完成后,再对具有相同等级关联信息的兄弟对象进行筛选并添加至对应的数据路径中,以获取完整的数据路径。

在步骤s4中,根据所述数据路径所包含的所述第一对象的关联关系信息对所述数据路径进行合并以存储所述源数据。

在本公开的示例性实施方式中,在构建多个数据路径后,便可以根据数据路径所包含的节点对应的第一对象的属性信息对数据路径进行合并。具体来说,可以包括:

步骤s41,根据所述数据路径所包含的所述第一对象的关联关系信息对所述路径进行合并处理;以及

步骤s42,根据各所述第一对象在所述合并后的数据路径中的位置为所述第一对象配置对应的节点特征数据;其中,所述节点特征数据包括:左值、右值、等级数据以及标识数据。

举例来说,对于上述实施例中的第一数据路径和第二数据路径,其中,第一数据路径中的节点关羽与第二数据路径中的节点刘备存在上下级关系,基于该关联关系,可以将第一数据路径与第二数据路径进行合并,从而获取完整的树型结构数据,实现对源数据中的数据对象进行存储。

或者,在本公开的一些示例性实施例中,若节点刘备同时存在于第一数据路径和第二数据路径中,便可以利用两数据路径中的相同节点进行合并。

例如,当存在多个待合并的数据路径时,可以查询各数据路径中的相同节点,然后将包含相同节点的数据路径依次进行合并。对于未包含相同节点的数据路径,可以查询该数据路径中各节点与其他数据路径中各节点之间的关联关系,再根据该关联关系进行合并。例如,根据兄弟节点的关联关系对两数据路径进行合并。

在本公开的示例性实施方式中,在完成数据路径的合并操作后,还可以对合并后的数据路径中的各节点配置对应的节点特征数据。具体来说,可以包括以下步骤:

步骤s421,为所述合并后的数据路径的根节点配置左值和等级数据;以及

步骤s422,以所述根节点为起点,查询下一级的第一子节点,并在存在所述第一子节点时,为所述第一子节点配置左值和等级数据;

步骤s423,查询所述第一子节点下一级的第二子节点,并在存在所述第二子节点时,为所述第二子节点配置左值和等级数据;或者

步骤s424,在不存在所述下一级的第二子节点时,为所述第一子节点配置右值;以及

步骤s425,查询所述第一子节点的兄弟节点,并在存在所述兄弟节点时,依次为各所述兄弟节点配置左值、右值和等级数据;或者

步骤s426,在所述第一子节点不存在所述兄弟节点时,为所述第一子节点对应的父节点配置右值,直至回到所述根节点,其中,为各节点配置对应的节点特征数据时,按照操作顺序,以连续的数据或者预设间隔的数据配置所述节点特征数据。

举例来说,为各节点赋值的节点特征数据包括左值、右值和等级,可以按照赋值的顺序操作顺序,以连续的数据配置各节点的左值和右值。

具体的,可以包括:

ss1)从根节点开始赋值,节点a:a.左值=1,a.level=1。

ss2)查询节点a是否有子级节点。

ss2.1)如果节点a有子级节点b1,...,bn;则由树型结构中最左边的子级节点b1开始赋值:b1.左值=a.左值+1=2,b1.level=a.level+1=2。

ss2.1.1)查询节点b1是否有子级节点,如果有子级节点c1,则c1.左值=b1.左值+1=3,c1.level=b1.level+1=3。

以此类推,沿当前的指向末级节点的方向查看节点c1是否有子节点,按照相同规则赋值,持续查询下一级的子级节点,并为各子级节点赋左值和等级值,直到某一级的节点没有子级节点,则执行ss2.1.2。

ss2.1.2)如果节点b1没有子级节点,则为节点b1赋右值:b1.右值=b1.左值+1=3。

ss2.1.2.1)查询与节点b1相邻的兄弟节点,其中,兄弟节点是指具有相同父级节点的多个相邻的节点。

如果节点b1存在兄弟节点b2,则为节点b2赋左值、等级数值:b2.左值=b1.右值+1=4,b2.level=b1.level=2。然后为节点b2执行ss2,即查看节点b2是否存在子级节点,以此类推,执行上述的步骤。

sss.2.1.2.2)如果查询节点b1不存在兄弟节点,则查询节点b1的父级节点。

若节点b1存在父级节点,则为节点b1的父级节点a的右值赋值:a.右值=b1.右值+1=4。

然后为节点a执行步骤ss2.1.2.1),即查询节点a是否存在兄弟节点,直到回到根节点赋值结束。

ss2.2)如果节点a没有子节点,则为节点a赋右值:a.右值=a.左值+1=2。

然后为节点a执行步骤ss2.1.2.1,即查看节点a是否有兄弟节点,直到回到根节点赋值结束。

此外,在赋值过程中,还可以根据各节点的名称、或属性配置对应的特征标识数据,作为该节点的唯一标识。

在本公开的其他示例性实施方式中,在为各节点赋值的过程中,还可以根据各节点的赋值顺序,为各节点配置一个带有赋值顺序信息的顺序标记。例如,以根节点为起点,顺序标记为1,后续各节点根据赋值顺序依次为2、3、4……。便于数据查询。

在本公开的一些示例性实施例中,在为节点配置等级数据时,还可以各节点的属性配置更详细的等级信息。具体来说,可以根据所述第一对象在所述合并后的数据路径中的位置为各节点配置第一等级信息;以及

根据所述第一对象的关联关系信息为所述第一对象对应的节点配置第二等级信息。

举例而言,参考图2所示的数据结构,在数据结构中节点关羽和节点诸葛亮的第一等级信息均为2级。根据节点关羽为将军的属性信息,以及节点诸葛亮为丞相的属性信息,可以配置第二等级信息:节点诸葛亮的等级信息为2.1,节点关羽的等级信息为2.2。

或者,在其他示例性实施方式中,也可以根据战斗力排名、按年龄排名等规则进行配置第二等级信息。例如,在一数据结构中,经理节点的第一等级信息为2级,经理包含金牌经理、银牌经理和普通经理,那么则对应的第二等级信息可以包括:金牌经理的第二等级信息为2.1,银牌经理的第二等级信息为2.2、普通经理的第二等级信息为2.3。等等

在本公开的示例性实施方式中,在赋值完成后,依次将各节点属性存入数据库,包括节点id、左值、右值以及等级信息。在关系型数据库中,针对每个节点只需要将其对应的一行数据插入数据库即可,空间占用量少。由于一个节点在数据库中只存在一条数据,使得数据存储可以不受树型结构的深度限制,树型结构可以无限大。

若接收到用户的数据查询请求,要求查询目标节点b的所有子节点,则只需要查询:节点的左值大于目标节点b的左值,且节点右值小于目标节点b的右值的节点即可。或者,在查询某一个节点时,可以根据其左值、右值或者顺序标记等进行查询。

若接收到用户的数据查询请求,要求查询目标节点b的所有上级节点,则只需要查询:节点左值小于目标节点b的左值,且节点右值大于目标节点b的右值的节点即可。

此外,上述的查询还可以根据等级信息来判断下级或者上级的等级关系。例如,若查询结果集中某节点a的等级比节点b的等级数值大1,那么节点a则是节点b的直接上级;若等级数值大2,则节点a是节点b的直接上级的直接上级。依次类推。

此外,在本公开的一些示例性实施例中,在构建完整的树型结构后,还可以对树型结构增加新的节点。具体来说,可以包括以下步骤:

步骤s511,响应于一节点添加请求,获取添加节点的添加位置以及父节点信息;

步骤s512,获取所述添加节点的父节点的右值x,并配置所述添加节点的左值为x,以及配置所述添加节点的右值为x+m;以及

步骤s513,将除所述添加节点外,数值大于以及等于x的各所述节点的左值、右值分别增加n,以更新所述节点特征数据;其中,x、m、n均为正整数,且n>m。

具体的,在新增节点时,可以先对新增节点在树型结构中的位置进行判断,若在树型结构中新增节点后,该新增节点不存在子级节点,便可以依据其父节点的右值进行赋值。例如,如果在某个节点a下新增节点b,则按照闭环原则,在这个闭环组成的链路中,新增了一个节点,这个节点也同时拥有左值和右值,等同于在这个闭环中增加了两个占位格,那么在这个闭环结构中,位于节点b之后的占位都要向后退2格,即所有节点b之后的节点的左值和右值都要加2。此时,m=1,n=2。

举例来说,参考图4所示的数据结构,在节点关羽下新增子级节点马良,在新增节点后,左值或者右值大于新增节点对应父级节点的右值,即如果在节点关羽(右值=9)下新增节点马良,那么首先将左值大于9的节点的左值+2,然后把右值大于9的节点的右值+2,最后插入新节点马良。

如图4所示,插入的节点马良左值=关羽.右值=9;节点马良右值=关羽.右值+1=10,等级=关羽.level+1=3。同时,节点关羽、节点刘备的右值,以及节点马谡、节点姜维、节点诸葛亮的左值和右值均+2。

或者,在本公开的一些示例性实施例中,在增加节点时,还可以根据新增节点在树型结构中的具体添加位置,利用兄弟节点的右值对新增节点进行赋值以及更新其他节点的左值和右值。

举例来说,如图4所示,新增节点马良时,其在树型结构中的添加位置在节点关平的右侧,新增节点马良与节点关平互为兄弟节点,则可以获取兄弟节点关平的右值8,并将8+1配置为新增节点马良的左值,将8+2配置为新增节点马良的右值;以及将数值大于8的各所述节点的左值和右值分别增加2,以更新所述节点特征数据。

或者,若新增节点马良的位置在节点周仓与节点关平之间,则可以利用节点周仓的右值为新增节点马良赋值,以及更新其他节点左值和右值。

或者,在本公开的一些示例性实施例中,在新增节点时,若在树型结构中新增节点后,该新增节点存在对应的子级节点,即新增节点是插入现有的一节点和该节点对应的子级节点之间时,便可以根据该子级节点的左值为新增节点的左值赋值。具体的,在m=1,n=2时,可以将该子级节点的左值配置为新增节点的左值,将新增节点的左值+1配置为该子级节点的左值,再按照赋值顺序依次+1,来更新各节点的左值和右值,直至赋值到新增节点的右值;对于新增节点右值之后的各节点的左值和右值,依次+2。或者,也可以读取新增节点的父级节点的左值,然后将该父级节点的左值+1配置为新增节点的左值,然后根据树型结构的赋值顺序依次更新各节点的左值和右值。此外,还可以对新增节点以下各级节点的等级数值+1,以更新等级数值。

举例来说,若在节点周仓和节点小兵之间增加新的一级节点裴元绍,由于新增节点裴元绍的位置位于原始的节点周仓和对应的原子节点小兵之间,即新增节点裴元绍具有子级节点,则读取新增节点裴元绍的父级节点的左值3,为新增节点裴元绍配置左值为3+1;或者读取新增节点裴元绍的子级节点的左值4,将4配置为新增节点裴元绍的左值。并更新节点小兵的左值为4+1,以及右值为5+1。在为新增节点裴元绍的右值赋值为7之后,对于后续赋值顺序的各节点的左值和右值,均+2处理。按照上述实施例中的赋值方法,更新节点周仓的右值为6+2,节点关平的左值7+2、右值8+2,等等。依次更新其他节点的左值以及右值。

在本公开的一些示例性实施例中,还可以删除节点。具体来说,可以包括:

步骤s521,响应于一节点删除请求,获取删除节点的右值y;

步骤s32,将数值大于y的各所述节点的左值和右值分别减去k,以更新所述节点特征数据,且更新后的各所述节点的左值、右值均大于或等于所述删除节点的左值;其中,y、k均为正整数。

举例来说,参考图5所示,在删除一节点姜维后,获取节点姜维的右值y=14。则对大于14的值:节点诸葛亮的右值和节点刘备的右值均减k,n为姜维的右值减去左值并加一的结果;此时k=2。

或者,对于图5所示的结构中,若将节点关平删除,则对于大于节点关平右值8的节点关羽右值、诸葛亮的左值和右值、马谡的左值和右值以及节点刘备的右值均减2。

或者,对于图5所示的结构中,若将根节点刘备删除,则根据原始的赋值顺序,依次为各节点的左值和右值减1,同时为各节点的等级数值减1。

或者,在本公开的示例性实施方式中,若根节点删除,也可以保持各节点的节点特征数据保持不变,从而可以在关系型数据库中只删除根节点对应的一条数据即可。

在本公开的示例性实施方式中,在构建树型结构并为各节点进行初始赋值时,可以如上述实施例中所示,按顺序依次赋值。或者,也可以按照预设的数据间隔进行赋值。

举例来说,可以进行不连续的赋值,赋值时预留空段。举例来说,赋值方法可以是:

同一等级中,兄弟节点赋值时预留数据段。

例如,上图4示例中节点关平左值=7,右值=8;则节点马良左值=8+n,右值=(8+n)+1。从而避免增加子节点时,树结构中新增子节点后面的子节点赋值都要+2。

或者,对于不同等级,父级节点向下为对应的子级节点赋值时,预留数据段。例如,节点关羽的左值=2,则节点周仓左值=2+m。从而可以考虑增加子节点、减少子节点的情形,避免修改一个节点时,后面的其他节点也要修改。

或者,对于兄弟节点之间赋值预留数据段n,同一等级最后一个节点预留数据段m,m>n。例如,关羽和诸葛亮之间预留2,诸葛亮是等级为2中的最后一个,他后面预留5。这样当关羽和诸葛亮之间增加子节点满了之后,更多的子节点可以放在诸葛亮后面。例如,当前节点诸葛亮右值为15,预留6,则根节点刘备的右值为21;当增加节点赵云时,可以将节点赵云置于第二等级最右侧,即赵云的左值为16,右值为17,在增加后节点赵云后,仍能增加三个节点而不需修改节点刘备的数值。仅在增加节点后,节点的右值大于其父节点的右值时才需要修改父节点的右值。

或者是,将预留的数据段与节点所在等级相关联。例如,对于等级为2的节点,兄弟节点之间预留数据段为3;而等级为3的兄弟节点之间预留数据段为5。以此类推。从而可以便于在低等级节点变化多,高等级节点数据变化小的情形时,在新增节点后避免修改大量的节点。

综上所述,由于在树型结构中根据节点为树型结构中的位置配置节点特征数据,利用左值、右值构建u形闭环的方式将数据存储在关系型数据库中,从而可以利用节点的左值、右值实现高效的数据集查询。

示例性装置

在介绍了本发明示例性实施方式的数据处理方法之后,接下来,参考图6对本发明示例性实施方式的数据处理装置进行描述。

参考图6所示,本发明示例性实施方式的数据处理装置600可以包括:请求响应模块601、对象识别模块602、数据路径建立模块603以及结构数据建立模块604。其中:

所述请求响应模块601可以用于响应于用户的数据处理请求以获取源数据。

所述对象识别模块602可以用于对所述源数据进行识别以提取多个对象,以及各对象的属性数据;所述对象的属性数据包括本对象与至少一个其他对象的关联关系信息。

所述数据路径建立模块603可以用于根据所述对象的关联关系信息对所述对象进行筛选,并根据筛选得到的第一对象之间的关联关系信息构建多个数据路径,其中,每个数据路径包含至少一个所述第一对象。

所述结构数据建立模块604可以用于根据所述数据路径所包含的所述第一对象的关联关系信息对所述数据路径进行合并以存储所述源数据。

根据本公开的示例性实施例,所述请求响应模块601可以,包括:请求接收单元、源数据提取单元。其中:

所述请求接收单元可以用于接收用户终端的数据处理请求;其中,所述数据数据处理请求包括源数据的地址信息。

所述源数据提取单元可以用于根据所述地址信息获取所述源数据。

根据本公开的示例性实施例,所述对象的关联关系信息包括:本对象与关联对象之间的等级信息。

根据本公开的示例性实施例,所述数据路径建立模块603可以包括:关联关系信息提取单元、对象筛选单元和数据路径构建单元。其中:

所述关联关系信息提取单元可以用于遍历所述对象以获取各所述对象的关联关系信息。

所述对象筛选单元可以用于根据各所述对象的关联关系信息对具有关联关系的对象进行筛选以获取多个第一对象。

所述数据路径构建单元可以用于以所述第一对象作为数据路径的节点,并根据所述第一对象之间的关联关系信息构建多个数据路径。

根据本公开的示例性实施例,所述结构数据建立模块604可以,包括:路径合并单元、特征标记单元。其中:

所述路径合并单元可以用于根据所述数据路径所包含的所述第一对象的关联关系信息对所述路径进行合并处理。

所述特征标记单元可以用于根据各所述第一对象在所述合并后的数据路径中的位置为所述第一对象配置对应的节点特征数据;其中,所述节点特征数据包括:左值、右值、等级数据以及标识数据。

根据本公开的示例性实施例,所述特征标记单元可以包括:根节点配置单元、子节点查询单元、兄弟节点查询单元以及父节点查询单元。

其中:

所述根节点配置单元可以用于为所述合并后的数据路径的根节点配置左值和等级数据。

所述子节点查询单元可以用于以所述根节点为起点,查询下一级的第一子节点,并在存在所述第一子节点时,为所述第一子节点配置左值和等级数据;以及查询所述第一子节点下一级的第二子节点,并在存在所述第二子节点时,为所述第二子节点配置左值和等级数据。

所述兄弟节点查询单元可以用于在不存在所述下一级的第二子节点时,为所述第一子节点配置右值;以及查询所述第一子节点的兄弟节点,并在存在所述兄弟节点时,依次为各所述兄弟节点配置左值、右值和等级数据。

所述父节点查询单元可以用于在所述第一子节点不存在所述兄弟节点时,为所述第一子节点对应的父节点配置右值,直至回到所述根节点。

根据本公开的示例性实施例,所述装置600还可以包括:添加请求响应模块、第一赋值模块以及第二赋值模块。其中:

所述添加请求响应模块可以用于响应于一节点添加请求,获取添加节点的添加位置以及父节点信息。

所述第一赋值模块可以用于获取所述添加节点的父节点的右值x,并配置所述添加节点的左值为x,以及配置所述添加节点的右值为x+m。

所述第二赋值模块可以用于将除所述添加节点外,数值大于以及等于x的各所述节点的左值、右值分别增加n,以更新所述节点特征数据;其中,x、m、n均为正整数,且n>m。

根据本公开的示例性实施例,所述装置600还可以包括:删除请求响应模块和第三赋值模块。其中:

所述删除请求响应模块可以用于响应于一节点删除请求,获取删除节点的右值y。

所述第三赋值模块可以用于将数值大于y的各所述节点的左值和右值分别减k,以更新所述节点特征数据,且更新后的各所述节点的左值、右值均大于或等于所述删除节点的左值;其中,y、k均为正整数。

根据本公开的示例性实施例,所述等级数据包括表征等级信息和详细等级信息。

上述的特征标记单元可以包括:第一等级标记单元和第二等级标记单元。其中:

所述第一等级标记单元可以用于根据所述第一对象在所述合并后的数据路径中的位置为各节点配置第一等级信息。

所述第二等级标记单元可以用于根据所述第一对象的关联关系信息为所述第一对象对应的节点配置第二等级信息。

由于本发明实施方式的数据处理装置的各个功能模块与上述数据处理方法发明实施方式中相同,因此在此不再赘述。

示例性存储介质

在介绍了本发明示例性实施方式的数据处理方法和装置之后,接下来,参考图7对本发明示例性实施方式的存储介质进行说明。

参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如java、c++等,还包括常规的过程式程序设计语言-诸如"c"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

示例性电子设备

在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图8对本发明示例性实施方式的电子设备进行说明。

图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤。

存储单元820可以包括易失性存储单元,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。

存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线830可以包括数据总线、地址总线和控制总线。

电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口850进行。电子设备800还包括显示单元840,其连接到输入/输出(i/o)接口850,用于进行显示。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了音频播放装置和音频分享装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1