CN109033323B - 一种基于算子的树形结构基础数据变更记录方法 - Google Patents

一种基于算子的树形结构基础数据变更记录方法 Download PDF

Info

Publication number
CN109033323B
CN109033323B CN201810792409.XA CN201810792409A CN109033323B CN 109033323 B CN109033323 B CN 109033323B CN 201810792409 A CN201810792409 A CN 201810792409A CN 109033323 B CN109033323 B CN 109033323B
Authority
CN
China
Prior art keywords
basic data
operator
basic
change
node
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.)
Active
Application number
CN201810792409.XA
Other languages
English (en)
Other versions
CN109033323A (zh
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.)
Chinese People's Liberation Army 91776
Original Assignee
Chinese People's Liberation Army 91776
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 Chinese People's Liberation Army 91776 filed Critical Chinese People's Liberation Army 91776
Priority to CN201810792409.XA priority Critical patent/CN109033323B/zh
Publication of CN109033323A publication Critical patent/CN109033323A/zh
Application granted granted Critical
Publication of CN109033323B publication Critical patent/CN109033323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于算子的树形结构基础数据变更记录方法,将基础数据的变更操作分为以数据节点为单位的多个原子操作的集合;确定每个基础原子操作的操作对象和操作结果,获得基础数据变更算子列表;根据基础数据变更请求,提取基础数据变更原子操作列表中的算子进行组合,获得基础数据变更算子式;利用基础数据变更算子式对基础数据进行变更,生成新的基础数据版本及其编号并存储完成基础数据的变更和记录。本发明技术方案的方法,针对现有技术中基础数据更新后,难以确定基础数据的历史沿革、无法保证数据可追溯性的情况,通过记录下每次的基础原子操作组合,在实现基础数据变更的同时,可以利用记录下来的基础原子操作组合对其进行历史追溯。

Description

