基于国产CPU环境的多类型数据库统一增量更新方法与流程

文档序号:14835369发布日期:2018-06-30 12:10阅读:317来源:国知局
基于国产CPU环境的多类型数据库统一增量更新方法与流程

本发明涉及数据库技术领域,具体涉及一种基于国产CPU环境的多类型数据库统一增量更新方法。



背景技术:

近年来,国家大力扶持具有自主知识产权的全国产软硬件的发展,涌现了以国产操作系统和CPU为代表的众多具有自主知识产权的基础软硬件产品。中标麒麟系统、深度操作系统等国产操作系统生态环境日趋完善,龙芯、飞腾等具有自主知识产权的高端通用芯片蓬勃发展,技术水平达到或接近同类产品的世界先进水平。

随着国产基础软硬件的蓬勃发展,国产基础软硬件的推广和使用带来了前所未有的机遇。数据库作为生态环境中重要的一环,基于国产操作系统和CPU的环境下涌现出了多种国产数据库。

目前基于国产CPU和操作系统的全国产环境下应用生态日益完善,数据库领域涌现了多种类型数据库,包括神通数据库、金仓数据库、达梦数据库等。在全国产环境下WEB应用系统需要支持神通、达梦、金仓等多种国产数据库,以满足不同客户的需求。日常WEB应用系统迭代开发过程中,需要频繁的修改系统关联的数据库。

不同数据库间存在关键字不统一、支持的数据类型也不完全一致、SQL语句语法格式不一致、自带的函数不相同等问题。

一般的数据库开发流程为开发人员编写各种数据库的SQL语句并分别连接数据库测试,SQL测试通过后整理汇总到SQL文件中并提交SVN等版本控制系统,供开发人员间共享文件及方便后续发包人员获取升级文件。

开发人员需要学习并掌握各种国产数据库的SQL语法,针对不同数据库上编写对应的SQL语句并进行测试,并向版本控制系统提交各种数据库对应的SQL文件,供开发人员间共享文件及方便后续发包人员获取升级文件。

另外项目组开发成员的编程风格差异和数据库操作语句SQL的灵活性,导致SQL写法各异、SQL规范性较差,后续开发维护及问题定位困难。

发包人员需要从版本控制系统检出不同数据库对应的SQL文件,根据要发送的需求编号整理SQL文件并打包发给现场升级人员, 需要SQL执行顺序的正确性。现场升级人员需要提前备份每个待升级数据库,根据数据库类型,选择要执行的SQL并关注每条SQL执行结果。

另外开发人员还需要关注SQL语句执行顺序的正确性等。如果将升级数据库的SQL汇总到文件中,随着时间的推移,易出现文件目录复杂的问题,SQL文件不方便浏览和信息查找,增加了开发人员的维护、发包人员数据库更新文件的打包和升级人员的问题定位的困难。

当项目现场需要一次升级多个需求或者升级历史需求时,数据库文件检出繁琐、数据库文件整理易出错。后续项目需要支持新的数据库时,为了保证功能的完整性,需要开发人员学习并掌握新的数据库语法格式等,为新数据库增加新的SQL文件目录,修改历史SQL适配新的数据库,将修改后的SQL文件放到新增的SQL文件目录下。

另外将SQL汇总到文件中目录复杂,SQL文件不方便浏览和信息查找,增加了后续维护及问题定位的困难。一次性更新大量需求时,数据库改动较大,需要维护大量的SQL文件,由于SQL数量多、SQL关联性强,SQL文件整理极其复杂。

当批量更新需求时,需求编号集合关联的SQL文件多,数据库改动大, SQL依赖及关联性强,SQL文件整理极其复杂、易出错。当某个历史需求存在BUG被REOPEN时或者之前漏更某个模块时,需要向项目发送历史需求。由于难以通过SQL文件查看某个数据库表的历史需求修改,当更新历史需求集合时,易出现漏更或者出现旧数据库表结构、旧表数据等错误覆盖项目现场表结构及数据。



技术实现要素:

本发明要解决的技术问题是:本发明针对以上问题,提供一种基于国产CPU环境的多类型数据库统一增量更新方法。

通过应用数据库增量更新方法,开发人员只需要按照提交规范修改数据库XML文件,不再需要关注各种数据库SQL语法、维护复杂的SQL目录。通过使用XML数据库文件,增加了升级文件的可读性、维护性,通过数据库XML文件可以方便的查看某个数据库元素的全部的历史变更。后续数据库升级文件打包,方法根据需求编号集合自动检出并处理数据库XML文件并自动打包,现场升级人员只需获取升级包,使用方法提供的管理平台,输入数据库信息并选择升级包文件,方法自动备份数据库,分析XML文件并生成符合待升级数据库语法的SQL语句,实现数据库增量更新,简化了升级过程,升级出现问题时可根据备份文件自动恢复。

本发明所采用的技术方案为:

基于国产CPU环境的多类型数据库统一增量更新方法,所述方法根据输入的数据库信息,包括IP地址、端口号、实例名、用户名、密码,连接基准数据库,导出通用的数据库XML描述文件,作为基准XML数据库描述文件,记录了数据库的表、数据、视图;

