公开/公告号CN101499069A
专利类型发明专利
公开/公告日2009-08-05
原文格式PDF
申请/专利权人 中兴通讯股份有限公司;
申请/专利号CN200810007082.7
申请日2008-02-02
分类号G06F17/30(20060101);
代理机构11240 北京康信知识产权代理有限责任公司;
代理人尚志峰;吴孟秋
地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦
入库时间 2023-12-17 22:23:16
法律状态公告日
法律状态信息
法律状态
2019-01-18
未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20130605 终止日期:20180202 申请日:20080202
专利权的终止
2013-06-05
授权
授权
2009-09-30
实质审查的生效
实质审查的生效
2009-08-05
公开
公开
技术领域
本发明涉及通讯领域,尤其涉及一种内存数据库文件的更新方法及更新装置。
背景技术
近年来,电信和金融领域的主要应用已经变成数据密集型应用,数据库系统在其中扮演了重要的角色,数据是所有系统的核心,尤其对于通讯系统,数据的访问、存储和升级显得更为重要。
在通讯系统中,对实时性要求很高,传统的基于磁盘的关系数据库系统已远不能满足上述应用高性能、实时数据访问的要求,内存数据库系统则可以很好地满足各种应用系统的实时数据管理需求。所谓内存数据库,是指在系统内存中建立内存数据表,且对这些表数据建立索引和队列实现对数据的管理,并向应用层提供数据的查询、增加、删除和修改等访问接口。
然而,内存数据库一般都是厂家自己开发的,不支持标准的数据库接口标准及标准查询语句(Structured Query Language,SQL),对于版本升级中的数据库表增删、表字段增删、表字段属性修改等常见升级场景提供的手段较少,现在比较常用的方法有两种:
(1)完全人工做数据,这种方法对于版本间变化不大的情况下,如仅对个别字段的修改比较有效。但往往大版本的升级时修改非常大,这种方法就无能为力了;
(2)针对特定版本开发专用的升级程序,这种方法适用于修改范围比较大的情况,需要抽调专门的人力进行升级程序的开发,并且开发的升级工具只能适用于特定的两个版本之间的升级,下一次版本升级又需要另外开发升级工具,因此将耗费很大的人力物力。
然而,针对相关技术中内存数据库文件更新过程中工作量大、升级工具通用性差的问题,目前尚未提出有效的解决方案。
发明内容
考虑到上述问题而做出本发明,为此,本发明的主要目的在于提供一种内存数据库文件的更新方法及更新装置,以解决相关技术中内存数据库更新过程中工作量大、升级工具通用性差的问题,目前尚未提出有效的解决方案。
本发明提供了一种内存数据库文件的更新方法。
该方法包括:将待更新的内存数据库文件的结构与新版本内存数据库文件的结构进行比较,得到差异信息,根据差异信息确定待更新的内存数据库文件中待更新的数据库表和不需要更新的数据库表;根据差异信息对待更新的数据库表进行更新;以及根据更新后的数据库表与不需要更新的数据库表将待更新的内存数据库文件更新为新版本内存数据库文件。
其中,差异信息包括待更新的数据库表以及待更新的数据库表中的字段变化信息,其中,字段变化信息包括:变化的字段的名称,变化方式。变化方式包括:删除、类型改变、缺省值改变、增加、以及所增加的字段的来源。
本发明还提供了一种内存数据库文件的更新装置。
该装置包括:比较模块,用于将待更新的内存数据库文件的结构与预定的新版本的内存数据库文件的结构进行比较,得到差异信息,并根据差异信息得到待更新的内存数据库文件中待更新的数据库表和不需要更新的数据库表;更新执行模块,用于根据差异信息对待更新的数据库表进行更新;以及内存数据库表组合模块,用于根据更新后的数据库表与不需要更新的数据库表将待更新的内存数据库文件更新为新版本内存数据库文件。
其中,更新执行模块包括编写模块和执行模块,其中,编写模块用于将差异信息编写为执行模块能够执行的命令;执行模块用于执行命令,得到更新后的数据库表。
其中,编写模块采用标准查询语句编写命令。执行模块在指定数据库中执行命令。其中,指定数据库为商用数据库,商用数据库包括MS ACCESS。
差异信息包括待更新的数据库表以及待更新的数据库表中的字段变化信息,其中,字段变化信息包括:变化的字段的名称,变化方式。变化方式包括:删除字段、字段类型改变、字段缺省值改变、增加字段、以及所增加的字段的来源。
通过本发明的上述技术方案,能够有效提高内存数据库表版本升级的效率,且具有很好的扩展性和通用性,适用于任何版本间的升级;并且实现简单,操作方便。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明方法实施例的内存数据库文件的更新方法的流程图;
图2是根据本发明实施例的数据库表结构分析的示意图;
图3是根据本发明方法实施例的方法中内存数据库文件升级的流程图;以及
图4是是根据本发明装置实施例的内存数据库文件的更新装置的框图。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
方法实施例
在本实施例中,提供了一种内存数据库文件的更新方法。
如图1所示,根据本实施例的内存数据库文件的更新方法包括:步骤S102,将待更新的内存数据库文件的结构与新版本内存数据库文件的结构进行比较,得到差异信息,根据差异信息确定待更新的内存数据库文件中待更新的数据库表和不需要更新的数据库表;步骤S104,根据差异信息对待更新的数据库表进行更新;步骤S106,根据更新后的数据库表与不需要更新的数据库表将待更新的内存数据库文件更新为新版本内存数据库文件。
其中,差异信息包括待更新的数据库表以及待更新的数据库表中的字段变化信息,其中,字段变化信息包括:变化的字段的名称,变化方式。变化方式包括:删除、类型改变、缺省值改变、增加、以及所增加的字段的来源。
图2为数据表结构分析示意图。如图2所示,输入新旧版本的内存数据库表结构,通过对比分析,可以得出上述的差异信息,即,哪些表发生了变化,具体变化的字段信息(该字段是增加还是删除的,或者字段类型发生了改变,增加的字段来源于哪里,以及缺省值等)。同时确定了待更新的内存数据库文件中待更新的数据库表和不需要更新的数据库表。
以3G移动通讯系统无线控制器内存数据库表数据升级为例,假设旧版本(待更新的)的R_NODEB表结构如表1所示:
表1
新版本的R_NODEB表结构如表2所示:
表2
通过对新旧版本表结构对比分析得出如下结果,即,得到差异信息,如表3所示:
表3
由以上分析结构就可以编写对R_NODEB表数据的升级脚本,脚本语言采用(SOL)语言。表结构分析过程可以编写工具自动完成。
如图3所示,在实际应用当中对内存数据库文件进行升级的时候,具体可以包括以下步骤:
步骤S302,将待升级版本的数据导入到数据库中,例如MSACCESS数据库;
步骤S304,将新版本的变化表表结构导入到数据库中,此时需要注意的是,对于前面表结构分析出来的变化表,需要命名成临时表名,如果R_NODEB表表结构发生了变化,需要临时表命名为_R_NODEB,且表结构为新版本的表结构;
步骤S306,执行数据升级脚本,将前面对表结构分析后编写的升级脚本载入数据库执行,完成数据的升级过程;
步骤S308,执行完步骤S306以后,将数据导出生成内存表文件,新版本的数据即为无变化的表+变化表的集合。将这两类表的数据全部导出,按内存数据格式生成数据文件;
至此,内存数据库表数据升级完毕。
装置实施例
在本实施例中,提供了一种内存数据库文件的更新装置。
如图4所示,包括:比较模块402,用于将待更新的内存数据库文件的结构与预定的新版本的内存数据库文件的结构进行比较,得到差异信息,并根据差异信息得到待更新的内存数据库文件中待更新的数据库表和不需要更新的数据库表;更新执行模块404,用于根据差异信息对待更新的数据库表进行更新;以及内存数据库表组合模块406,用于根据更新后的数据库表与不需要更新的数据库表将待更新的内存数据库文件更新为新版本内存数据库文件。
更新执行模块包括编写模块4042和执行模块4044,其中,编写模块用于将差异信息编写为执行模块能够执行的命令;执行模块用于执行命令,得到更新后的数据库表。
其中,编写模块4042采用标准查询语句编写命令。执行模块4044在指定数据库中执行命令。其中,指定数据库可以为商用数据库,例如,可以是MS ACCESS。
差异信息包括待更新的数据库表以及待更新的数据库表中的字段变化信息,其中,字段变化信息包括:变化的字段的名称,变化方式。变化方式包括:删除字段、字段类型改变、字段缺省值改变、增加字段、以及所增加的字段的来源。
综上所述,借助于本发明的技术方案,能够有效提高内存数据库表版本升级的效率,且具有很好的扩展性和通用性,适用于任何版本间的升级;并且实现简单,操作方便。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 存储在非挥发性内存中的内存映射文件的异步原子更新方法及其控制装置
机译: 非易失性存储中存储的内存映射文件的原子更新方法及其控制装置
机译: 非易失性存储中存储的内存映射文件的原子更新方法及其控制装置