CN106294545A - 一种树形结构数据的访问方法及装置 - Google Patents

一种树形结构数据的访问方法及装置 Download PDF

Info

Publication number
CN106294545A
CN106294545A CN201610586876.8A CN201610586876A CN106294545A CN 106294545 A CN106294545 A CN 106294545A CN 201610586876 A CN201610586876 A CN 201610586876A CN 106294545 A CN106294545 A CN 106294545A
Authority
CN
China
Prior art keywords
node
value
queried
lvalue
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610586876.8A
Other languages
English (en)
Inventor
苏豫陇
王昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN201610586876.8A priority Critical patent/CN106294545A/zh
Publication of CN106294545A publication Critical patent/CN106294545A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/2454Optimisation of common expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种树形结构数据的访问方法及装置,树形结构数据的数据结构为树形结构,树形结构中的每一结点配置有一左值和一右值;配置方式为:从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历根结点的右侧位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到树形结构中每一结点的左值和右值;所述方法包括:响应于用户请求的查询被查询结点所在层数的操作,获取被查询结点的左值和右值;统计左值小于或等于被查询结点的左值且右值大于或等于被查询结点的右值的结点数目,结点数目为被查询结点所在的层数。本发明能够提高数据访问效率、降低数据库的负担。

Description

一种树形结构数据的访问方法及装置
技术领域
本发明涉及数据库技术领域,尤其涉及一种树形结构数据的访问方法及装置。
背景技术
在进行数据存储时,经常需要使用树形数据结构来表示部门之间、事务之间等之间的关联关系。比如,在综合项目管理平台中的任务管理中,一个任务可以存在父任务、子任务,并且父任务和子任务之间通常是一对多的关系,从数据结构来看,可以将其视为树形存储结构。
现有的树形数据结构,通常采用父子结点的数据库存储方式,即通过记录每一结点的父结点来记录结点之间的继承关系,并基于这种继承关系建立一个二维关系数据表。举例说明,如图1所示的树形结构示意图,从根结点至所有的叶子结点组成了一个父子关系树,其对应的二维关系数据表(表1)结构设计为{Node_id,Parent_id,Root_id}:
结点标识(Node_id) 结点名称(Node_name) 父结点标识(Parent_id)
1 结点A null
2 结点B 1
3 结点C 1
4 结点D 1
5 结点E 3
表1
如表1所示的数据库设计方案,直接记录了结点之间的继承关系,简单的将以Node_id=1为根结点的树形结构的父子关系表示出来,用于持久化存储。
在常见的业务场景中,每一任务的详细页面中都需要展示所有关联任务的列表(即整棵树),而根据现有数据库中任何一条记录,都只能知道当前结点及其父结点,而不可能知道其兄弟结点的具体信息和数目,更不可能知道以其兄弟结点为根的子树的信息等等,因此,需要多次的递归查询数据库去获取相关的每一个结点信息,但在递归查询过程中会不断的访问数据库,每次访问数据库I/O都会有性能开销和时间开销,而随着结点个数的增加,开销会呈几何级增加。可见,基于现有树形结构数据的存储方式,当用户访问数据库中的树形结构数据时,通常需要不断访问数据库,不但会大大降低访问效率,还增加了数据库的负担。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种树形结构数据的访问方法及装置,能够提高数据访问效率、降低数据库的负担。
本发明实施例提供了一种树形结构数据的访问方法,所述树形结构数据的数据结构为树形结构,所述树形结构中的每一结点配置有一左值和一右值;每一结点的左值和右值的配置方式为:
从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历所述根结点的右侧位置,其中,当遍历到当前子树时,从当前子树的孩子结点的左侧位置开始,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到所述树形结构中每一结点的左值和右值;
所述方法包括:
响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;
统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目为所述被查询结点所在的层数。
可选的,所述方法还包括:
响应于用户请求的查询被查询结点的子孙结点数目的操作,获取所述被查询结点的左值和右值;
按照下述公式计算所述被查询结点的子孙结点数目M:
M=(m1-n1-1)/2
其中,m1为所述被查询结点的右值,n1为所述被查询结点的左值。
可选的,所述方法还包括:
响应于用户请求的查询被查询结点的所有子孙结点的操作,获取所述被查询结点的左值和右值;
统计左值或右值介于所述被查询结点的左值和右值之间的所有结点,所述统计出的所有结点为所述被查询结点的所有子孙结点。
可选的,所述方法还包括:
响应于用户请求的查询被查询结点的所有父结点的操作,获取所述被查询结点的左值和右值;
统计左值小于所述被查询结点的左值并且右值大于所述被查询结点的右值的所有结点,所述统计出的所有结点为所述被查询结点的所有父结点。
可选的,所述方法还包括:
响应于用户请求新增一个结点的操作,获取新增结点的父结点的右值;
将所述父结点的右值作为所述新增结点的左值,将所述父结点的右值加1作为所述新增结点的右值;
除所述新增结点的左右值外,将所有大于或等于所述父结点右值的左右值分别加2。
可选的,述方法还包括:
响应于用户请求删除结点的操作,将请求删除的待删除结点以及所述待删除结点的所有子孙结点全部删除;
确定被删除的结点数目N;
将所有大于所述待删除结点右值的左值和右值分别在原值的基础上减去2N。
可选的,所述确定被删除的结点数目N,包括:
获取所述待删除结点的左值和右值;
按照下述公式计算被删除的结点数目N:
N=(m2-n2+1)/2
其中,m2为所述待删除结点的右值,n2为所述待删除结点的左值。
本发明实施例还提供了一种树形结构数据的访问装置,所述树形结构数据的数据结构为树形结构,所述树形结构中的每一结点配置有一左值和一右值;每一结点的左值和右值的配置方式为:从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历所述根结点的右侧位置,其中,当遍历到当前子树时,从当前子树的孩子结点的左侧位置开始,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到所述树形结构中每一结点的左值和右值;
所述装置包括:
第一获取单元,用于响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;
第一查询单元,用于统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目为所述被查询结点所在的层数。
可选的,所述装置还包括:
第二获取单元,用于响应于用户请求的查询被查询结点的子孙结点数目的操作,获取所述被查询结点的左值和右值;
第二查询单元,用于按照下述公式计算所述被查询结点的子孙结点数目M:
M=(m1-n1-1)/2
其中,m1为所述被查询结点的右值,n1为所述被查询结点的左值。
可选的,所述装置还包括:
第三获取单元,用于响应于用户请求的查询被查询结点的所有子孙结点的操作,获取所述被查询结点的左值和右值;
第三查询单元,用于统计左值或右值介于所述被查询结点的左值和右值之间的所有结点,所述统计出的所有结点为所述被查询结点的所有子孙结点。
可选的,所述装置还包括:
第四获取单元,用于响应于用户请求的查询被查询结点的所有父结点的操作,获取所述被查询结点的左值和右值;
第四查询单元,用于统计左值小于所述被查询结点的左值并且右值大于所述被查询结点的右值的所有结点,所述统计出的所有结点为所述被查询结点的所有父结点。
可选的,所述装置还包括:
右值获取单元,用于响应于用户请求新增一个结点的操作,获取新增结点的父结点的右值;
结点赋值单元,用于将所述父结点的右值作为所述新增结点的左值,将所述父结点的右值加1作为所述新增结点的右值;
第一调整单元,用于除所述新增结点的左右值外,将所有大于或等于所述父结点右值的左右值分别加2。
可选的,所述装置还包括:
结点删除单元,用于响应于用户请求删除结点的操作,将请求删除的待删除结点以及所述待删除结点的所有子孙结点全部删除;
数目确定单元,用于确定被删除的结点数目N;
第二调整单元,用于将所有大于所述待删除结点右值的左值和右值分别在原值的基础上减去2N。
可选的,所述数目确定单元,包括:
数值获取子单元,用于获取所述待删除结点的左值和右值;
数目计算子单元,用于按照下述公式计算被删除的结点数目N:
N=(m2-n2+1)/2
其中,m2为所述待删除结点的右值,n2为所述待删除结点的左值。
本发明实施例提供的树形结构数据的访问方法及装置,从树的根结点左侧开始,依次在遍历的结点左右位置顺序标注左右值,直到回到根结点的右侧,使树形结构中的每一结点配置有一左值和一右值。基于左右值配置方式,响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目即为所述被查询结点所在的层数。可见,本发明实施例只需要进行两次数据库查询以及数值比较操作便可获知被查询结点所在的层数,进而基于层级信息可以获知哪些结点是被查询结点的兄弟结点,进而获知其兄弟结点的相关信息,而无需进行递归查询,从而提高了数据访问效率、降低了数据库的负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例树形结构示意图之一;
图2为本发明实施例树形结构示意图之二;
图3为本发明实施例树形结构示意图之三;
图4为本发明实施例树形结构数据的访问方法的流程示意图之一;
图5为本发明实施例树形结构数据的访问方法的流程示意图之二;
图6为本发明实施例树形结构数据的访问方法的流程示意图之三;
图7为本发明实施例树形结构数据的访问方法的流程示意图之四;
图8为本发明实施例树形结构示意图之四;
图9为本发明实施例树形结构数据的访问方法的流程示意图之五;
图10为本发明实施例树形结构示意图之五;
图11为本发明实施例树形结构数据的访问方法的流程示意图之六;
图12为本发明实施例树形结构数据的访问装置的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例前,首先就本发明涉及的名词术语进行介绍:
持久化:数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。本发明中持久化的主要应用是将内存中的对象存储在关系型的数据库中。
结点:表示树中的数据元素,由数据项和数据元素之间的关系组成。
父结点:结点的上层结点叫做该结点的父结点。
孩子结点:结点子树的根结点。
度:结点所拥有的子树的个数。
分支结点:度不为0的结点,也叫非终端结点或内部结点。
叶子结点:度为0的结点,也叫终端结点。
兄弟结点:拥有同一父结点的孩子结点。
结点层次:从根结点到树中某结点所经路径上的分支数称为该结点的层次。根结点的层次规定为1,其余结点的层次等于其双亲结点的层次加1。
结点遍历:是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。
对于数据库中存储的树形结构数据,所述树形结构数据的数据结构为树形结构,所述树形结构中的每一结点配置有一左值和一右值。需要说明的是,本实施例不限于树的形状、大小以及子树数目,即任何树形结构均适用于本发明实施例。
为便于理解本发明实施例,下面结合图2和图3所示的树形结构示意图,以示例的方式介绍树中每一结点的左值和右值的配置方式。即,从树的根结点开始(比如根结点左值初始化为1或是其它数值),按照从上到下、从左到右的顺序遍历,依次在遍历到的结点左右位置处顺序标注数字(每次增加1),直到回到根结点的右侧位置。
例1:参见图2所示的树形结构,树中每个结点配置有2个属性值:左值和右值,分别标记在结点的左侧和右侧。具体按照下述方式配置结点的左右值:
树中共有5个结点,有3个子树,结点A为根结点。为便于介绍,现从左到右将各个子树分别定义为子树1、子树2和子树3,其中,子树1包括结点B(子树1的孩子结点),子树2包括结点C(子树2的孩子结点)和结点E,子树3包括结点D(子树3的孩子结点)。
首先,遍历结点A的左侧位置,在结点A左侧标记结点A的左值,比如将结点A的左值初始化为1。然后,依次遍历树中的每个子树,先遍历子树1,再遍历子树2,最后遍历子树3,在遍历每个子树时,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;具体地,当遍历子树1时,首先遍历结点B的左侧位置,并在结点B左侧标记结点B的左值2,再遍历结点B的右侧位置,并在结点B右侧标记结点B的右值为3;当遍历子树2时,首先遍历结点C的左侧位置,并在结点C左侧标记结点C的左值为4,然后遍历结点E的左侧位置,并在结点E左侧标记结点E的左值为5,再然后遍历结点E的右侧位置,并在结点E右侧标记结点E的右值为6,最后遍历结点C的右侧位置,并在结点C右侧标记结点C的右值为7;当遍历子树3时,首先遍历结点D的左侧位置,并在结点D左侧标记结点D的左值8,再遍历结点D的右侧位置,并在结点D右侧标记结点D的右值为9。最后,遍历结点A的右侧位置,在结点A右侧标记结点A的右值为10。
按照上述配置方式,图2所示树形结构对应的数据表(表2)结构设计为{Node_id,Left_value,Right_value,Root_id}:
表2
如表2所示,图2所示整棵树以左右值的形式持久化存储至数据库中。
例2:参见图3所示的树形结构,树中每个结点配置有2个属性值:左值和右值,分别标记在结点的左侧和右侧。具体按照下述方式配置结点的左右值:
树中共有7个结点,有3个子树,结点A为根结点。为便于介绍,现从左到右将各个子树分别定义为子树1、子树2和子树3,其中,子树1包括结点B(子树1的孩子结点)、结点F和结点G,子树2包括结点C(子树2的孩子结点)和结点E,子树3包括结点D(子树3的孩子结点)。
首先,遍历结点A的左侧位置,在结点A左侧标记结点A的左值,比如将结点A的左值初始化为1。然后,依次遍历树中的每个子树,先遍历子树1,再遍历子树2,最后遍历子树3,在遍历每个子树时,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;具体地,当遍历子树1时,首先遍历结点B的左侧位置,并在结点B左侧标记结点B的左值2,然后遍历结点F的左侧位置,并在结点F左侧标记结点F的左值3,再然后遍历结点F的右侧位置,并在结点F右侧标记结点F的右值为4,再然后遍历结点G的左侧位置,并在结点G左侧标记结点G的左值5,再然后遍历结点G的右侧位置,并在结点G右侧标记结点G的右值为6,最后遍历结点B的右侧位置,并在结点B右侧标记结点B的右值为7;当遍历子树2时,首先遍历结点C的左侧位置,并在结点C左侧标记结点C的左值为8,然后遍历结点E的左侧位置,并在结点E左侧标记结点E的左值为9,再然后遍历结点E的右侧位置,并在结点E右侧标记结点E的右值为10,最后遍历结点C的右侧位置,并在结点C右侧标记结点C的右值为11;当遍历子树3时,首先遍历结点D的左侧位置,并在结点D左侧标记结点D的左值12,再遍历结点D的右侧位置,并在结点D右侧标记结点D的右值为13。最后,遍历结点A的右侧位置,在结点A右侧标记结点A的右值为14。
按照上述配置方式,图3所示树形结构对应的数据表(表3)结构设计为{Node_id,Left_value,Right_value,Root_id}:
表3
如表3所示,图3所示整棵树以左右值的形式持久化存储至数据库中。
基于上述举例,本实施例可以按照下述方式配置树中每一结点的左值和右值:从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历所述根结点的右侧位置;其中,当遍历到当前子树时,从当前子树的孩子结点的左侧位置开始,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到所述树形结构中每一结点的左值和右值。
基于上述结点左右值的配置方式,下面结合具体实施例介绍对树形结构数据进行查询、增加、删除操作时的具体实现。
参见图4,为本发明实施例提供的树形结构数据的访问方法的流程示意图之一,当用户想要查询任一结点(node_id)在树中的结点层次(layer)时,其实现步骤包括:
步骤401:响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值。
以图2为例,该树分为3层,第1层包括结点A,第2层包括结点B、结点C、结点D,第3层包括结点E。
比如,当用户想要查询结点A所在的结点层数时,可以在用户操作界面提供的查询区域内输入被查询结点A的标识1(Node_id)或结点名称,并触发层数的查询操作,此时访问装置会从数据库中获取结点A的左值1和右值10。
又比如,当用户想要查询结点C所在的结点层数时,可以在用户操作界面提供的查询区域内输入被查询结点C的标识3(Node_id)或结点名称,并触发层数的查询操作,此时访问装置会从数据库中获取结点C的左值4和右值7。
步骤402:统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目为所述被查询结点所在的层数。
当被查询结点为结点A时,结点A的左值为1、右值为10,访问装置会从数据库中查找左值小于或等于1、同时右值大于或等于10的结点,满足该条件的结点只有1个结点,即结点A,则结点A所在的层数即为1。
当被查询结点为结点C时,结点C的左值为4、右值为7,访问装置会从数据库中查找左值小于或等于4、同时右值大于或等于7的结点,满足该条件的结点有2个,即结点A和结点C,则结点C所在的层数即为2。
本发明实施例提供的树形结构数据的访问方法,从树的根结点左侧开始,依次在遍历的结点左右位置顺序标注左右值,直到回到根结点的右侧,使树形结构中的每一结点配置有一左值和一右值。基于左右值配置方式,响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目即为所述被查询结点所在的层数。可见,本发明实施例只需要进行两次数据库查询以及数值比较操作便可获知被查询结点所在的层数,进而基于层级信息可以获知哪些结点是被查询结点的兄弟结点,进而获知其兄弟结点的相关信息,而无需进行递归查询,从而提高了数据访问效率、降低了数据库的负担。
进一步地,参见图5,为本发明实施例提供的树形结构数据的访问方法的流程示意图之二,当用户想要查询任一结点(node_id)的子孙结点数目时,其实现步骤包括:
步骤501:响应于用户请求的查询被查询结点的子孙结点数目的操作,获取所述被查询结点的左值和右值。
以图2为例,比如,当用户想要查询结点A的子孙结点数目时,可以在用户操作界面提供的查询区域内输入被查询结点A的标识1(Node_id)或结点名称,并触发子孙结点数目的查询操作,此时访问装置会从数据库中获取结点A的左值1和右值10。
又比如,当用户想要查询结点C的子孙结点数目时,可以在用户操作界面提供的查询区域内输入被查询结点C的标识3(Node_id)或结点名称,并触发子孙结点数目的查询操作,此时访问装置会从数据库中获取结点C的左值4和右值7。
步骤502:按照下述公式计算所述被查询结点的子孙结点数目M:
M=(m1-n1-1)/2
其中,m1为所述被查询结点的右值,n1为所述被查询结点的左值。
当被查询结点为结点A时,结点A的子孙结点数目=(结点A的右值-结点A的左值-1)/2=(10-1-1)/2=4,结点A的子孙结点分别是结点B、结点C、结点D、结点E这4个结点。
当被查询结点为结点C时,结点C的子孙结点数目=(结点C的右值-结点C的左值-1)/2=(7-4-1)/2=1,结点C的子孙结点是结点E。
进一步地,参见图6,为本发明实施例提供的树形结构数据的访问方法的流程示意图之三,当用户想要获取任一结点(node_id)的所有子孙结点时,其实现步骤包括:
步骤601:响应于用户请求的查询被查询结点的所有子孙结点的操作,获取所述被查询结点的左值和右值。
以图2为例,比如,当用户想要查询结点A有哪些子孙结点时,可以在用户操作界面提供的查询区域内输入被查询结点A的标识1(Node_id)或结点名称,并触发子孙结点的查询操作,此时访问装置会从数据库中获取结点A的左值1和右值10。
又比如,当用户想要查询结点C有哪些子孙结点时,可以在用户操作界面提供的查询区域内输入被查询结点C的标识3(Node_id)或结点名称,并触发子孙结点的查询操作,此时访问装置会从数据库中获取结点C的左值4和右值7。
步骤602:统计左值或右值介于所述被查询结点的左值和右值之间的所有结点,所述统计出的所有结点为所述被查询结点的所有子孙结点。
当被查询结点为结点A时,结点A的左值为1、右值为10,访问装置会从数据库中查找左值或右值介于1和10之间的全部结点,满足该条件的结点有4个,分别是结点B、结点C、结点D、结点E,这4个结点即为结点A的子孙结点。
当被查询结点为结点C时,结点C的左值为4、右值为7,访问装置会从数据库中查找左值或右值介于4和7之间的全部结点,满足该条件的结点只有结点E,结点E即为结点A的子孙结点。
进一步地,参见图7,为本发明实施例提供的树形结构数据的访问方法的流程示意图之四,当用户想要获取任一结点(node_id)所有父结点时,其实现步骤包括:
步骤701:响应于用户请求的查询被查询结点的所有父结点的操作,获取所述被查询结点的左值和右值。
以图2为例,比如,当用户想要查询结点A有哪些父结点时,可以在用户操作界面提供的查询区域内输入被查询结点A的标识1(Node_id)或结点名称,并触发父结点的查询操作,此时访问装置会从数据库中获取结点A的左值1和右值10。
又比如,当用户想要查询结点C有哪些父结点时,可以在用户操作界面提供的查询区域内输入被查询结点C的标识3(Node_id)或结点名称,并触发父结点的查询操作,此时访问装置会从数据库中获取结点C的左值4和右值7。
步骤702:统计左值小于所述被查询结点的左值并且右值大于所述被查询结点的右值的所有结点,所述统计出的所有结点为所述被查询结点的所有父结点。
当被查询结点为结点A时,结点A的左值为1、右值为10,访问装置会从数据库中查找左值小于1、同时右值大于10的结点,由于没有满足该条件的结点,因此,结点A没有父结点。
当被查询结点为结点C时,结点C的左值为4、右值为7,访问装置会从数据库中查找左值小于4、同时右值大于7的结点,满足该条件的结点只有结点A,因此,结点A即为结点C的父结点。
从上述图4至图7的查询操作可知,在对树形结构数据进行查询时,至多进行2次数据库查询,避免了现有查询操作中的递归查询,再加上查询条件都是基于数字的比较,查询的效率是极高的,因此,随着树规模的不断扩大,基于左右值编码的设计方案将比现有递归查询方式的效率提高更多。
进一步地,当用户想要在树中新增一个子孙结点时,比如,用户要在图2所示树形结构的基础上增加结点F,新增结点F的父结点为结点D,则需要对结点F配置一左值和一右值,并调整其后左右值的大小,结点增加位置及左右值变化如图8所示的树形结构示意图。
下面结合图8来说明新增结点的实现方案,参见图9,为本发明实施例提供的树形结构数据的访问方法的流程示意图之五,当用户想要新增一个子孙结点时,其实现步骤包括:
步骤901:响应于用户请求新增一个结点的操作,获取新增结点的父结点的右值。
参见图8,当用户想要在图2所示树中增加一个结点F时,可以在用户操作界面提供的新增操作区域内输入新增结点F的标识6(Node_id)或结点名称以及其父结点D的标识4(Node_id)或结点名称,并触发新增结点的操作,此时访问装置会从数据库中获取结点D(新增结点F的父结点)的右值9。
步骤902:将所述父结点的右值作为所述新增结点的左值,将所述父结点的右值加1作为所述新增结点的右值。
将新增结点F的左值初始化为其父结点D的右值9,将新增结点F的右值初始化为其父结点D的(右值+1)即(9+1),此时,结点F的左值为9、右值为10。
步骤903:除所述新增结点的左右值外,将所有大于或等于所述父结点右值的左右值分别加2。
除新增结点F的左右值以外,将每个大于或等于9(结点D右值)的左右值分别增加2,即将结点D的右值从9调整为11(9+2),将结点A的右值从10调整为12(10+2)。
可以理解的是,本实施例插入结点的操作是事务性的逐个插入,即每次只在树中插入一个结点并为该结点赋予左右值,然后调整后续结点的左右值大小,所以每次插入一个结点时后续左右值的数值调整大小为2。
进一步地,当用户想要在树中删除一个结点时,会同时删除该结点的所有子孙结点,比如,如果用户要在图2所示树形结构的基础上删除结点E,如果结点E有子孙结点则同时删除,并调整其后左右值的大小,结点删除位置及左右值变化如图10所示的树形结构示意图。
下面结合图10来说明删除结点的实现方案,参见图11,为本发明实施例提供的树形结构数据的访问方法的流程示意图之六,当用户想要删除一个结点时,其实现步骤包括:
步骤1101:响应于用户请求删除结点的操作,将请求删除的待删除结点以及所述待删除结点的所有子孙结点全部删除。
参见图10,当用户想要在图2所示树中删除结点E(所述待删除结点)时,可以在用户操作界面提供的删除操作区域内输入结点E的标识5(Node_id)或结点名称,并触发删除结点的操作,此时访问装置会从数据库中删除结点E。
步骤1102:确定被删除的结点数目N。
访问装置进一步确定删除了多少个结点N。
步骤1102可以包括步骤A1和A2:
A1:获取所述待删除结点的左值和右值。
访问装置会从数据库中获取结点E(即待删除结点)的左值5和右值6。
A2:按照下述公式计算被删除的结点数目N:
N=(m2-n2+1)/2
其中,m2为所述待删除结点的右值,n2为所述待删除结点的左值。
当待删除结点为结点E时,被删除的结点数目N=(结点E的右值-结点E的左值+1)/2=(6-5+1)/2=1,可见,本删除的结点只有一个结点E,即结点E没有子孙结点。
步骤1103:将所有大于所述待删除结点右值的左值和右值分别在原值的基础上减去2N。
访问装置会从数据库中查找所有大于结点E右值(即待删除结点)的其它左值和右值,并将这些数值在原值的基础上减去2N,即将结点C的右值从7调整为5(7-2),将结点D的左值从8调整为6(8-2),将结点D的右值从9调整为7(9-2),将结点A的右值从10调整为8(10-2)。
综上,本发明实施例通过左右值编码实现无限分组(即不限于子树的分支数)的树形结构在关系型数据库中的持久化存储,其具有数据存储冗余度小、直观性强,该发明是基于数据结构的高度抽象,只要存在树形的数据结构都可以采用本方案的左右值编码方式进行持久化存储;此外,本发明对树形结构数据的访问条件是基于数字(左右值)的比较,无需进行递归查询,因此检索遍历过程简单高效,结点增删查操作也更加高效。
参见图12,为本发明实施例提供的树形结构数据的访问装置的组成示意图,所述树形结构数据的数据结构为树形结构,所述树形结构中的每一结点配置有一左值和一右值;每一结点的左值和右值的配置方式为:
从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历所述根结点的右侧位置,其中,当遍历到当前子树时,从当前子树的孩子结点的左侧位置开始,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到所述树形结构中每一结点的左值和右值;
所述装置包括:
第一获取单元1201,用于响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;
第一查询单元1202,用于统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目为所述被查询结点所在的层数。
在本实施例中,所述装置还可以包括:
第二获取单元,用于响应于用户请求的查询被查询结点的子孙结点数目的操作,获取所述被查询结点的左值和右值;
第二查询单元,用于按照下述公式计算所述被查询结点的子孙结点数目M:
M=(m1-n1-1)/2
其中,m1为所述被查询结点的右值,n1为所述被查询结点的左值。
在本实施例中,所述装置还可以包括:
第三获取单元,用于响应于用户请求的查询被查询结点的所有子孙结点的操作,获取所述被查询结点的左值和右值;
第三查询单元,用于统计左值或右值介于所述被查询结点的左值和右值之间的所有结点,所述统计出的所有结点为所述被查询结点的所有子孙结点。
在本实施例中,所述装置还可以包括:
第四获取单元,用于响应于用户请求的查询被查询结点的所有父结点的操作,获取所述被查询结点的左值和右值;
第四查询单元,用于统计左值小于所述被查询结点的左值并且右值大于所述被查询结点的右值的所有结点,所述统计出的所有结点为所述被查询结点的所有父结点。
在本实施例中,所述装置还可以包括:
右值获取单元,用于响应于用户请求新增一个结点的操作,获取新增结点的父结点的右值;
结点赋值单元,用于将所述父结点的右值作为所述新增结点的左值,将所述父结点的右值加1作为所述新增结点的右值;
第一调整单元,用于除所述新增结点的左右值外,将所有大于或等于所述父结点右值的左右值分别加2。
在本实施例中,所述装置还可以包括:
结点删除单元,用于响应于用户请求删除结点的操作,将请求删除的待删除结点以及所述待删除结点的所有子孙结点全部删除;
数目确定单元,用于确定被删除的结点数目N;
第二调整单元,用于将所有大于所述待删除结点右值的左值和右值分别在原值的基础上减去2N。
在本实施例中,所述数目确定单元,包括:
数值获取子单元,用于获取所述待删除结点的左值和右值;
数目计算子单元,用于按照下述公式计算被删除的结点数目N:
N=(m2-n2+1)/2
其中,m2为所述待删除结点的右值,n2为所述待删除结点的左值。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种树形结构数据的访问方法,其特征在于,所述树形结构数据的数据结构为树形结构,所述树形结构中的每一结点配置有一左值和一右值;每一结点的左值和右值的配置方式为:
从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历所述根结点的右侧位置,其中,当遍历到当前子树时,从当前子树的孩子结点的左侧位置开始,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到所述树形结构中每一结点的左值和右值;
所述方法包括:
响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;
统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目为所述被查询结点所在的层数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户请求的查询被查询结点的子孙结点数目的操作,获取所述被查询结点的左值和右值;
按照下述公式计算所述被查询结点的子孙结点数目M:
M=(m1-n1-1)/2
其中,m1为所述被查询结点的右值,n1为所述被查询结点的左值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户请求的查询被查询结点的所有子孙结点的操作,获取所述被查询结点的左值和右值;
统计左值或右值介于所述被查询结点的左值和右值之间的所有结点,所述统计出的所有结点为所述被查询结点的所有子孙结点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户请求的查询被查询结点的所有父结点的操作,获取所述被查询结点的左值和右值;
统计左值小于所述被查询结点的左值并且右值大于所述被查询结点的右值的所有结点,所述统计出的所有结点为所述被查询结点的所有父结点。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
响应于用户请求新增一个结点的操作,获取新增结点的父结点的右值;
将所述父结点的右值作为所述新增结点的左值,将所述父结点的右值加1作为所述新增结点的右值;
除所述新增结点的左右值外,将所有大于或等于所述父结点右值的左右值分别加2。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
响应于用户请求删除结点的操作,将请求删除的待删除结点以及所述待删除结点的所有子孙结点全部删除;
确定被删除的结点数目N;
将所有大于所述待删除结点右值的左值和右值分别在原值的基础上减去2N。
7.根据权利要求6所述的方法,其特征在于,所述确定被删除的结点数目N,包括:
获取所述待删除结点的左值和右值;
按照下述公式计算被删除的结点数目N:
N=(m2-n2+1)/2
其中,m2为所述待删除结点的右值,n2为所述待删除结点的左值。
8.一种树形结构数据的访问装置,其特征在于,所述树形结构数据的数据结构为树形结构,所述树形结构中的每一结点配置有一左值和一右值;每一结点的左值和右值的配置方式为:从根结点的左侧位置开始遍历,再按照从左到右的子树顺序依次遍历完每一子树后,遍历所述根结点的右侧位置,其中,当遍历到当前子树时,从当前子树的孩子结点的左侧位置开始,按照逆时针方向依次遍历完当前子树中每一结点的左右位置;依据遍历顺序,按照升序编码方式为遍历到的每一结点位置进行编码,通过编码得到所述树形结构中每一结点的左值和右值;
所述装置包括:
第一获取单元,用于响应于用户请求的查询被查询结点所在层数的操作,获取所述被查询结点的左值和右值;
第一查询单元,用于统计左值小于或等于所述被查询结点的左值且右值大于或等于所述被查询结点的右值的结点数目,所述结点数目为所述被查询结点所在的层数。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于响应于用户请求的查询被查询结点的子孙结点数目的操作,获取所述被查询结点的左值和右值;
第二查询单元,用于按照下述公式计算所述被查询结点的子孙结点数目M:
M=(m1-n1-1)/2
其中,m1为所述被查询结点的右值,n1为所述被查询结点的左值。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三获取单元,用于响应于用户请求的查询被查询结点的所有子孙结点的操作,获取所述被查询结点的左值和右值;
第三查询单元,用于统计左值或右值介于所述被查询结点的左值和右值之间的所有结点,所述统计出的所有结点为所述被查询结点的所有子孙结点。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第四获取单元,用于响应于用户请求的查询被查询结点的所有父结点的操作,获取所述被查询结点的左值和右值;
第四查询单元,用于统计左值小于所述被查询结点的左值并且右值大于所述被查询结点的右值的所有结点,所述统计出的所有结点为所述被查询结点的所有父结点。
12.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:
右值获取单元,用于响应于用户请求新增一个结点的操作,获取新增结点的父结点的右值;
结点赋值单元,用于将所述父结点的右值作为所述新增结点的左值,将所述父结点的右值加1作为所述新增结点的右值;
第一调整单元,用于除所述新增结点的左右值外,将所有大于或等于所述父结点右值的左右值分别加2。
13.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:
结点删除单元,用于响应于用户请求删除结点的操作,将请求删除的待删除结点以及所述待删除结点的所有子孙结点全部删除;
数目确定单元,用于确定被删除的结点数目N;
第二调整单元,用于将所有大于所述待删除结点右值的左值和右值分别在原值的基础上减去2N。
14.根据权利要求13所述的装置,其特征在于,所述数目确定单元,包括:
数值获取子单元,用于获取所述待删除结点的左值和右值;
数目计算子单元,用于按照下述公式计算被删除的结点数目N:
N=(m2-n2+1)/2
其中,m2为所述待删除结点的右值,n2为所述待删除结点的左值。
CN201610586876.8A 2016-07-22 2016-07-22 一种树形结构数据的访问方法及装置 Pending CN106294545A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610586876.8A CN106294545A (zh) 2016-07-22 2016-07-22 一种树形结构数据的访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610586876.8A CN106294545A (zh) 2016-07-22 2016-07-22 一种树形结构数据的访问方法及装置

