一种数据版本控制方法

文档序号:6397777阅读:125来源:国知局
专利名称:一种数据版本控制方法
技术领域
本发明涉及一种数据版本控制方法。
背景技术
在大型设备的状态数据库中,数据版本的管理不善可造成系统的混乱甚至崩溃,因此数据版本控制尤为重要。数据版本控制技术是对每次修改都做详细记录,尤其当多人同时开发一个数据库管理和应用系统时,采用合理的方法监控数据库中表、存储过程和视图等对象的变动。数据版本控制的核心是变更管理,主要目标和任务是记录并保存每个安全可靠的版本历史记录,并且保证每个客户端得到的都是最新版本。目前数据版本控制的主要方法有:差分编码、档案上锁、中央系统与分布式系统等。差分编码只保留档案相继版本之间的差异,该方法可以有效地储存数个版本的档案,节省大量空间,但是采用该方法时,版本恢复比较麻烦;档案上锁功能对高难度的合并,例如大幅更改大档案或档案群的许多部分,提供了一些保护,但其他开发者可以绕过版本控制系统改变档案(这本身就是很大问题);中央式系统是当多个客户端同时要改变同一个档案时,由中央权威管理存取权限“锁上”档案库中的档案,一次只让一个开发者工作,或是像分布式系统容许多个档案库开发者同时更动同一档案,而不需经中央权威许可,分布式系统仍然可以有档案上锁功能。现有的几种版本关系模型中线性版本模型能够很好地描述版本顺序产生的过程,但不能区分替换版本和修订版本的区别;树状版本模型虽然解决了对象模型的修订版本与替换版本之间的区别,但是不能描述版本合并这一实际情况;有向无环图尽管支持版本合并和变更的历史信息描述,但只能用节点序号描述版本的产生层次和来源,无法表示该版本的逻辑层次性,而且容易产生歧义;多色图的版本模型只考虑了同一版本的修订和变型关系。