在此基准XML数据库描述文件上进行修改,完成对数据库的增量更新。

所述方法内容还包括:

基于基准XML数据库描述文件完成对其他数据库的部署、阶段更新、按照需求编号集合更新。

所述数据库XML描述文件分目录按模块组织数据库表结构、表数据、视图,包括目录存放类型转换文件、模块定义文件、模块文件、视图文件,其中:

目录存放类型转换文件中定义了国产数据库数据类型和XML数据库类型的转换关系,屏蔽不同数据库的数据类型差异;

模块定义文件定义了模块与数据库的表的对应关系,方法可以根据此文件生成各个模块目录,分别存放每个模块下的表及数据;

模块文件包括该模块相关的表结构XML文件及表数据XML文件;

每个模块下的表结构XML文件中包含该模块相关的所有表信息。

所述数据库的表作为一个XML元素,其中表名、表备注信息存储在XML元素的属性值中,表字段、表索引、表约束作为XML元素的子元素,记录了表基本信息、表字段信息、表索引信息、主键外键表约束信息,其中:

表字段信息记录了表的字段名、字段类型、是否空、默认值,每个信息作为该字段元素的一个属性;

表索引信息记录了表上的索引信息,包括索引名、索引字段;

主键表约束信息记录了表上主键信息,每个主键的名称、字段;

外键表约束信息记录了每个外键的名称、字段及关联的表名、字段名。

所述方法在XML元素中支持“修改类型”、“需求编号”、“历史需求”、“关联需求”、“序列号”属性值,通过在表字段信息、表索引信息、主键外键表约束信息的元素下增加子元素,进一步记录表结构的修改;

每个子元素对应一次修改操作,用于记录一次数据库表结构变更。

所述表数据XML文件,记录了表中的数据操作,表数据修改支持插入、删除、更新操作,其中:

每个XML元素记录了一个数据更新操作,一个数据更新操作能够针对修改数据库一条记录或者多条记录。

所述方法还包括:

XML文件修改规范,表数据、表结构按照约定的XML文件修改规范修改。

所述表数据、表结构的修改通过确认待修改的表或数据所在的模块,在该模块目录下修改表结构文件或表数据库文件;针对每个修改,XML元素需要增加“修改类型”、“需求编号”、“关联需求编号”、“版本号”,其中:

修改类型支持add、alter、delete,描述了对该XML元素的修改类型;

需求编号记录了本次修改对应的需求编号,便于后期根据需求编号获取XML文件中XML元素的修改;

开发人员修改完毕后,将修改后的数据库XML文件提交到版本控制系统。

所述方法通过表数据XML文件语法正确性测试及XML元素修改规范性测,测试表数据XML文件的正确性。

所述方法还包括数据库的升级,内容包括:

根据输入的需求编号集合,首先分析XML数据库文件,逐个校验XML文件的正确性,依次分析XML文件中的XML元素,校验是否符合XML修改规范;

逐个分析每个XML文件,根据需求编号集合查找XML修改内容,保留XML文件中的修改内容,删掉没有修改的XML元素;

将XML描述XML文件打包成数据库升级包。

本发明的有益效果为:

本发明方法简化开发人员数据库维护操作并提升SQL的规范性:开发人员无需关注具体的数据库,只需要按照修改规范修改XML文件,并提交管控平台。后续项目需要支持一个新的国产数据库时,只需增加适配新数据库,开发人员无需关注新的数据库SQL语法。相对开发人员提交的SQL,工具根据XML数据库文件生成的SQL更加规范。

简化打包发包流程:发包人员和升级人员无需关注复杂的SQL目录,整理汇总需求相关的SQL语句。根据要检出的需求编号,自动从SVN等版本控制系统检出数据库XML文件,逐个分析XML文件,获取数据库修改内容,打包成数据库升级包,发送升级包给项目实施人员。

简化实施升级数据库的流程:实施人员在本发明提供的管理平台输入数据库信息并选择升级包,自动远程备份数据库,根据要升级的数据库类型,自动生成并依次执行SQL语句,并记录升级详细日志,方便问题定位以及对失败进行修复,避免手动升级过程中出现的问题。

附图说明

图1为表结构xsd模型结构图;

图2为表字段xsd模型结构图;

图3为表主键xsd模型结构图;

图4为表索引xsd模型结构图;

图5为表外键xsd模型结构图;

图6为视图xsd模型结构图;

图7为表数据xsd模型结构图;

图8为表修改xsd模型结构图(以对PUB_OPERATION_TYPE表操作为例);

其中,xsd,XML Schema语言,描述了XML文档的结构。

具体实施方式

下面根据说明书附图,结合具体实施方式对本发明进一步说明:

基于国产CPU环境的多类型数据库统一增量更新方法,所述方法根据输入的数据库信息,包括IP地址、端口号、实例名、用户名、密码,连接基准数据库,导出通用的数据库XML描述文件,作为基准XML数据库描述文件,记录了数据库的表、数据、视图等。

