一种基于国产CPU的数据库兼容方法与流程

文档序号:29121610发布日期:2022-03-04 22:21阅读:123来源:国知局
一种基于国产cpu的数据库兼容方法
技术领域
:1.本发明涉及国产软硬件适配
技术领域
:,特别涉及一种基于国产cpu的数据库兼容方法。
背景技术
::2.近年来,具有自主知识产权的全国产软硬件有了较快的发展,涌现出众多具有自主知识产权的基础软硬件产品。龙芯、飞腾、北大众志等具有自主知识产权的高端通用芯片蓬勃发展,技术水平达到了同类产品的世界先进水平。3.与此同时国产基础软件产品的发展也欣欣向荣,神通数据库、金仓数据库、达梦数据库等国产基础软件产品不断涌现出来。这些基础软硬件产品在性能、易用性等方面均已达到或接近世界先进水平。4.国产基础软硬件的蓬勃的发展,给国产基础软硬件的推广和使用带来了前所未有的机遇。另外基于国产软硬件的安全可靠性,在政府、军工等重要领域,更换国产软硬件,已经势在必行。5.基于全国产环境下的应用系统已经在很多地区投入使用,从使用效果上看国产软硬件已经完全可以替代国外主流软硬件。目前全国产环境下应用系统已经能够很好地集成上述数据库并且完全符合国家标准,但是在不同数据库之间还是存在部分差异导致应用出错,需要基于不同的数据库做应用适配修改存在一定的局限性。6.为了进一步提高国产软件产品多数据库兼容的能力,满足不同企业的要求,在应用软件设计时需要兼顾数据库的兼容性和可移植性,本发明提出了一种基于国产cpu的数据库兼容方法。技术实现要素:7.本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于国产cpu的数据库兼容方法。8.本发明是通过如下技术方案实现的:9.一种基于国产cpu的数据库兼容方法,其特征在于,包括以下步骤:10.第一步,基于数据库转换服务实现不同种类数据库之间语法兼容和协议兼容,通过数据库转换服务建立应用与数据库之间的连接;11.第二步,对数据库进行操作时,基于数据库转换服务针对应用发送的请求和请求数据库的协议包进行解析、分析、组装后发送返回给请求,即可操作数据库实现应用对数据的操作。12.所述数据库转换服务的集成方式为先启动数据库转换服务,然后为需要集成转换服务的应用配置所需的服务参数信息,引入数据库转换服务提供的数据包后,应用即可通过数据库转换服务去访问数据库。13.所述服务参数信息包括url(uniformresourcelocator,统一资源定位符)、driverclassname(驱动程序类名称)、username(用户名)以及password(口令)。14.所述第二步中,对目标数据库进行操作时,数据库转换服务接收目标数据库的服务端的返回数据和数据库协议包,并进行解析、分析、组装,返回给请求数据库的应用,实现流程如下:15.(1)数据库转换服务获取到应用的数据库操作语言,通过服务调用数据查询模块dqlm或者数据操纵模块dmlm进行语法解析;16.(2)将关键字和数据按照目标数据库的语法规则定义进行组装,获取对目标数据库的数据库操作信息;17.(3)将目标数据库的数据库操作按照目标数据库的协议进行封装,获取目标数据库的数据库协议应用层数据包;18.(4)数据库执行语法并返回执行结果。19.所述步骤(1)中,应用发送请求到数据库转换服务端,根据请求数据库的协议包获取协议中封装的数据,从而获取请求数据库的数据库操作,请求数据库语义分析,根据请求数据库的语法规则定义生成词法分析器和语法分析器,获取数据库操作中的关键字和数据。20.所述数据库转换服务通过数据查询模块dqlm与数据操纵模块dmlm针对数据库操作语句类型进行分模块兼容处理;所述数据查询模块dqlm将目标数据库不支持的函数替换为目标数据库兼容的函数,所述数据操纵模块dmlm根据目标数据库定制相匹配兼容的操作字段。21.所述数据查询模块dqlm对传入的参数和数据库类型调用函数进行兼容处理,用目标数据库兼容的函数替换目标数据库不支持的函数,根据客户端传递的sql语句和数据库类型进入到数据库操纵模块进行处理,输出当前适配数据库的sql语言进行数据库处理。22.所述数据操纵模块dmlm对目标数据库的操作字段进行匹配处理,根据客户端传递的sql语句和数据库类型进入到数据库操纵模块进行处理,输出当前适配数据库的sql语言进行数据库处理。23.本发明的有益效果是:该基于国产cpu的数据库兼容方法,解决了基于不同数据库开发的应用产品兼容已知的各种数据库的差异性问题,能够在不需要改造应用的前提下实现完美兼容,实现了国产环境下数据库的自由切换,降低了运维成本和改造成本,适宜推广应用。附图说明24.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。25.附图1为本发明数据库转换服务结构示意图。26.附图2为本发明前后台交互流程示意图。27.附图3为本发明数据库转换服务器工作原理示意图。具体实施方式28.为了使本
技术领域
:的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。29.由于不同数据库(例如神通、金仓、达梦、金蝶、oracle、mysql等数据库)中内置函数库,系统表,sql语法不同,使基于不同数据库开发的应用产品在不需要改造的情况下兼容已知的各种数据库差异性问题,成为亟待解决的难题。30.该基于国产cpu的数据库兼容方法,包括以下步骤:31.第一步,基于数据库转换服务实现不同种类数据库之间语法兼容和协议兼容,通过数据库转换服务建立应用与数据库之间的连接;32.第二步,对数据库进行操作时,基于数据库转换服务针对应用发送的请求和请求数据库的协议包进行解析、分析、组装后发送返回给请求,即可操作数据库实现应用对数据的操作。33.所述数据库转换服务的集成方式为先启动数据库转换服务,然后为需要集成转换服务的应用配置所需的服务参数信息,引入数据库转换服务提供的数据包后,应用即可通过数据库转换服务去访问数据库。34.所述服务参数信息包括url(uniformresourcelocator,统一资源定位符)、driverclassname(驱动程序类名称)、username(用户名)以及password(口令)。35.所述第二步中,对目标数据库进行操作时,数据库转换服务接收目标数据库的服务端的返回数据和数据库协议包,并进行解析、分析、组装,返回给请求数据库的应用,实现流程如下:36.(1)数据库转换服务获取到应用的数据库操作语言,通过服务调用数据查询模块dqlm或者数据操纵模块dmlm进行语法解析;37.(2)将关键字和数据按照目标数据库的语法规则定义进行组装,获取对目标数据库的数据库操作信息;38.(3)将目标数据库的数据库操作按照目标数据库的协议进行封装,获取目标数据库的数据库协议应用层数据包;39.(4)数据库执行语法并返回执行结果。40.所述步骤(1)中,应用发送请求到数据库转换服务端,根据请求数据库的协议包获取协议中封装的数据,从而获取请求数据库的数据库操作,请求数据库语义分析,根据请求数据库的语法规则定义生成词法分析器和语法分析器,获取数据库操作中的关键字和数据。41.所述数据库转换服务通过数据查询模块dqlm与数据操纵模块dmlm针对数据库操作语句类型进行分模块兼容处理;所述数据查询模块dqlm将目标数据库不支持的函数替换为目标数据库兼容的函数,所述数据操纵模块dmlm根据目标数据库定制相匹配兼容的操作字段。42.所述数据查询模块dqlm对传入的参数和数据库类型调用函数进行兼容处理,用目标数据库兼容的函数替换目标数据库不支持的函数,根据客户端传递的sql语句和数据库类型进入到数据库操纵模块进行处理,输出当前适配数据库的sql语言进行数据库处理。43.例如:对于数据查询模块兼容性处理在达梦数据库中不支持data_sub函数,数据查询模块对客户端传入的参数和数据库类型进行调用data_sub函数兼容处理方式,将data_sub函数替换为dateadd(datepart,n,date)函数。44.所述数据操纵模块dmlm对目标数据库的操作字段进行匹配处理,根据客户端传递的sql语句和数据库类型进入到数据库操纵模块进行处理,输出当前适配数据库的sql语言进行数据库处理。45.例如:对于神通数据库对字段进行操作使用的是:altertablexx(表名)modifyxx(字段)xx(修改后的类型),但对于金仓数据库的处理方式是:altertablexx(表名)altercolumnxx(字段)typexx(修改后的类型)。46.以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1