一种基于算子的树形结构基础数据变更记录方法
技术领域
本发明属于基础数据管理领域,具体涉及一种基于算子的树形结构基础数据变更记录方法。
背景技术
基础数据和业务数据是常见于各类信息管理系统中的一组相对的概念,基础数据是系统的数据字典,在系统初始化的时候,就存在于系统数据库中,是结构性或者功能性的支撑;而业务数据是在系统工作过程中,随着业务工作的开展,不断添加的和业务工作相关的数据。一般如基础的人员表、组织机构表、装设备目录(类型表)、物资目录(类型表)等可视为基础数据,技术上的共同特征是没有外键,不会引用其他表;而工作计划表、工作过程记录表、工作结果记录表、检查评估表等则是系统运行产生的业务数据表,技术上的共同特征是存在引用基础数据表的外键。
基础数据并非一成不变,因此需要对基础数据进行版本管理,常见的方法包括记录基础数据每一条目的变更情况,将基础数据统一修改后结果标记为新的版本并进行发布。单条基础数据变更可能由一般的系统使用人员发起但需经过审核,基础数据整体版本的统一管理发布工作必须由系统管理员完成以保证全系统数据的一致性。在上述基础数据管控过程中,基础数据更改先被保存到临时基础数据库表中,并启动基础数据更改审批流程,审批通过后更改的基础数据存储到基础数据版本更新表中,并为其分配版本号。
一般情况下,某一版本的基础数据将保持一段时间的稳定性(即在一段时间内不被更改,一直有效),直至被新版本的基础数据替代,这样的话,在基础数据版本稳定期内,业务管理工作中产生的业务数据将保证良好的数据一致性,便于数据的汇总、统计和分析。但这种仅简单记录基础数据变更前后情况的版本控制方式无法支持树形结构基础数据的等价回溯。如果要解决上述数据逻辑追溯问题,除了简单记录基础数据的变更前后变化,还应记录基础数据变更的类型,如更名、调整隶属关系、合并、拆分、新增、裁撤等。由于变更类型繁多,实际变更情况复杂,需要设计有效的变更记录方法,一方面可全面覆盖各种情况,另一方面需简单可行便于程序实现。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于算子的树形结构基础数据变更记录方法。本发明技术方案的方法,针对现有技术中基础数据更新后,难以确基础数据的历史沿革、无法保证数据可追溯性的情况,通过将一次基础数据变更操作分解为若干基础原子操作,一次原子操作只对基础数据节点进行一次改变,并记录下每次的基础原子操作组合,从而可以在实现基础数据变更的同时,利用记录下来的基础原子操作组合对其进行历史追溯。
为实现上述目的,按照本发明的一个方面,提供了一种基于算子的树形结构基础数据变更记录方法,其特征在于,包括
S1将基础数据的变更操作分为以数据节点为单位的多个原子操作的集合,对所述原子操作的集合进行分类整理获得基础数据变更的基础原子操作;
S2确定每个基础原子操作的操作对象和操作结果,获得每个基础原子操作对应的基础算子,形成基础数据变更算子列表;
S3根据基础数据变更请求,提取基础数据变更原子操作列表中的算子进行组合,获得基础数据变更算子式;
S4利用基础数据变更算子式对基础数据进行变更,生成新的基础数据版本及其编号并存储;同时将基础变更算子式存储到基础数据变更操作列表中,完成基础数据的变更和记录。
作为本发明技术方案的一个优选,步骤S1包括,
S11获取基础数据历史变更操作,以数据节点为变更单元将所述历史变更操作分解为多个原子操作的集合,每个原子操作对数据节点进行一次操作;
S12对所述原子操作的集合进行统计归类,根据原子操作的类别将集合中的多个原子操作划分到对应的子集合中;
S13根据每个子集合中原子操作的内容,确定每个子集对应的基础原子操作。
作为本发明技术方案的一个优选,步骤S2包括,
S21根据基础原子操作的内容,确定每个基础原子的操作对象和操作结果;
S22将所述基础原子操作及其对应的操作对象和操作结果封装形成基础数据变更算子;
S23利用所述基础数据变更算子构建基础数据变更算子列表。
作为本发明技术方案的一个优选,步骤S3包括,
S31根据基础数据变更请求,确定基础数据变更前后的数据节点位置变化;
S32将变更前后的数据节点位置变化分解为若干原子操作,确定每个原子操作对应的基础原子操作;
S33根据基础原子操作从基础数据变更算子列表中提取对应的基础数据变更算子,构建基础数据变更算子式。
作为本发明技术方案的一个优选,步骤S4包括,
S41按照基础数据变更算子式,以数据节点为单位对基础数据进行逐步变更,获得变更后的基础数据;
S42利用变更后的基础数据原始基础数据进行变更,并对变更后的基础数据版本进行编号;
S43将获得当前基础数据版本的基础数据变更算子及其对应的基础数据版本编号存储到基础数据变更操作列表中,完成基础数据的变更和记录。
作为本发明技术方案的一个优选,变更记录方法还可以实现历史基础数据回溯,包括,
S51根据当前基础数据版本,从基础数据变更操作列表中获取对应的版本编号和基础数据变更算子式;
S52根据基础数据变更算子式,按照相反的顺序对当前版本的基础数据进行变更,获得上一版本的基础数据;
S53判断当前获得的基础数据是否为所需历史数据,若是则停止回溯,若否则根据其所对应的版本编号和基础数据变更算子式继续进行回溯。
作为本发明技术方案的一个优选,算子包括节点标识更改算子、节点名称更改算子、节点隶属关系调整算子、节点新增算子、节点删除算子、节点合并算子、节点拆分算子。
作为本发明技术方案的一个优选,每个原子操作优选以树形结构中的数据节点最小信息集为操作对象,所述最小信息集包括节点的唯一标识、节点在树形结构种的父节点标识父节点标识以及节点的实际含义信息。
作为本发明技术方案的一个优选,算子一次只对一个数据节点执行一次操作,并生成对应的最小节点信息集。
作为本发明技术方案的一个优选,基础数据的数据节点优选采用其在树形结构中的父节点来表示其位置。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1)本发明技术方案的方法,通过将一次基础数据变更操作分解为若干基础原子操作,一次原子操作只对基础数据节点进行一次改变,顺次通过一系列的基础算子完成数据结构的变更,并记录下当前的基础原子操作组合,从而可以在实现基础数据变更的同时,利用记录下来的基础原子操作组合对其进行历史追溯。
2)本发明技术方案的方法,通过对基础数据的变更操作进行分析和分解,获得了一系列的基础算子,每个基础算子一次可以对基础数据完成一次操作,通过有限基础算子的有序组合,即可以实现对基础数据进行不同的修改,其一方面使得基础数据的变更操作更加规范有序,另一方面也便于管理。
3)本发明技术方案的方法,每个基础算子只对基础数据进行一次数据节点的变更操作,基础数据的一次变更是由多个基础算子的有序组合完成的,从而使得一次基础算子操作对数据结构的改变可以基础数据的节点为单位进行,保证了整个基础数据变更的有序进行,同时也便于利用基础算子式对数据结构进行逆向回溯。
附图说明
图1是本发明技术方案的实施例中通用树形基础数据结构图;
图2是本发明技术方案的实施例中基础数据的版本控制流程图;
图3是本发明技术方案的实施例中节点标识更改算子作用于基础数据的操作过程示意图;
图4是本发明技术方案的实施例中节点名称更改算子作用于基础数据的操作过程示意图;
图5是本发明技术方案的实施例中节点隶属关系调整算子作用于基础数据的操作过程示意图;
图6是本发明技术方案的实施例中节点新增算子作用于基础数据的操作过程示意图;
图7是本发明技术方案的实施例中节点删除算子作用于基础数据的操作过程示意图;
图8是本发明技术方案的实施例中节点合并算子作用于基础数据的操作过程示意图;
图9是本发明技术方案的实施例中节点拆分算子作用于基础数据的操作过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面结合具体实施方式对本发明进一步详细说明。
本发明技术方案的实施例中,提供了一种基于算子的树形结构基础数据变更记录方法,以实现对基础数据进行变更和管理。基础数据是系统的数据字典,在系统初始化的时候,就存在于系统数据库中,是结构性或者功能性的支撑;一般如基础的人员表、组织机构表、装设备目录(类型表)、物资目录(类型表)等可视为基础数据,技术上的共同特征是没有外键,不会引用其他表,这些基础数据表的组成条目之间往往呈现明显的的树形组织结构。例如,公司总部下设本部、子公司A、子公司B等几个下级单位,子公司A又下设部门1、部门2、部门3等多个部门……;物资按用途分为几大类,各大类物资可细分为多个小类,各小类物资下面包括多种具体的物资类型……。这种树形结构的基础数据组织十分有利于按照树形层次结构快速汇聚和统计各子树对应的大量业务数据,如根据各单位年度经费支出数据快速汇聚形成子公司A的总年度经费支出,或者根据各单位各类物资存量数据从单位和物资类型两个维度快速统计分析某单位的某类物资存量情况。
具体来说,树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1)每个节点有零个或多个子节点;没有父节点的节点称为根节点;2)每一个非根节点有且只有一个父节点;3)除了根节点外,每个子节点可以分为多个不相交的子树。所有非根节点中,没有子节点的节点也被称为叶子节点。如图1所示是一个具体的树形结构图,其数据表的内容示例如下表1所示:
Figure BDA0001735223070000051
Figure BDA0001735223070000061
表1通用树形基础数据表内容示例
在一个具体的实施例中,每个节点必须具有唯一标识以区分各个节点,唯一标识在数据库表中可作为主键。每个节点的名称和节点在现实中的意义相联系,以组织机构基础数据表为例,其各节点名称为实际的组织机构名称,如子公司A、子公司B部门1等。由于在树结构中,每个节点只有一个父节点,但可能具有多个子节点,因此用父节点来表示该节点在树结构中的位置是最为精简的。节点的唯一标识、表示节点在树中位置的父节点标识、表示节点实际含义的名称一起构成了对节点进行描述的最小信息集,对所有节点进行描述的信息集一起构成了对树形结构基础数据的完整描述。
基础数据并非一成不变,因此需要对基础数据进行版本管理,常见的方法包括记录基础数据每一条目的变更情况,将基础数据统一修改后结果标记为新的版本并进行发布。如图2所示,是现有技术中基础数据的版本变更的一般流程图。在上述基础数据管控过程中,基础数据更改先被保存到临时基础数据库表中,并启动基础数据更改审批流程,审批通过后更改的基础数据存储到基础数据版本更新表中,并为其分配版本号。基础数据的版本控制包括下列步骤:a)在用户需要更改基础数据时,从基础数据库表中取出待更改的基础数据,从基础数据更新表中取出所述待更改的基础数据对应的版本信息;b)用户根据需要对所述待更改的基础数据进行更改;c)将步骤b中对基础数据做出的更改保存至临时基础数据库表中,临时基础数据库表中存储所有更改基础数据完成但尚未转存到基础数据更新表中的基础数据更改中间信息;d)判断是否对所有需更改的基础数据完成更改,如果更改完成则进入步骤e),否则返回步骤a;e)对完成更改之后的基础数据进行审批,如果审批通过,则进入步骤f;否则表明数据更改无效;f)从临时基础数据库表中取出所有基础数据更改信息,并转存至基础数据更新表中;g)基于步骤f中转存至基础数据更新表中的基础数据更改信息,为更改过的基础数据分配新的版本。
在现有技术方案下,某一版本的基础数据将保持一段时间的稳定性(即在一段时间内不被更改,一直有效),直至被新版本的基础数据替代,这样的话,在基础数据版本稳定期内,业务管理工作中产生的业务数据将保证良好的数据一致性,便于数据的汇总、统计和分析。但这种仅简单记录基础数据变更前后情况的版本控制方式无法支持树形结构基础数据的等价回溯。针对如图1所示的树形结构单位组织机构目录信息表,假如总公司决定将子公司B(唯一标识为3)拆分成子公司B(唯一标识为3)和子公司C(唯一标识为11),将原子公司B下属的部门4(唯一标识为7)和部门5(唯一标识为8)合并形成新的部门6(唯一标识为12),然后将部门6转隶到子公司C,完成基础数据结构变更。现有技术中记录的变更信息,一般是按照基础数据变更前后的结构形式,对变更信息进行记录。例如,在一次变更完成后,变更后记录如下信息:1)新增子公司C的记录,包括唯一标识、名称、父节点标识等;2)删除部门4和部门5的记录;3)新增部门6的记录,包括唯一标识、名称、父节点标识等,其中父节点标识指向子公司C。
这种记录方式简单易行,但存在较大的逻辑问题,主要表现在:1)从新版本数据中,无法看出子公司C是由子公司B拆分出来,缺少历史沿革;2)新版本数据中,无法看出部门6是由部门4和5合并形成,缺少历史沿革;3)从新版本数据中,无法看出部门6原来是隶属于子公司B,缺少追溯可能。综上,从新版本数据中,无法建立子公司C和老版本基础数据之间的追溯关系。
为了规范树形结构基础数据的变更操作,使之可被完整记录并可回溯,本实施例中提出了一种基于算子的树形结构基础数据变更记录方法。通过分析数据模型的字段修改、条目修改和聚合分解情况,设计出了单节点更改标识、单节点更改名称、单节点调整隶属关系、新增单节点、删除单节点、同隶属多节点合并、单节点拆分多节点等多种变更算子作为数据变更操作的基础,各种数据变更操作均可由变更算子按一定顺序组合形成。
具体来说,基础数据的每一个变更操作都可以分解为若干个原子操作的时序组合,基础数据的每一次结构变更都是由多个原子操作组合而成。在一个变更操作中,可能会用到多个不同类别的原子操作,如先对某个节点①进行拆分,然后再将拆分出来的两个子节点(A和B)分别与其他节点(如C和D,节点C、D与节点①不是同一个父节点)进行合并,那么这个过程中实际上用到了一个拆分(将①拆分为A和B)、两个变更父节点(更改A的父节点与C一致,更改B的父节点与D一致)、两个合并(同父节点的子节点合并,即A与C合并、B与D合并)一共五次原子操作,但是实际上这五次原子操作属于三类,即拆分原子操作、改变隶属关系原子操作和合并原子操作,那么这里经过分类而得出的拆分、改变隶属关系和合并原子操作就是基础原子操作。也就是说,虽然这一操作过程中包括一个拆分、两个改变隶属关系和两个合并,一共五个原子操作,但是这一操作过程中实际上只用到了三类基础原子操作。在一个具体的基础数据变更过程中,可能会对基础原子操作进行多次使用以形成符合条件的算子式,但是多个相同的原子操作隶仍然属于同一种基础原子操作。
对于前述的合并、拆分等针对基础数据的进行的基础原子操作,本实施例中中将其统称为树形结构变更基础算子,对树形结构基础数据的变更管理和回溯都将基于树形结构变更基础算子来进行。需要特别说明的是,本实施例中,基础算子操作需要具备原子性或者最小影响性。其中,单节点更改标识算子、单节点更改名称算子、单节点调整隶属关系算子均是仅针对一个节点的一次性操作。新增操作指的是仅增加一个节点的操作而不包括后续该节点的调整隶属关系操作。删除操作指的是对删除一个节点的操作而不包括后续对该节点子节点的后续操作(删除或者调整隶属关系操作等)。同隶属多节点合并算子指的是同父节点下多个子节点间的合并操作,一个子节点为主合并节点,其他子节点为从合并节点,合并后的节点沿袭原主合并节点的标识、名称和父节点信息。其中拆分操作指的是单节点拆分成多个节点的一次性操作而不包括后续子节点的调整隶属关系、继续拆分等操作。单节点拆分成多个节点后,各节点隶属关系(父节点标识)保持原状(和被拆分节点保持一致)。拆分后保持原节点标识、名称节点的为主节点,其他拆分后节点为从节点。
根据图1和表1的内容可以看出,每个节点必须具有唯一标识以区分各个节点,唯一标识在数据库表中可作为主键。每个节点的名称和节点在现实中的意义相联系,以组织机构基础数据表为例,其各节点名称为实际的组织机构名称,如子公司A、子公司B部门1等。由于在树结构中,每个节点只有一个父节点,但可能具有多个子节点,因此用父节点来表示该节点在树结构中的位置是最为精简的。
节点的唯一标识、表示节点在树中位置的父节点标识、表示节点实际含义的名称一起构成了对节点进行描述的最小信息集。对所有节点进行描述的信息集一起构成了对树形结构基础数据的完整描述。本实施例中,针对树形结构基础数据的变更有很多,为了规范树形结构基础数据的变更操作,使之可被完整记录并可回溯,需要将变更操作分解为多类不可分的变更算子,使得各种复杂的数据变更操作均可由变更算子按一定顺序组合形成。
从变更操作序列的最小分解单元来考虑,变更操作可分解到单节点更改标识、单节点更改名称、单节点调整隶属关系、新增单节点、删除单节点等原子操作。此外,考虑到对多节点的合并或拆分操作非常常见,且仅通过原子操作的组合来完成节点的合并或拆分将难以进行追溯,因此可设计同隶属多节点合并、单节点拆分同隶属多节点等扩展型基本操作,便于对合并拆分操作进行记录和追溯。
具体来说,本实施例中包括有三种类别的基础算子,字段修改类变更基础算子、条目增减类变更基础算子和合并拆分类变更基础算子。作为本实施例的一个优选,字段修改类变更基础算子包括:节点标识更改算子、节点名称更改算子和节点隶属关系调整算子;条目增减类变更基础算子包括:节点新增算子和节点删除算子;合并拆分类变更基础算子包括:节点合并算子和节点拆分算子。
树形结构基础数据模型中的最小信息集包括节点的唯一标识、表示节点在树中位置的父节点标识、表示节点实际含义的名称这3个字段,对单一节点单个字段的修改操作,是最小的操作单位,是不可分的原子操作。
本实施例中,节点标识更改算子(1)、节点名称更改算子(2)和节点隶属关系调整算子(3)作用于基础数据的操作过程示意图如图3~图5所示。在图3中,展现了节点标识更改操作过程,将节点2改为节点11。在图4中,展现了节点名称更改的操作过程,将节点2的名称由“子公司A”改为“子公司B”。在图5中,展现了节点隶属关系调整操作过程,将节点5的父节点标识由节点2改为节点3。进一步地,字段修改类变更基础算子这3种字段修改类变更算子的变更效果、基础数据调整细节、操作原子性保证及变更记录内容如下表2所示。
Figure BDA0001735223070000091
Figure BDA0001735223070000101
表2字段修改类变更基础算子信息表
对字段进行修改只能改变已经存在的节点的某方面信息,而新增和删除节点将导致对基础数据中整个条目的增减,增加或者减少单个节点(即在基础数据表中增加或者删除一条记录条目),是最小的操作单位,是不可分的原子操作。
本实施例中,节点新增算子(4)和节点删除算子(5)作用于基础数据的操作过程示意图如图6~图7所示。在图6中,展现了节点新增操作过程,在树形结构中增加节点11,但注意不能赋予它父节点,而是留到下一步由改变隶属关系算子来进行操作使得它隶属于其他节点。在图7中,展现了节点删除的操作过程,在树形结构中删除了节点3,并将指向该节点的子节点的父节点标识改为空。进一步地,条目增减类变更基础算子的这两种字段修改类变更算子的变更效果、基础数据调整细节、操作原子性保证及变更记录内容如下表3所示。
Figure BDA0001735223070000102
Figure BDA0001735223070000111
表3条目增减类变更基础算子信息表
进一步地,为保证树形结构中常见的节点合并拆分操作的可追溯性,设计对应节点合并拆分的变更算子。节点合并拆分操作其实可以由前述5种原子操作按一定顺序组合完成,但原子操作记录中忽略了合并中删除节点(被合并的)和新生成合并后节点之间的关系,忽略了拆分中新生成节点(拆分出来的)和被拆分节点之间的关系,以至于无法追溯树形结构的真实变化情况。
针对这种问题,本实施例中,节点合并算子(6)和节点拆分算子(7)作用于基础数据的操作过程示意图如图8~图9所示。在图8中,显示了同隶属节点6和节点7的合并操作过程,其中节点6为主节点,节点7为从节点。在图9中,显示了单节点拆分为同隶属多节点的操作过程,将节点3拆分成节点3和节点4,并仍然保持同隶属于父节点1。进一步地,合并拆分类变更基础算子的这两种字段修改类变更算子的变更效果、基础数据调整细节、操作原子性保证及变更记录内容如下表4所示。
Figure BDA0001735223070000112
Figure BDA0001735223070000121
表4合并拆分类变更基础算子信息表
综上所述,本实施例基于信息管理系统中存在大量树形结构基础数据的现状,提出了一种以树形结构基本变更算子为基础的可跟踪、可追溯的多版本基础数据变更记录方法,其通过分析基础数据变更应用场景、映射到基础数据变更操作上,并通过合理划分形成变更算子,由变更算子的原子性(不可再分)保证各类变更应用场景均可由一次或者多次变更算子操作完成。同时,由于变更算子操作的原子性,只要能够记录操作前后的基础数据变化,就可以根据变更后基础数据追溯到变更前基础数据,反之亦可通过变更记录跟踪基础数据的变化情况。
为了进一步对本实施例的基于算子的树形结构基础数据变更记录方法的合理性和可行性进行说明,表5是常见基础数据变更操作的分解示例。
Figure BDA0001735223070000131
Figure BDA0001735223070000141
表5常见基础数据变更操作的分解示例
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于算子的树形结构基础数据变更记录方法,其特征在于,包括
S1将基础数据的变更操作分为以节点为单位的多个原子操作的集合,对所述原子操作的集合进行分类整理获得基础数据变更的基础原子操作;
S2确定每个基础原子操作的操作对象和操作结果,获得每个基础原子操作对应的基础算子,形成基础数据变更算子列表;
S3根据基础数据变更请求,提取基础数据变更原子操作列表中的算子进行组合,获得基础数据变更算子式;
S4利用基础数据变更算子式对基础数据进行变更,生成新的基础数据版本及其编号并存储;同时将基础变更算子式存储到基础数据变更操作列表中,完成基础数据的变更和记录。
2.根据权利要求1所述的基于算子的树形结构基础数据变更记录方法,其中,步骤S1包括,
S11获取基础数据历史变更操作,以数据节点为变更单元将所述历史变更操作分解为多个原子操作的集合,每个原子操作对数据节点进行一次操作;
S12对所述原子操作的集合进行统计归类,根据原子操作的类别将集合中的多个原子操作划分到对应的子集合中;
S13根据每个子集合中原子操作的内容,确定每个子集对应的基础原子操作。
3.根据权利要求1或2所述的基于算子的树形结构基础数据变更记录方法,其中,所述步骤S2包括,
S21根据基础原子操作的内容,确定每个基础原子的操作对象和操作结果;
S22将所述基础原子操作及其对应的操作对象和操作结果封装形成基础数据变更算子;
S23利用所述基础数据变更算子构建基础数据变更算子列表。
4.根据权利要求1或2所述的基于算子的树形结构基础数据变更记录方法,其中,所述步骤S3包括,
S31根据基础数据变更请求,确定基础数据变更前后的数据节点位置变化;
S32将变更前后的数据节点位置变化分解为若干原子操作,确定每个原子操作对应的基础原子操作;
S33根据基础原子操作从基础数据变更算子列表中提取对应的基础数据变更算子,构建基础数据变更算子式。
5.根据权利要求1或2所述的基于算子的树形结构基础数据变更记录方法,其中,所述步骤S4包括,
S41按照基础数据变更算子式,以数据节点为单位对基础数据进行逐步变更,获得变更后的基础数据;
S42利用变更后的基础数据进行变更,并对变更后的基础数据版本进行编号;
S43将获得当前基础数据版本的基础数据变更算子及其对应的基础数据版本编号存储到基础数据变更操作列表中,完成基础数据的变更和记录。
6.根据权利要求1或2所述的基于算子的树形结构基础数据变更记录方法,其中,所述变更记录方法还可以实现历史基础数据回溯,包括,
S51根据当前基础数据版本,从基础数据变更操作列表中获取对应的版本编号和基础数据变更算子式;
S52根据基础数据变更算子式,按照相反的顺序对当前版本的基础数据进行变更,获得上一版本的基础数据;
S53判断当前获得的基础数据是否为所需历史数据,若是则停止回溯,若否则根据其所对应的版本编号和基础数据变更算子式继续进行回溯。
7.根据权利要求1或2所述的基于算子的树形结构基础数据变更记录方法,其中,所述算子包括节点标识更改算子、节点名称更改算子、节点隶属关系调整算子、节点新增算子、节点删除算子、节点合并算子、节点拆分算子。
8.根据权利要求1或2所述的一种基于算子的树形结构基础数据变更记录方法,其中,每个原子操作优选以树形结构中的数据节点最小信息集为操作对象,所述最小信息集包括节点的唯一标识、节点在树形结构中的位置以及节点的实际含义信息。
9.根据权利要求1或2所述的一种基于算子的树形结构基础数据变更记录方法,其中,所述算子一次只对一个数据节点执行一次操作,并生成对应的最小节点信息集。
10.根据权利要求1或2所述的一种基于算子的树形结构基础数据变更记录方法,其中,优选采用父节点或层次码来表示节点在树形结构中的位置。
CN201810792409.XA 2018-07-18 2018-07-18 一种基于算子的树形结构基础数据变更记录方法 Active CN109033323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810792409.XA CN109033323B (zh) 2018-07-18 2018-07-18 一种基于算子的树形结构基础数据变更记录方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810792409.XA CN109033323B (zh) 2018-07-18 2018-07-18 一种基于算子的树形结构基础数据变更记录方法

