在关系数据库中获取数据最小变动集的处理方法

文档序号:6463902阅读:453来源:国知局
专利名称:在关系数据库中获取数据最小变动集的处理方法
技术领域
本发明涉及一种在关系数据库中获取数据最小变动集的处理方法,特别是涉及码分多址基站(CDMA BSS)系统获取基站配置数据最小变动集的方法,以提高从操作维护商用数据库到CDMA基站设备之间数据同步的效率,节省基站设备中CPU用于接收系统配置变动数据所耗费的时间。
可是目前,针对修改后的数据集,却通常采用以下两种方法进行数据处理a.把关系数据库中所有关系表中的所有数据作为处理对象。这种方式实现简单,但是考虑到通常改动的数据都不大,显然每次改动一小部分数据都将处理所有数据的方式效率较低。
b.把发生改动的关系表中的全部数据作为处理对象。这种方式需要一种机制,如在关系表上建立触发器,记录数据修改过程中哪些关系表被改动。与第一种方式相比,这种方式实现相对复杂,但是,由于只需处理被改动的关系表中的所有数据,所以,数据处理的效率相对较高,可是,其中却通常也包括不必处理的冗余数据。
如本发明所述,关系数据库中获取数据最小变动集的处理步骤如下第一步 记录数据修改过程中的所有修改内容,本步骤又可以包括下列步骤a、对关系数据库中每个关系表R_xxx,均建立两个对应的关系表R_xxx_Change,R_xxx_Source,其中关系表R_xxx_Change,R_xxx_Source均比关系表R_xxx多一个字段Operate_ld,此字段与关系表R_xxx的主键一起联合作为关系表R_xxx_Change,R_xxx_Source的主键;其他字段与R_xxx相同,b、对关系表的插入、删除、更新操作进行编码,使得每次对关系表的操作都对应一个独一无二的操作码Operate_Id,Operate_Id为单向自加类型(如在MS SQL Server或Oracle中,设置Operate_Id字段,使之具有Identity属性),即后一次操作的操作码Operate_Id大于以前任何一次的操作码Operate_Id。根据Operate_Id可以找出与Operate_Id相对应的操作的具体内容。
c、在关系数据库中所有关系表建立插入、删除、更新触发器,并且建立一种机制,标识记录关系数据库中每个关系表的内容是否发生改变。以关系表R_xxx为例,关系表R_xxx上的插入、删除、更新触发器用于记录每次对关系表R_xxx的操作内容。所有对关系表R_xxx的插入操作中被插入关系表R_xxx的记录,以及对关系表R_xxx的更新操作中被更新之后的记录,均保存到关系表R_xxx_Change中;所有对关系表R_xxx的删除操作中从关系表R_xxx删除的记录,以及对关系表R_xxx的更新操作中被更新之前的记录,均保存到关系表R_xxx_Source中,即在更新触发器中需把一次更新操作分解为一次删除操作(删除更新前的记录)和一次插入操作(插入更新后的记录)。由关系表R_xxx上的插入、删除、更新触发器完成上述功能,同时把R_xxx置为“内容已改变”,第二步 获取数据最小变动集,本步骤又可以包括下列步骤
a、为了获取所有发生改变的关系表中变动数据,建立一个数据采集总入口;它根据关系表的内容改变情况,决定是否对相应关系表进行数据采集,b、对每一个关系表R_xxx,在内存中创建与之对应的两个全局临时关系表,分别命名为##R_xxx_Pre和##R_xxx_Send,关系表##R_xxx_Pre保存关系表R_xxx中所有发生变动的记录,关系表##R_xxx_Send保存关系表R_xxx对应的数据最小变动集。##R_xxx_Pre和##R_xxx_Send的结构完全一致,均比R_xxx_Change或R_xxx_Source多一个增删标识Op,即比关系表R_xxx多Operate_Id和Op两个字段。其中Op为增删标识,表示与操作码Operate_Id相对应的对关系表R_xxx的操作的性质,不同的取值可以区分操作类型,例如规定1表示插入,2表示删除,3表示更新,c、为了提高数据的采集速度,采用关系数据库中的存储过程实现关系表R_xxx数据最小变动集的采集过程。对关系表R_xxx,建立一个与之相对应的存储过程,命名为P_R_xxx_Chg,完成关系表R_xxx数据最小变动集的采集,存储过程P_R_xxx_Chg执行后,全局临时关系表##R_xxx_Send中存储的数据即为关系表R_xxx中数据最小变动集,它将同时满足以下四个条件①包括向关系表R_xxx插入的记录,标识为插入;②包括从关系表R_xxx删除的记录,标识为删除;③若向关系表R_xxx插入一条记录,经过若干步骤之后,再把此记录删除,则数据最小变动集中不得包括此记录;④对于更新操作,如果不更新记录主键,则数据最小变动集只包括更新后的记录;若更新主键,则数据最小变动集包括对更新前记录的删除操作和对更新后记录的插入操作。
第三步完成对最小数据变动集处理之后,清除关系表R_xxx_Change,R_xxx_Source表中的数据,置关系数据库所有表为“内容未改变”,为下一次记录数据修改过程的内容作准备。
本发明的积极效果是通过本发明所提供的方法,在修改基站系统配置数据后,可以快速采集出CDMA基站系统配置数据最小变动集。由于只需向基站设备同步的数据最小变动集,提高了从操作维护商用数据库到CDMA基站设备之间数据同步的效率,节省了基站设备中CPU用于接收基站系统配置变动数据所耗费的时间。同时,本发明还具有较广的适用性,可以用于其它有类似需求的环境中。
图2是本发明方法的实施例,其为构成CDMA基站系统配置数据最小变动集同步装置中的数据采集总入口模块流程图。
图3是本发明方法的实施例,其为构成CDMA基站系统配置数据最小变动集同步装置中的对应于关系表R_xxx的数据采集模块流程图。
请参阅图2和图3为记录操作维护商用数据库20中每一个关系表内容是否改变,建立关系表R_TableInfo,每个关系表对应一条记录,用于记录对应关系表内容是否发生改变。
参阅图2所示,经过步骤S101中,声明、打开光标,获得所有内容被改变的关系表的名字;通过步骤S102,S103,S104构成的循环,采集所有内容发生了改变的关系表的数据最小变动集,在步骤S105中,关闭、释放步骤S101中声明并打开的光标。
在步骤S103中调用与关系表R_xxx相对应的数据采集过程P_R_xxx_Chg,完成关系表R_xxx的数据最小变动集的采集工作,具体流程如图3所示。
步骤S201中声明变量@OldMainKey和@CurrentMainKey用于存储关系表R_xxx记录的主键值,通过比较两条记录的主键是否相同可以确定这两条记录是否为同一记录;声明变量@Op1和@Op2以存储对表R_xxx中记录的操作性质,即增删标识。
步骤S202中,把关系表R_xxx_Change中的所有记录插入全局临时关系表##R_xxx_Pre中,增删标识Op置为“插入”;把表R_xxx_Source中的所有记录插入全局临时关系表##R_xxx_Pre中,增删标识Op置为“删除”;经过步骤S202之后,##R_xxx_Pre包括了关系表R_xxx中所有发生变动的记录,##R_xxx_Pre中的所有记录的Op取值为1或2;关系表##R_xxx_Send内容为空。在对关系表##R_xxx_Pre中的记录进行必要的扫描、筛选,去掉冗余的记录,得到的结果集才能满足数据最小变动集的条件。
在步骤S203中,利用光标对全局临时关系表##R_xxx_Pre中的记录进行遍历、筛选。在声明的光标中,选择出关系表##R_xxx_Pre中的所有记录,结果集中以关系表R_xxx的主键为升序,Operate_Id为降序,Op为升序进行排列。为保证在结果集中对于一次更新操作分解出的一次删除操作和一次插入操作,满足插入操作在前,删除操作在后的顺序,在结果集中对Op升序排列。
步骤S204至S210构成的循环共同完成关系表##R_xxx_Pre中记录的遍历、筛选工作。经过步骤S203中对结果集以特定方式进行排序处理后,若修改基站系统配置数据的过程中对同一条记录进行了多次操作,则在结果集中对同一记录的多次操作必定相邻,且时间最靠后一次操作最先被处理到,时间最靠前的一次操作最后被处理到。
根据数据最小变动集的定义中条件③,若时间最靠后一次操作的增删标识Op为删除(Op取值为2),且时间最靠前的一次操作的增删标识Op为插入(Op取值为1),则对此记录的所有操作被忽略;反之,若时间最靠后一次操作的增删标识Op不为删除(Op取值为2),或者时间最靠前的一次操作的增删标识Op不为插入(Op取值为1),则此记录被插入全局临时关系表##R_xxx_Send,即关系表R_xxx所对应的数据最小变动集之中。
同理,步骤S204至S210所采集的结果集也满足数据最小变动集的定义中条件④。
最后,通过步骤S211,关闭、释放光标。至此,已经获得关系表R_xxx的数据最小变动集。
在图2中,通过步骤S102,S103,S104构成的循环,可以获得所有内容发生了改变的关系表的数据最小变动集。
权利要求
1.一种在关系数据库中获取数据最小变动集的处理方法,其步骤包括第一步,记录数据修改过程中所有修改内容,第二步,获取数据最小变动集,第三步,清除处理过程中建立的关系表,并置关系数据库中所有表为“内容未改变”。
2.根据权利要求1所述的在关系数据库中获取数据最小变动集的处理方法,其特征在于所说的记录数据修改过程中所有修改内容,其步骤包括a、对关系数据库中每个关系表R_xxx,均建立两个对应的关系表R_xxx_Change,R_xxx_Source,并分别把它们比关系表R_xxx增多的一个字段Operate_Id与关系表R_xxx的主键一起联合作为关系表R_xxx_Change,R_xxx_Source的主键;其它字段则与关系数R_xxx相同,b、对关系表的插入、删除、更新操作进行编码,c、在关系数据库中所有关系表建立插入、删除、更新触发器,并且建立一种标识记录关系数据库中每个关系表的内容是否发生改变的机制。
3.根据权利要求1所述的在关系数据库中获取数据最小变动集的处理方法,其特征在于所说的获取数据最小变动集,其步骤包括a、建立一个获取所有发生改变的关系表中变动数据的数据采集总入口,根据关系表的内容改变情况,决定是否对相应关系表进行数据采集,b、对每一个关系表R_xxx,在内存中创建与之对应的两个全局临时关系表,c、对关系表R_xxx,建立一个与之相对应的存储过程,完成关系表R_xxx数据最小变动集的采集,存储过程全局临时关系表##R_xxx_Send中存储的数据即为关系表R_xxx中数据最小变动集,其同时满足以下四个条件①包括向关系表R_xxx插入的记录,标识为插入;②包括从关系表R_xxx删除的记录,标识为删除;③若向关系表R_xxx插入一条记录,经过若干步骤之后,再把此记录删除,则数据最小变动集中不得包括此记录;④对于更新操作,如果不更新记录主键,则数据最小变动集只包括更新后的记录;若更新主键,则数据最小变动集包括对更新前记录的删除操作和对更新后记录的插入操作。
全文摘要
一种在关系数据库中获取最小变动集的处理方法,本方法的步骤包括先记录数据修改过程中所有的修改内容,再获取数据最小变动集,最后,清除处理过程中所建立的关系表。根据本发明方法,在码分多址基站系统的操作维护商用数据库上建立获取基站系统配置数据最小变动集处理模块,同步服务器端由客户端设备控制,从该操作维护商用数据库取出基站系统配置数据最小变动集经套接字发送到实时数据库,明显提高了数据同步传送效率和节省基站设备中CPU接受变动的配置数据时间。
文档编号G06F17/00GK1426003SQ0113914
公开日2003年6月25日 申请日期2001年12月20日 优先权日2001年12月20日
发明者蒋新建 申请人:深圳市中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1