发明内容
本发明的目的是提供一种数据版本控制方法,用以解决由于多人并发修改数据导致的数据库不一致的问题。为实现上述目的,本发明的方案是:一种数据版本控制方法,步骤如下:(I)建立基于有色Petri网的数据版本控制模型,该Petri网的库所包括数据版本库和操作员库,所述数据版本库包括最新数据版本库、历史数据版本库、更新的数据版本库和合并数据版本库,且不同的数据版本库由不同颜色的托肯来表示,所述最新数据版本库只能存放一个最新数据版本的托肯,所述历史数据版本库可以存放多个更新过的数据版本的托肯,所述托肯存放于Petri网的库所中,用于根据其动态变化表示库所中数据版本的状态;( 2)对步骤(I)中建立的模型进行初始化,使最新数据版本库和历史数据版本库各获得一个颜色相同的托肯,该托肯表示的是目前最新数据版本的信息,其他数据版本库为空;(3)当有操作员准备更新数据时,触发源变迁,使操作员库得到一个表示操作员信息的托肯;(4)当操作员更新数据时,触发更新操作变迁,并根据操作员库中的托肯信息和最新数据版本库中的托肯信息,产生一个表示更新后的数据版本信息的托肯存放在更新的数据版本库中,同时,操作员库中的托肯被删除;(5)根据更新的数据版本库和历史数据版本库中的托肯信息,判断是否需要合并去除冗余数据版本操作,如果需要,则触发冗余数据版本合并变迁,将更新的数据版本库和历史数据版本库进行合并,并将合并后产生的表示合并数据版本信息的托肯存放在合并数据版本库,如果不需要,则触发复制变迁,将步骤(3)中得到的更新的数据版本库中的托肯复制到合并数据版本库中,同时,更新的数据版本库中的托肯被删除;(6)触发提交更新变迁,将合并数据版本库中的托肯复制为两个,分别存放到所述最新数据版本库和历史数据版本库中,同时,合并数据版本库中的托肯被删除;(7)若有其他操作员要更新数据,则继续执行步骤(3) (6),如此循环,直到所述历史数据版本库中托肯数量达到它能存放的最大数量时,终止Petri网的运行。在(4广(6)任一步骤执行的过程中,若有其他操作员要更新数据库中的不同数据,则在前一操作员继续执行其数据操作步骤的同时,其他操作员开始执行步骤(3广(6),若有其他操作员要更新数据库中的相同数据,则要在前一操作员执行完提交更新变迁之后再开始执行步骤(3) (6)。所述数据版本库中托肯表不的信息包括:版本号、父版本号、修改时间、修改的内容和修改人,所述操作员库中的托肯信息包括:操作员编号、操作员姓名和要更新的内容。步骤(4)中触发更新操作变迁后产生两个不同颜色的托肯,其中一个颜色的托肯是原托肯的复制,存放于所述最新数据版本库中,另一个颜色的托肯为新托肯,存放于更新的数据版本库中。基于Petri网的数据版本控制模型初始化时,所述数据版本库中的托肯表示的信息只显示版本号,其余信息字段均为空。本发明达到的有益效果:(1)本发明构建了一种有色Petri网(CPN)模拟数据版本控制过程,用不同颜色的托肯表示数据的不同版本,在数据控制过程中,当有操作员更新数据时,触发源变迁,使操作员库获得操作员的信息,然后通过触发更新操作变迁,产生新的数据版本,并通过触发提交更新变迁,将形成的最新数据版本存放在最新数据版本库中,而且如果判断有冗余数据,可以触发冗余合并变迁,将冗余数据进行合并后再触发提交更新变迁将数据进行存储,有效地解决了数据版本更新过程中合并的问题,保证了数据的完整性;(2)当操作员I在对数据库进行操作时,若有操作员2也要更新数据库,如果操作员2与操作员I修改的数据不同,则继续触发源变迁,操作员库重新获得操作员2的信息,此时操作员I继续执行之后的过程,操作员2在对数据库中的数据进行更新后,最新数据版本库中最后存放的就是操作员2最后更新过的数据版本,如果操作员2和操作员I要修改的数据相同,那么操作员2要在操作员I修改的数据提交后才能进行其数据更新过程,这样就避免了由于多人并发修改数据导致的数据库不一致的问题。


图1是本发明数据版本控制的有色Petri网模型;图2是本发明有色Petri网初始化模型;图3是触发产生操作变迁后的有色Petri网模型;图4是本发明触发更新操作变迁后的有色Petri网模型;图5是本发明触发复制变迁或冗余数据版本合并变迁后的有色Petri网模型;图6是本发明触发提交更新变迁后的有色Petri网模型。
具体实施例方式下面结合附图对本发明做进一步详细的说明。本发明建立的有色Petri网Σ CPN= (P,T,F,M,D,C,I,G,K)用于构建数据版本控制模型,其具体定义如下:(I)P= {pi, p2, p3, p4, p5},P 是库所的有限集;(2)T={tl,t2,t3,t4,t5},T 是变迁的有限集;(3)F= (PXT) U (TXP),是网中有向弧集合;(4) D为颜色集;(5) C:P U T — Ψ (D), Ψ (D)为颜色集 D 的幂集合;(6) M:Ρ — DMS,是网的标识,标识Mi下的标识分量Mi (ρ)表示库所P中的托肯颜色集上的多重集,MO是初始标识;(7)G:变迁护卫函数,G:T —表达式;(8) I为F上的权函数,I:F — DMS,确定变迁发生后托肯的变化;(9) K为P上得容量函数,K =P- {1,2,3...},如果库所P没有定义容量函数,则默认 K (ρ) = °°。如图1,本实施例Petri网模型中的库所包括操作员库和数据版本库,图中的P1、P3、P4和P5为数据版本库,不同的数据版本库由不同颜色的托肯表示,数据版本库的库所中的托肯颜色为C(P1) = Ic1, CfC1J, C1, CfCn e D, Ci表不版本的差异信息,由多参数的一元组组成,属性包括版本号,父版本号,操作时间,操作的内容,操作方式和操作人,Pl表示最新数据版本库,用于存放最新的数据版本,图中的W(pl)=l表示该库所中的托肯数量为I个,P4表示历史数据版本库,P4中托肯的信息相当于在数据库中建立了一个版本控制表,记录一系列数据版本的变化信息,相当于一个版本存储库,方便以后查阅。P2为操作员库,用于存放数据操作员的信息,其中表示操作员库的库所托肯颜色为C(P2) = Im1, m2---mn},m1, nv“mn e DjHii表示操作员信息,包括数据操作员的编号、姓名和要更新的数据内容。tl、t2、t3、t4和t5为 变迁,表示修改数据版本库或操作员库状态信息的操作,h为源变迁,提供更改数据的操作人员的信息,t2为更新操作变迁,产生颜色为Ci和&的两个托肯,Ci是原托肯的复制,便于下次更新操作,即Ci=Ci,存于P1, Cj为新颜色的托肯,存于P3O t5为数据版本的复制,t3为冗余数据版本的合并,为避免冲突,t3的优先权高于t5,产生的托肯的颜色变化类似t2,t4是提交更新操作,当提交成功时G (t4) =true,将P5中的托肯复制成2个,一个存放在P1,一个存放在P4用于存储同时进行合并比较。图中有方向的弧线表示库所与变迁之间的关系。各数据版本库及变迁t2、t3、t4和t5的含义及其操作变化过程如表I所示,表中-1D表明弧的方向由数据版本库或者操作员库指向变迁,数据版本库或者操作员库是作为变迁的输入,表示经过该变迁,数据版本库或者操作员库失去相应变迁的颜色的托肯,ID说明弧的方向由变迁指向数据版本库或者操作员库,数据版本库或者操作员库是作为变迁的输出,表示经过该变迁,数据版本库或者操作员库得到相应变迁的颜色的托肯,Fl和F2各表不一个有向弧,但此处的变迁不一定触发。表I
权利要求
1.种数据版本控制方法,其特征在于,步骤如下: (1)建立基于有色Petri网的数据版本控制模型,该Petri网的库所包括数据版本库和操作员库,所述数据版本库包括最新数据版本库、历史数据版本库、更新的数据版本库和合并数据版本库,且不同的数据版本库由不同颜色的托肯来表示,所述最新数据版本库只能存放一个最新数据版本的托肯,所述历史数据版本库可以存放多个更新过的数据版本的托肯,所述托肯存放于Petri网的库所中,用于根据其动态变化表示库所中数据版本的状态; (2)对步骤(I)中建立的模型进行初始化,使最新数据版本库和历史数据版本库各获得一个颜色相同的托肯,该托肯表示的是目前最新数据版本的信息,其他数据版本库为空; (3)当有操作员准备更新数据时,触发源变迁,使操作员库得到一个表示操作员信息的托肯; (4)当操作员更新数据时,触发更新操作变迁,并根据操作员库中的托肯信息和最新数据版本库中的托肯信息,产生一个表示更新后的数据版本信息的托肯存放在更新的数据版本库中,同时,操作员库中的托肯被删除; (5)根据更新的数据版本库和历史数据版本库中的托肯信息,判断是否需要合并去除冗余数据版本操作,如果需要,则触发冗余数据版本合并变迁,将更新的数据版本库和历史数据版本库进行合并,并将合并后产生的表示合并数据版本信息的托肯存放在合并数据版本库,如果不需要,则触发复制变迁,将步骤(3)中得到的更新的数据版本库中的托肯复制到合并数据版本库中,同时,更新的数据版本库中的托肯被删除; (6)触发提交更新变迁,将合并数据版本库中的托肯复制为两个,分别存放到所述最新数据版本库和历史数据版本库中,同时,合并数据版本库中的托肯被删除; (7)若有其他操作员要更新数据,则继续执行步骤(3) (6),如此循环,直到所述历史数据版本库中托肯数量达到它能存放的最大数量时,终止Petri网的运行。
2.据权利要求1所述的方法,其特征在于,在(4) (6)任一步骤执行的过程中,若有其他操作员要更新数据库中的不同数据,则在前一操作员继续执行其数据操作步骤的同时,其他操作员开始执行步骤(3广(6),若有其他操作员要更新数据库中的相同数据,则要在前一操作员执行完提交更新变迁之后再开始执行步骤(3) (6)。
3.据权利要求1所述的方法,其特征在于,所述数据版本库中托肯表示的信息包括:版本号、父版本号、修改时间、修改的内容和修改人,所述操作员库中的托肯信息包括:操作员编号、操作员姓名和要更新的内容。
4.据权利要求1所述的方法,其特征在于,步骤(4)中触发更新操作变迁后产生两个不同颜色的托肯,其中一个颜色的托肯是原托肯的复制,存放于所述最新数据版本库中,另一个颜色的托肯为新托肯,存放于更新的数据版本库中。
5.据权利要求3所述的方法,其特征在于,基于Petri网的数据版本控制模型初始化时,所述数据版本库中的托肯表示的信息只显示版本号,其余信息字段均为空。
全文摘要
本发明涉及一种数据版本控制方法,该方法构建一种有色Petri网(CPN)模拟数据版本控制过程,有色Petri网库所包括数据版本库和操作员库,并用不同颜色的托肯表示数据的不同版本,当有操作员更新数据时,触发源变迁,使操作员库获得操作员的信息,并通过触发不同的变迁,模拟数据版本的形成过程,将形成的最新数据版本存放在最新数据版本库中,将历史数据版本都存放在历史数据版本库中,方便以后的查询,且通过触发冗余合并变迁,将冗余数据进行合并,有效地解决了数据版本更新过程中的并发、合并的问题,保证了数据的一致性和完整性,有效提高了历史数据的管理水平。
文档编号G06F17/30GK103092947SQ201310011230
公开日2013年5月8日 申请日期2013年1月11日 优先权日2013年1月11日
发明者李保福, 叶阳东, 佘维, 姬波, 刘 文, 卢红星, 邵秋华, 梁经宛, 张静, 雍明超, 庄益诗, 路光辉 申请人:辽宁省电力有限公司朝阳供电公司, 许继电气股份有限公司, 许昌许继软件技术有限公司, 国家电网公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1