一种数据查询的方法及装置与流程

文档序号:11590606阅读:206来源:国知局

本申请涉及计算机技术领域,特别涉及数据查询的方法及装置。



背景技术:

在计算机存储领域,在获取一些层级从属关系较强的数据时,例如:如图1所示的企业或单位的人事组织结构图。用户往往会根据关键字来查询需要获取的数据,以图1为例,用户可以通过管理中心这个关键字来查询从属于管理中心的员工1和员工2。

现有技术中,可以为员工1~6分别设置一条数据,并在每条数据预留部门、公司等字段,在根据部门关键字查询员工的数据时,遍历所有员工的数据条目,读取所遍历数据条目的部门字段,并向用户反馈部门字段为上述关键字的数据条目的数据内容。可见,当存储的总数据条目较多时,需要遍历、读取的数据条目也较多,现有技术的数据查询方法效率较低。



技术实现要素:

本发明实施例提供数据查询的方法和装置,用于解决现有技术的数据获取方式效率较低的问题。

根据本发明实施例的第一方面,提供一种数据查询的方法,其特征在于,所述待查询数据存储于树形存储结构中的数据结点,其中,所述数据结点包含有父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、初始子结点地址字段,所述方法包括:

接收用于查询数据的关键字;

根据所述关键字,获得在结点属性字段保存有所述关键字的目标数据结点;

根据所述目标数据结点中初始子结点地址字段保存的结点地址,获得目标数据结点的初始子结点;

根据所述初始子结点的目标兄弟结点地址字段所保存的结点地址或所述目标数据结点的非初始子结点的目标兄弟结点地址字段所保存的结点地址,获得目标数据结点的非初始子结点,所述目标兄弟结点地址字段为保存有所述目标数据结点地址的父结点地址字段所对应的兄弟结点地址字段;

查询所述初始子结点以及所述非初始子结点中的数据。

根据本发明实施例的第二方面,提供一种数据查询的装置,其特征在于,所述待查询数据存储于树形存储结构中的数据结点,其中,所述数据结点包含有父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、初始子结点地址字段,所述装置包括:

接收单元,用于接收查询数据的关键字;

获得单元,用于根据所述关键字,获得在结点属性字段保存有所述关键字的目标数据结点;

用于根据所述目标数据结点中初始子结点地址字段保存的结点地址,获得目标数据结点的初始子结点;

用于根据所述初始子结点的目标兄弟结点地址字段所保存的结点地址或所述目标数据结点的非初始子结点的目标兄弟结点地址字段所保存的结点地址,获得目标数据结点的非初始子结点,所述目标兄弟结点地址字段为保存有所述目标数据结点地址的父结点地址字段所对应的兄弟结点地址字段;

查询单元,用于查询所述初始子结点以及所述非初始子结点中的数据。

由以上技术方案可见,本发明实施例引入了组成树形存储结构的数据结点,通过在数据结点设置父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、子结点地址字段,建立数据结点从属连接(纵向连接)以及各数据结点间的横向连接。在获取数据时,先通过关键字查找包含该关键字的目标数据结点,再通过上述纵向连接以及横向连接查找该目标数据结点的全部叶子结点,最后查寻所述叶子结点中保存的数据。当存储的总数据条目较多时,由于本发明实施例避免了对每个数据结点的遍历和读取,其查询数据的效率较高。

附图说明

图1为本发明实施例数据查询的方法的一个企业或单位人事组织结构图;

图2为本发明实施例数据查询的方法的一个应用场景示意图;

图3为本发明数据查询的方法的一个实施例流程图;

图4为本发明数据查询的方法的另一个实施例流程图;

图5为本发明数据查询的装置所在设备的一种硬件结构图;

图6为本发明数据查询的装置的一个实施例框图。

具体实施方式

为了使本技术领域的人员更好的理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中的技术方案作进一步详细的说明。

图2为本发明实施例数据查询的方法的一个应用场景示意图。