Publications (2)

Publication Number Publication Date
CN109033323A CN109033323A (zh) 2018-12-18
CN109033323B true CN109033323B (zh) 2020-10-23

Family

ID=64644078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810792409.XA Active CN109033323B (zh) 2018-07-18 2018-07-18 一种基于算子的树形结构基础数据变更记录方法

Country Status (1)

Country Link
CN (1) CN109033323B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414370A (zh) * 2019-01-07 2020-07-14 北京智融网络科技有限公司 一种特征库更新方法和系统
CN110134663B (zh) * 2019-04-02 2020-04-28 北京三快在线科技有限公司 组织结构数据处理方法、装置、电子设备
CN110032553B (zh) * 2019-04-08 2021-04-06 中国人民大学 一种数据对象的dna生成和校验方法
CN111209295B (zh) * 2019-12-25 2021-02-26 中科驭数(北京)科技有限公司 计算流图优化方法、数据库访问方法及装置
CN111913736A (zh) * 2020-06-29 2020-11-10 中国建设银行股份有限公司 原子操作的自动清理方法、系统、装置和存储介质
CN113010426B (zh) * 2021-03-19 2022-08-23 汇链通产业供应链数字科技(厦门)有限公司 基于数据回溯的产品性能分析方法及装置
CN113568909B (zh) * 2021-07-21 2023-09-12 北京无线电测量研究所 一种结构树的数据更新方法和系统
CN113792188B (zh) * 2021-09-30 2023-09-12 中国人民解放军国防科技大学 一种目录数据比对方法
CN114201615B (zh) * 2021-12-28 2023-06-27 上海市精神卫生中心(上海市心理咨询培训中心) 基于数据快照的科研数据变动回顾方法及服务器
CN117112573A (zh) * 2023-10-16 2023-11-24 中国科学技术大学 基于树形结构的数据权利转移记录的结构设计方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477530A (zh) * 2008-12-08 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 一种对组织结构进行历史版本管理的方法
CN102314632A (zh) * 2010-07-09 2012-01-11 昆明数博兰德科技有限公司 树型原子模型结构以及应用该结构构建业务模型的方法
CN106156265A (zh) * 2015-06-08 2016-11-23 北京天禾元创软件股份有限公司 用于合并树形结构的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4521417B2 (ja) * 2007-03-16 2010-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータの処理対象のオブジェクトが各ノードを成す、木構造により表現される、構造化電子文書を編集するためのコンピュータプログラム、方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477530A (zh) * 2008-12-08 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 一种对组织结构进行历史版本管理的方法
CN102314632A (zh) * 2010-07-09 2012-01-11 昆明数博兰德科技有限公司 树型原子模型结构以及应用该结构构建业务模型的方法
CN106156265A (zh) * 2015-06-08 2016-11-23 北京天禾元创软件股份有限公司 用于合并树形结构的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向ETL的数据起源追踪系统;戴超凡 等;《计算机工程》;20110905;第37卷(第17期);第256-261页 *