开发人员后续在此基准XML数据库描述文件上进行修改,完成对数据库的增量更新。

所述方法内容还包括:

基于基准XML数据库描述文件完成对其他数据库的部署、阶段更新、按照需求编号集合更新等。

如图1、6所示,所述数据库XML描述文件分目录按模块组织数据库表结构、表数据、视图,包括目录存放类型转换文件、模块定义文件、模块文件、视图文件,其中:

目录存放类型转换文件中定义了国产数据库数据类型和XML数据库类型的转换关系,屏蔽不同数据库的数据类型差异;

模块定义文件定义了模块与数据库的表的对应关系,方法可以根据此文件生成各个模块目录,分别存放每个模块下的表及数据;

模块文件包括该模块相关的表结构XML文件及表数据XML文件;

每个模块下的表结构XML文件中包含该模块相关的所有表信息。

所述数据库的表作为一个XML元素,其中表名、表备注等信息存储在XML元素的属性值中,表字段、表索引、表约束等作为XML元素的子元素,记录了表基本信息、表字段信息、表索引信息、主键外键等表约束信息,其中:

如图2所示,表字段信息记录了表的字段名、字段类型、是否空、默认值等,每个信息作为该字段元素的一个属性;

如图4所示,表索引信息记录了表上的索引信息,包括索引名、索引字段等;

如图3所示,主键表约束信息记录了表上主键信息,每个主键的名称、字段;

如图5所示,外键表约束信息记录了每个外键的名称、字段及关联的表名、字段名。

所述方法在XML元素中支持“修改类型”、“需求编号”、“历史需求”、“关联需求”、“序列号”等属性值,通过在表字段信息、表索引信息、主键外键表约束信息的元素下增加子元素,进一步记录表结构的修改;

每个子元素对应一次修改操作,用于记录一次数据库表结构变更。

所述表数据XML文件,记录了表中的数据操作,表数据修改支持插入、删除、更新等操作,其中:

每个XML元素记录了一个数据更新操作,一个数据更新操作能够针对修改数据库一条记录或者多条记录。

XML元素属性中存放待更新字段,where子元素属性中存放条件字段。字段支持多种写法类型,包括最基本的“字段名”=“字段值”类型,同时支持子查询类型、SQL语句类型等,支持“between and”、“ not null”、“in”等语法。序列号用于保证SQL的执行顺序。

如图8所示,所述方法还包括:

XML文件修改规范,表数据、表结构按照约定的XML文件修改规范修改。

所述表数据、表结构的修改通过确认待修改的表或数据所在的模块,在该模块目录下修改表结构文件或表数据库文件;针对每个修改,XML元素需要增加“修改类型”、“需求编号”、“关联需求编号”、“版本号”等属性,其中:

修改类型支持add、alter、delete等关键字,描述了对该XML元素的修改类型;每种元素支持多种修改类型,如数据库的创建,用户的创建,表的新增、重命名、删除等,表字段的新增、删除、重命名、类型修改,视图的新增、修改、删除,索引的新增、修改、删除,约束的新增、修改、删除等;

需求编号记录了本次修改对应的需求编号,便于后期根据需求编号获取XML文件中XML元素的修改;

开发人员修改完毕后,将修改后的数据库XML文件提交到SVN等版本控制系统。

所述方法通过表数据XML文件语法正确性测试及XML元素修改规范性测,测试表数据XML文件的正确性。

通过使用方法提供管理平台,开发人员可测试XML文件的正确性、预览基于XML生成的SQL、连接测试库执行SQL验证。XML正确性测试包括表数据XML文件语法正确性测试及XML元素修改规范性测试。根据数据库类型及需求编号集合,方法可以根据数据库XML文件生成的SQL语句,开发人员可以预览方法自动生成的SQL集合。方法可连接测试库,执行每条SQL语句并依次返回每条SQL运行有无错误。

所述方法还包括数据库的升级,内容包括:

根据输入的需求编号集合,首先分析XML数据库文件,逐个校验XML文件的正确性,依次分析XML文件中的XML元素,校验是否符合XML修改规范;

逐个分析每个XML文件,根据需求编号集合查找XML修改内容,保留XML文件中的修改内容,删掉没有修改的XML元素;

将XML描述XML文件打包成数据库升级包,将数据库升级包发送到项目现场。

另外发包人员也可以在管理平台上进行升级包测试。在管理平台上输入测试数据库信息,方法连接测试库,自动生成SQL,在测试环境测试。

实施人员获取数据库升级包文件,获取项目现场升级人员输入的数据库信息和升级包文件路径,首先连接数据库所在的远程机器并执行脚本文件备份数据库,依次分析XML数据库文件,生成符合对应数据库类型的SQL语句,SQL语句、执行结果、执行过程等记录在日志文件中,并记录数据库升级日期、升级需求编号及数据库更改信息,便于问题定位,避免遗漏更新等问题;根据XML元素中“序列号”属性及内置的算法,保证SQL执行顺序的正确性;升级失败时(比如网络连接失败),支持通过备份文件,对失败进行修复。

实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1