如图3所示,该应用场景中包括:客户端设备和服务器,所示服务器存储有一些层级从属关系较强的数据,例如:如图1所示的企业或单位的人事组织结构图。用户可以使用所示客户端设备根据关键字在所示服务器查询需要获取的数据。

以图1为例,当用户通过管理中心这个关键字来查询从属于管理中心的员工1和员工2时。现有技术中,可以预先为员工1~6分别设置一条数据,并在每条数据预留部门、公司等字段,在根据管理中心这个关键字查询员工的数据时,遍历所有员工的数据条目,读取所遍历数据条目的部门字段,并向用户反馈部门字段为管理中心这个关键字的数据条目(员工1和员工2)的数据内容。可见,当存储的总数据条目较多时,需要遍历、读取的数据条目也较多,现有技术的数据查询方法效率较低。

下面结合图2示出的应用场景,对本发明实施例进行详细说明。

参见图3,图3为本发明数据查询的方法的一个实施例流程图,所述待查询数据存储于树形存储结构中的数据结点,其中,所述数据结点包含有父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、初始子结点地址字段,所述方法包括以下步骤:

步骤301:接收用于查询数据的关键字。

步骤302:根据所述关键字,获得在结点属性字段保存有所述关键字的目标数据结点。

在一个可选的例子中,上述目标数据结点的获得过程可以包括:计算上述关键字在预设的哈希函数中的目标哈希值;

根据上述目标哈希值以及预先保存的数据结点到哈希值的映射关系,获得与上述目标哈希值对应的一个或多个数据结点;

遍历与上述目标哈希值对应的一个或多个数据结点,获得在结点属性字段保存有上述关键字的目标数据结点。

步骤303:根据所述目标数据结点中初始子结点地址字段保存的结点地址,获得目标数据结点的初始子结点。

在一个可选的方式中,上述非叶子结点,还可以包含有叶子结点地址字段;根据上述目标数据结点中叶子结点地址字段保存的结点地址,获得目标数据结点的初始子结点。

步骤304:根据所述初始子结点的目标兄弟结点地址字段所保存的结点地址或所述目标数据结点的非初始子结点的目标兄弟结点地址字段所保存的结点地址,获得目标数据结点的非初始子结点,所述目标兄弟结点地址字段为保存有所述目标数据结点地址的父结点地址字段所对应的兄弟结点地址字段。

在一个可选的例子中,如果上述初始子结点不是上述树形存储结构中的叶子结点,则获得上述初始子结点的初始子结点和非初始子结点;如果上述非初始子结点不是上述树形存储结构中的叶子结点,则获得上述非初始子结点的初始子结点和非初始子结点。

在另一个可选的例子中,上述非叶子结点可以包含有一组父结点地址字段与兄弟结点地址字段的对应关系;上述叶子结点可以包含有多组父结点地址字段与兄弟结点地址字段的对应关系。

步骤305:查询所述初始子结点以及所述非初始子结点中的数据。

由以上技术方案可见,本发明实施例引入了组成树形存储结构的数据结点,通过在数据结点设置父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、子结点地址字段,建立数据结点从属连接(纵向连接)以及各数据结点间的横向连接。在获取数据时,先通过关键字查找包含该关键字的目标数据结点,再通过上述纵向连接以及横向连接查找该目标数据结点的全部叶子结点,最后查寻所述叶子结点中保存的数据。当存储的总数据条目较多时,由于本发明实施例避免了对每个数据结点的遍历和读取,其查询数据的效率较高。

参见图4,图4为本发明数据查询的方法的另一个实施例流程图,上述待查询数据存储于树形存储结构中的数据结点,上述数据结点包含有结点属性字段、初始子结点地址字段,其中,非叶子结点包含有一组父结点地址字段与兄弟结点地址字段的对应关系,叶子结点包含有多组父结点地址字段与兄弟结点地址字段的对应关系,上述非叶子结点,还包含有叶子结点地址字段,上述方法包括:

步骤401:接收用于查询数据的关键字。

步骤402:计算上述关键字在预设的哈希函数中的目标哈希值。

步骤403:根据上述目标哈希值以及预先保存的数据结点到哈希值的映射关系,获得与上述目标哈希值对应的一个或多个数据结点。

本步骤中,预先保存的数据结点到哈希值的映射关系的建立可以包括以下步骤:遍历每一个数据结点,读取每个结点属性字段中的关键字;根据预设的哈希函数,将每个结点对应的关键字进行哈希计算得到一个哈希值;建立上述每个数据结点到哈希值的映射关系。

步骤404:遍历与上述目标哈希值对应的一个或多个数据结点,获得在结点属性字段保存有上述关键字的目标数据结点。

步骤405:根据上述目标数据结点中初始子结点地址字段保存的结点地址或叶子结点地址字段保存的结点地址,获得目标数据结点的初始子结点。

本步骤中,初始子结点可以是叶子结点,也可以是非叶子结点。

步骤406:根据上述初始子结点的目标兄弟结点地址字段所保存的结点地址或上述目标数据结点的非初始子结点的目标兄弟结点地址字段所保存的结点地址,获得目标数据结点的非初始子结点。

本步骤中,上述目标兄弟结点地址字段为保存有上述目标数据结点地址的父结点地址字段所对应的兄弟结点地址字段;

在一个可选的方式中,如果上述初始子结点不是上述树形存储结构中的叶子结点,则查询上述初始子结点的初始子结点和非初始子结点;如果上述非初始子结点不是上述树形存储结构中的叶子结点,则查询上述非初始子结点的初始子结点和非初始子结点。

步骤407:查询上述初始子结点以及上述非初始子结点中的数据。

由以上技术方案可见,本发明实施例引入了组成树形存储结构的数据结点,通过在数据结点设置父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、子结点地址字段,建立数据结点从属连接(纵向连接)以及各数据结点间的横向连接。在获取数据时,先通过关键字查找包含该关键字的目标数据结点,再通过上述纵向连接以及横向连接查找该目标数据结点的全部叶子结点,最后查寻所述叶子结点中保存的数据。当存储的总数据条目较多时,由于本发明实施例避免了对每个数据结点的遍历和读取,其查询数据的效率较高。

下面通过一个具体的应用实例对本发明实施例进行说明,该应用实例结合图1和图2示出的应用场景进行描述,其中,假设图2场景中所示人事组织结构图以树形存储结构的方式存储于图2所示的服务器中,具体的,所示人事组织结构图中的每个分类、部分和每个员工都被创建为上述树形存储结构中的一个数据结点,其中,上述数据结点包含有结点属性字段、初始子结点地址字段,其中,非叶子结点包含有一组父结点地址字段与兄弟结点地址字段的对应关系,叶子结点包含有多组父结点地址字段与兄弟结点地址字段的对应关系,上述非叶子结点,还包含有叶子结点地址字段。现在需要查找公司a所有的内部人员,查找过程如下:

接收用于查询数据的关键字“内部人员”;

计算关键字“内部人员”在预设的哈希函数中的哈希值x;

根据哈希值x以及预先保存的数据结点到哈希值的映射关系,获得与哈希值x对应的一个或多个数据结点;

遍历与哈希值x对应的一个或多个数据结点,获得在结点属性字段保存有关键字“内部人员”的数据结点:内部人员结点。

根据数据结点x中初始子结点地址字段保存的结点地址以及叶子结点地址字段保存的结点地址,获得内部人员结点的初始子结点:管理中心结点、员工5结点;

查找内部人员结点的非初始子结点,即:查找管理中心结点的兄弟结点,以及人员5结点的兄弟结点;以查找管理中心结点的兄弟结点为例:1)根据管理中心结点的目标兄弟结点地址字段所保存的结点地址获得内部人员结点的非初始子结点:营销中心结点;2)根据营销中心结点的目标兄弟结点地址字段所保存的结点地址获得内部人员结点的非初始子结点:生产中心结点;3)根据生产中心结点的目标兄弟结点地址字段所保存的终止标记判断内部人员结点非初始子结点的查找过程终止;

重复上述初始子结点以及非初始子结点的查找过程,直至找到内部人员结点的子孙结点中的全部叶子结点:员工1结点、员工2结点、员工3结点、员工4结点、员工5结点、员工6结点;

查询员工1结点、员工2结点、员工3结点、员工4结点、员工5结点、员工6结点中的数据;

查询结束。

与前述数据查询的方法的实施例相对应,本申请还提供了数据查询的装置的实施例。

本申请数据查询的装置的实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请数据查询的装置所在设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图6,为本发明数据查询的装置的一个实施例框图,所述待查询数据存储于树形存储结构中的数据结点,其中,所述数据结点包含有父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、初始子结点地址字段,所述装置包括:接收单元610,获得单元620,查询单元630。

其中,接收单元610,用于接收查询数据的关键字;

获得单元620,用于根据所述关键字,获得在结点属性字段保存有所述关键字的目标数据结点;

用于根据所述目标数据结点中初始子结点地址字段保存的结点地址,获得目标数据结点的初始子结点;

用于根据所述初始子结点的目标兄弟结点地址字段所保存的结点地址或所述目标数据结点的非初始子结点的目标兄弟结点地址字段所保存的结点地址,获得目标数据结点的非初始子结点,所述目标兄弟结点地址字段为保存有所述目标数据结点地址的父结点地址字段所对应的兄弟结点地址字段;

查询单元630,用于查询所述初始子结点以及所述非初始子结点中的数据。

由以上技术方案可见,本发明实施例引入了组成树形存储结构的数据结点,通过在数据结点设置父结点地址字段与兄弟结点地址字段的对应关系,以及结点属性字段、子结点地址字段,建立数据结点从属连接(纵向连接)以及各数据结点间的横向连接。在获取数据时,先通过关键字查找包含该关键字的目标数据结点,再通过上述纵向连接以及横向连接查找该目标数据结点的全部叶子结点,最后查寻所述叶子结点中保存的数据。当存储的总数据条目较多时,由于本发明实施例避免了对每个数据结点的遍历和读取,其查询数据的效率较高。

在一个可选的例子中,所述获得单元620还用于:

在所述初始子结点不是所述树形存储结构中的叶子结点时,获得所述初始子结点的初始子结点和非初始子结点;

在如果所述非初始子结点不是所述树形存储结构中的叶子结点时,获得所述非初始子结点的初始子结点和非初始子结点。

在另一个可选的例子中,所述数据结点包含有父结点地址字段与兄弟结点地址字段的对应关系,包括:

所述非叶子结点包含有一组父结点地址字段与兄弟结点地址字段的对应关系;

所述叶子结点包含有多组父结点地址字段与兄弟结点地址字段的对应关系。

在另一个可选的例子中,所述非叶子结点,包含有叶子结点地址字段;

所述获得单元620,还用于根据所述目标数据结点中叶子结点地址字段保存的结点地址,获得目标数据结点的初始子结点。

在另一个可选的例子中,所述获得单元620包括(图5中未示出):计算子单元,哈希值对应结点获得子单元,目标结点获得子单元。

其中,计算子单元,用于计算所述关键字在预设的哈希函数中的目标哈希值;

哈希值对应结点获得子单元,用于根据所述目标哈希值以及预先保存的数据结点到哈希值的映射关系,获得与所述目标哈希值对应的一个或多个数据结点;

目标结点获得子单元,用于遍历与所述目标哈希值对应的一个或多个数据结点,获得在结点属性字段保存有所述关键字的目标数据结点。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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