Also Published As

Publication number Publication date
CN109033323A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109033323B (zh) 一种基于算子的树形结构基础数据变更记录方法
JP6857689B2 (ja) データ検索装置、プログラム、及び記録媒体
CN110618983B (zh) 基于json文档结构的工业大数据多维分析与可视化方法
Golfarelli et al. Conceptual design of data warehouses from E/R schemes
CN104767813B (zh) 基于openstack的公众行大数据服务平台
Tang et al. Software architecture documentation: The road ahead
US7788305B2 (en) Hierarchy nodes derived based on parent/child foreign key and/or range values on parent node
Berti et al. Extracting multiple viewpoint models from relational databases
US20140337373A1 (en) System for managing graph queries on relationships among entities using graph index
Petermann et al. BIIIG: enabling business intelligence with integrated instance graphs
Romanowski et al. Data mining in an engineering design environment: OR applications from graph matching
US8458178B2 (en) Dimensional data explorer
US20080222189A1 (en) Associating multidimensional data models
He et al. Stylus: a strongly-typed store for serving massive RDF data
Petermann et al. Graph mining for complex data analytics
Girsang et al. Decision support system using data warehouse for hotel reservation system
Rezende et al. Proposed application of data mining techniques for clustering software projects
US9400814B2 (en) Hierarchy nodes derived based on parent/child foreign key and/or range values on parent node
Hodinka et al. Business intelligence in Environmental reporting powered by XBRL
Meier et al. Data management
Kharitonov et al. On a relational model of the production nomenclature information management
US11216486B2 (en) Data retrieval apparatus, program and recording medium
Koszela et al. Concept and assumptions about the temporal graph database
Benito Openpit limit optimization through databases: an open source for data analysis and reporting services.
Olaru et al. Integrating Multidimensional Information for the Benefit of Collaborative Enterprises.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant