一种通用兼容性数据类型框架的实现方法与流程

文档序号:33705145发布日期:2023-03-31 21:17阅读:35来源:国知局
一种通用兼容性数据类型框架的实现方法与流程

1.本发明属于数据库管理系统技术领域,尤其涉及一种通用兼容性数据类型5框架的实现方法。


背景技术:

2.数据库兼容一直是数据库产品推广过程中难以避免的一个工作内容。由于数据库产品种类众多,当在存量市场中进行数据库产品替换时,都需要对原有
3.系统进行兼容性迁移,最大限度地保证对原有数据库系统的兼容正是兼容工作0的重点。
4.众所周知,数据类型是数据库使用的重要基础之一,它反映了数据的存储长度和精度,代表了数据的解码方式,表示了数据的类别和语义,正确使用数据类型是正确使用数据的重要前提,而数据库兼容工作的重点和难点之一就是
5.数据类型的兼容。由于数据库产品中存在大量数据类型,这些数据类型有时会5在不同的产品中使用同样的名称,但其精度和存储存在差别;与之相对的情况是,有些数据类型仅存在于某个数据库产品中,但其他数据库产品中则存在不同名称的相似类型或不支持该类型。正是基于这样的现状,导致在数据库兼容工作中必须对大量数据类型进行兼容性适配工作,否则就会导致存量系统无法
6.在新的数据库产品中正常使用,或者数据发生改变,进而影响业务的正确执行,0而目前使用的数据类型兼容性适配方法效率较低,且易导致数据类型冲突和数据类型不一致等问题的出现,因而无法满足数据库兼容工作对时效性和准确性的现实要求。


技术实现要素:

7.为了克服现有数据类型兼容性适配方法效率较低、且易导致数据类型冲突5和数据类型不一致的缺陷,本发明提供了一种解决方案。本发明针对数据库兼容工作中出现的数据类型适配任务,首次提出了一种通用兼容性数据类型框架,通过该框架可有效解决适配工作中极易出现的数据类型冲突和数据类型不一致等问题。
8.本发明框架解决上述技术问题的主要构思是通过在数据库的逻辑层面增5加一个适配模板的逻辑结构来实现对不同数据库产品的数据类型的适配。以写入数据和读取数据的过程为例,图1和图2分别展示了一般数据库产品的处理流程,由图1可以看出,写入数据流程为获取数据、获取数据类型、通过数据类型获取数据的编码方法,最终完成数据编码和存入;由图2可以看出,读取
9.数据流程为读取数据、获取数据类型、通过数据类型获取数据的解码方法,最0终完成数据解码和使用。本方法是在现有读写流程中获取数据类型之后加入一个适配模板层,如图3所示,使得之前数据类型与编码(解码)方法由一一对应的方式转变为一对多的方式,由此增加了数据类型编码(解码)方法选择的灵活度,进而可以满足兼容不同数据库产品数据类型的要求,本方法的逻辑结构如图4所示。
10.5具体而言,第一方面,本发明提供了一种通用兼容性数据类型框架的实现方法,本方法包括:
11.s1.获取外部数据或读取数据库内部数据;
12.s2.获取与上步所得数据相匹配的数据类型;
13.s3.对上步所得数据类型进行适配模板分析;
14.0s4.根据数据类型的适配模板分析结果获取数据的编码方法或解码方法;
15.s5.进行数据编码或解码;
16.s6.完成数据写入或使用。
17.进一步地,根据本发明的一些实施例,本发明通用兼容性数据类型框架的实现方法步骤s3中所述对上步所得数据类型进行适配模板分析,针对通过类5实现具体数据类型的数据库,包括:
18.s31.将数据类型类使用抽象策略类进行替换;
19.s32.将不同数据库下的数据类型通过具体策略类进行实现;
20.s33.在对数据类型进行适配模板分析时,根据数据类型的需求确定相应的具体策略类。
21.优选地,上述方法中所述通过类实现具体数据类型的数据库包括mysql数据库。
22.进一步地,根据本发明的另一些实施例,本发明通用兼容性数据类型框架的实现方法步骤s3中所述对上步所得数据类型进行适配模板分析,针对通过系统表配置实现具体数据类型的数据库,包括:
23.s310.创建用于适配不同数据库的模板数据库;
24.s320.在对数据类型进行适配模板分析时,在所述模板数据库中加载用于适配不同数据库的数据类型。
25.优选地,上述方法中所述通过系统表配置实现具体数据类型的数据库包括opengauss数据库。
26.第二方面,本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述的通用兼容性数据类型框架的实现方法的步骤。
27.综上,本发明首次提出了一种通用兼容性数据类型框架的实现方法,通过本方法可以在数据库中实现同一数据类型在不同处理方法间的灵活切换,且能够很大程度上避免在适配不同数据库产品的数据类型时容易出现的数据类型精度不一致、数据类型名称冲突、数据类型存储长度不一致等问题,从而为不同数据库产品间的数据类型的适配提供了一种切实可行的解决方案。
附图说明
28.为了更清楚地说明本发明实施例的技术方案,下面对本发明实施例中需要使用的附图作简要介绍,显而易见地,下述附图仅是本发明中记载的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为现有数据库产品的数据写入过程示意图。
30.图2为现有数据库产品的数据读取过程示意图。
31.图3为本发明方法的技术构思示意图。
32.图4为本发明方法的逻辑结构示意图。
33.图5为本发明方法的整体实施流程示意图。
34.图6为本发明方法在mysql数据库中的工作模式示意图。
具体实施方式
35.为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
36.同时,应理解,本发明的保护范围并不局限于下述特定的具体实施方案;还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。
37.实施例:一种通用兼容性数据类型框架的实现方法
38.如图5所示,本方法包括下述步骤:
39.s1.获取外部数据或读取数据库内部数据;
40.s2.获取与上步所得数据相匹配的数据类型;
41.s3.对上步所得数据类型进行适配模板分析;
42.s4.根据数据类型的适配模板分析结果获取数据的编码方法或解码方法;
43.s5.进行数据编码或解码;
44.s6.完成数据写入或使用。
45.本方法在具体实施过程中,需要根据不同的数据库产品的特性采用不同的实施方式。在此以两款数据类型实现框架不同的开源数据库产品为例进行说明。
46.mysql数据库产品。mysql数据库的数据类型是通过c++的类来实现的,数据类型的选择在语法器中进行,而数据类型的编解码方法则与类进行绑定,由此完成数据类型的处理。本发明框架在mysql这种通过类实现具体类型的数据库产品中,可以通过设计模式中的策略模式(strategy模式)进行实施,如图6所示,将数据类型类使用抽象策略类(图中的strategy类)进行替换,并将不同数据库产品下的数据类型通过具体策略类(图中的strategya、strategyb、strategyc类)进行实现,在对数据类型进行适配模板分析和处理时,根据不同的任务需求选择相应的具体策略类来实现数据类型的编解码方法的选择,以满足不同数据库产品间数据类型的适配需求。在本实施例中,抽象策略类在逻辑上即为本方法中所述的适配模板(层)。
47.opengauss数据库产品。opengauss数据库产品的数据类型是通过系统表配置来实现的,数据库产品从系统表中读取数据类型的名称、长度、输入函数和输出函数等信息,并通过相应的信息来完成数据类型的相关功能。在本发明框架内,可通过现有结构来实现适配模板的功能:即先创建用于适配不同数据库产品的模板数据库,在对数据类型进行适配模板分析和处理时,在模板数据库中加载用于适配不同数据库产品的数据类型。在本实施例中,模板数据库即为本方法中所述的适配模板(层)。
48.以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、替换等,均应包含在本发明的权利要求保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1