Publications (1)

Publication Number Publication Date
CN106294545A true CN106294545A (zh) 2017-01-04

Family

ID=57652241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610586876.8A Pending CN106294545A (zh) 2016-07-22 2016-07-22 一种树形结构数据的访问方法及装置

Country Status (1)

Country Link
CN (1) CN106294545A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815232A (zh) * 2018-12-27 2019-05-28 厦门市美亚柏科信息股份有限公司 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统
CN110515977A (zh) * 2019-08-26 2019-11-29 深圳追一科技有限公司 数据查询方法、装置、计算机设备和存储介质
CN110674137A (zh) * 2019-09-20 2020-01-10 阿里巴巴(中国)有限公司 数据处理方法及装置、存储介质、电子设备
CN110704452A (zh) * 2019-10-14 2020-01-17 北京弘远博学科技有限公司 一种快速遍历树形结构的方法
CN111078689A (zh) * 2019-11-20 2020-04-28 深圳希施玛数据科技有限公司 一种非连续型预排序遍历树算法的数据处理方法及系统
CN111198879A (zh) * 2019-11-12 2020-05-26 恒大智慧科技有限公司 基于智慧社区的业务数据存储方法及系统
CN111339245A (zh) * 2020-03-03 2020-06-26 腾讯云计算(北京)有限责任公司 数据存储方法、装置、存储介质及设备
CN112256729A (zh) * 2020-11-03 2021-01-22 北京神州数字科技有限公司 一种基于左右值无限分类实现算法的数据查询方法
CN112860707A (zh) * 2021-03-12 2021-05-28 广州市网星信息技术有限公司 树形结构数据的处理方法、装置、设备及可读存储介质
CN113553330A (zh) * 2021-07-28 2021-10-26 上海华瑞银行股份有限公司 一种实现业务数据自适应展示的方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640259B2 (en) * 2005-08-01 2009-12-29 Sap Ag Systems and methods for modeling tree structures
CN101706820A (zh) * 2009-12-10 2010-05-12 金蝶软件(中国)有限公司 物料清单存储方法及装置、查询方法及装置
CN103414555A (zh) * 2013-08-15 2013-11-27 成都卫士通信息产业股份有限公司 阵列基于io块加密的密钥管理方法
CN103942267A (zh) * 2014-03-26 2014-07-23 上海德上网络科技有限公司 应用于在线教育系统中的树形数据结构的建立方法
CN105740360A (zh) * 2016-01-26 2016-07-06 上海师范大学 艺术品图像中古典母题的识别与检索方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640259B2 (en) * 2005-08-01 2009-12-29 Sap Ag Systems and methods for modeling tree structures
CN101706820A (zh) * 2009-12-10 2010-05-12 金蝶软件(中国)有限公司 物料清单存储方法及装置、查询方法及装置
CN103414555A (zh) * 2013-08-15 2013-11-27 成都卫士通信息产业股份有限公司 阵列基于io块加密的密钥管理方法
CN103942267A (zh) * 2014-03-26 2014-07-23 上海德上网络科技有限公司 应用于在线教育系统中的树形数据结构的建立方法
CN105740360A (zh) * 2016-01-26 2016-07-06 上海师范大学 艺术品图像中古典母题的识别与检索方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815232B (zh) * 2018-12-27 2022-03-18 厦门市美亚柏科信息股份有限公司 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统
CN109815232A (zh) * 2018-12-27 2019-05-28 厦门市美亚柏科信息股份有限公司 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统
CN110515977A (zh) * 2019-08-26 2019-11-29 深圳追一科技有限公司 数据查询方法、装置、计算机设备和存储介质
CN110674137A (zh) * 2019-09-20 2020-01-10 阿里巴巴(中国)有限公司 数据处理方法及装置、存储介质、电子设备
CN110704452A (zh) * 2019-10-14 2020-01-17 北京弘远博学科技有限公司 一种快速遍历树形结构的方法
CN111198879A (zh) * 2019-11-12 2020-05-26 恒大智慧科技有限公司 基于智慧社区的业务数据存储方法及系统
CN111078689A (zh) * 2019-11-20 2020-04-28 深圳希施玛数据科技有限公司 一种非连续型预排序遍历树算法的数据处理方法及系统
CN111078689B (zh) * 2019-11-20 2023-05-26 深圳希施玛数据科技有限公司 一种非连续型预排序遍历树算法的数据处理方法及系统
CN111339245A (zh) * 2020-03-03 2020-06-26 腾讯云计算(北京)有限责任公司 数据存储方法、装置、存储介质及设备
CN111339245B (zh) * 2020-03-03 2023-05-02 腾讯云计算(北京)有限责任公司 数据存储方法、装置、存储介质及设备
CN112256729A (zh) * 2020-11-03 2021-01-22 北京神州数字科技有限公司 一种基于左右值无限分类实现算法的数据查询方法
CN112860707A (zh) * 2021-03-12 2021-05-28 广州市网星信息技术有限公司 树形结构数据的处理方法、装置、设备及可读存储介质
CN113553330A (zh) * 2021-07-28 2021-10-26 上海华瑞银行股份有限公司 一种实现业务数据自适应展示的方法、装置和电子设备

Similar Documents

Publication Publication Date Title
CN106294545A (zh) 一种树形结构数据的访问方法及装置
JP3433803B2 (ja) データベースの構造
CN104809190B (zh) 一种树形结构数据的数据库存取方法
US20090125530A1 (en) Hierarchy Nodes Derived Based on Parent/Child Foreign Key and/or Range Values on Parent Node
CN102867059A (zh) 一种树形结构中数据的处理方法和系统
CN104331491B (zh) 一种组织机构的展示方法及装置
JP6928677B2 (ja) オンライン分析処理を行うためのデータ処理方法及び装置
WO2016095365A1 (zh) 授权处理方法及装置
CN101673307A (zh) 空间数据索引方法及系统
JP2002230038A (ja) データ表示方法
CN102867065B (zh) 基于关系型数据库的数据汇总装置和方法
CN112765405A (zh) 空间数据搜索结果的聚类和查询的方法及系统
JPWO2009095981A1 (ja) 表からツリー構造データを構築する方法及び装置
CN111639075A (zh) 一种基于扁平化r树的非关系数据库矢量数据管理方法
US7310719B2 (en) Memory management tile optimization
US7337295B2 (en) Memory management frame handler
CN110597805B (zh) 一种内存索引结构处理方法
CN103942267A (zh) 应用于在线教育系统中的树形数据结构的建立方法
CN101937455B (zh) 基于无限分层和信息遗传实现多维分类集群的创建方法
JP4562749B2 (ja) 文書の圧縮格納方法及び装置
US20110022639A1 (en) Hierarchy Nodes Derived Based On Parent/Child Foreign Key And/Or Range Values On Parent Node
CN109739484A (zh) 一种资产关系模型构建系统、方法及存储介质
Huang et al. The study of indexing techniques on object oriented databases
Sarkar et al. Implementation of graph semantic based multidimensional data model: An object relational approach
CN113190550B (zh) 一种基于树形结构的组织结构权限分配方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170104

RJ01 Rejection of invention patent application after publication