一种多类型数据库适配方法、装置、电子设备及存储介质与流程

文档序号:17889875发布日期:2019-06-13 15:30阅读:139来源:国知局
一种多类型数据库适配方法、装置、电子设备及存储介质与流程

本申请涉及区块链技术领域,特别涉及一种多类型数据库适配方法、装置、电子设备及计算机可读存储介质。



背景技术:

由于区块链技术所具有的去中心化和不可删除的特性,使得区块链技术非常适合用来存储数据量大但每个数据的体积都较小的重要数据,例如比特币网络中就将区块链技术作为记录比特币交易的账本来存储交易数据。

随着区块链技术的发展和比特币的火热,陆续出现了多种不同类型的区块链,每一个区块链设备将作为组成该区块链网络的一个节点存在,来存储该区块链中存储的数据。

不同类型或不同目的的区块链网络往往出于防止与其它数据冲突的考虑,要求属于其的节点设备使用特定类型的数据库来响应与之配套的操作指令。当节点设备中未安装要求类型的数据库时,用户只能再安装这个数据库。有时某台节点设备可能会同时作为不同区块链网络的节点设备存在,就会导致其设备中可能需要安装多种类型的数据库,这种情况不仅会带来用户的反感,且会极大的占用性能较差的设备中的剩余计算资源。

因此,如何克服现有技术中必须使用与所属区块链网络配套的特定类型数据来实现数据的存储的方式中存在的技术缺陷,是本领域技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种多类型数据库适配方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术必须使用与所属区块链网络配套的特定类型数据来存储数据方式中存在的通用性较差、用户使用体检较差的问题。

为实现上述目的,本申请提供了一种多类型数据库适配方法,包括:

接收区块链网络下发的第一类型的操作指令;

检测实际安装于当前区块链节点设备中的数据库的类型,确定与所述数据库的类型相适应的操作指令的类型为第二类型;

通过预设的多类型数据库适配规则将所述第一类型的操作指令转换为第二类型的操作指令;其中,所述多类型数据库适配规则包括每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系;

通过所述第二类型的操作指令对所述数据库进行相应的操作。

可选的,在接收目标区块链网络下发的第一类型的操作指令之前,还包括:

获取各类型数据库中表示相同功能的第二类型的操作指令;

根据各所述第二类型的操作指令中的相同或相似部分生成表示相同功能的第一类型的操作指令;

建立每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系,并根据各所述对应关系生成所述多类型数据库适配规则。

可选的,该多类型数据库适配方法还包括:

当实际安装于所述当前区块链节点设备中的数据库的类型数大于1时,将任意选取出的一种数据库的类型作为实际数据库类型。

可选的,将任意选取出的一种数据库的类型作为实际数据库类型,包括:

分别计算每种类型的数据库对应的操作指令与所述第一类型的操作指令间的指令相似度;

将拥有最高指令相似度的数据库的类型选作所述实际数据库类型。

可选的,该多类型数据库适配方法还包括:

将所述数据库返回的信息的格式通过所述多类型数据库适配规则转换为可被所述目标区块链网络识别的格式。

为实现上述目的,本申请还提供了一种多类型数据库适配装置,该装置包括:

第一类型操作指令接收单元,用于接收区块链网络下发的第一类型的操作指令;

第二类型操作指令确定单元,用于检测实际安装于当前区块链节点设备中的数据库的类型,确定与所述数据库的类型相适应的操作指令的类型为第二类型;

操作指令类型转换单元,用于通过预设的多类型数据库适配规则将所述第一类型的操作指令转换为第二类型的操作指令;其中,所述多类型数据库适配规则包括每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系;

转换后操作指令执行单元,用于通过所述第二类型的操作指令对所述数据库进行相应的操作。

可选的,该多类型数据库适配装置还包括:

各第二类型操作指令获取单元,用于在接收目标区块链网络下发的标准操作指令之前,获取各类型数据库中表示相同功能的第二类型的操作指令;

第一类型操作指令生成单元,用于根据各所述第二类型的操作指令中的相同或相似部分生成表示相同功能的第一类型的操作指令;

对应关系建立及适配规则生成单元,用于建立每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系,并根据各所述对应关系生成所述多类型数据库适配规则。

可选的,该多类型数据库适配装置还包括:

实际数据库类型选取单元,用于当实际安装于所述当前区块链节点设备中的数据库的类型数大于1时,将任意选取出的一种数据库的类型作为实际数据库类型。

可选的,所述多类型实际数据库选取单元包括:

指令相似度计算子单元,用于分别计算每种类型的数据库对应的操作指令与所述第一类型的操作指令间的指令相似度;

最高指令相似度数据库类型选取子单元,用于将拥有最高指令相似度的数据库的类型选作所述实际数据库类型。

可选的,该多类型数据库适配装置还包括:

返回信息格式转换单元,用于将所述数据库返回的信息的格式通过所述多类型数据库适配规则转换为可被所述目标区块链网络识别的格式。

为实现上述目的,本申请还进一步提供了一种电子设备,所述电子设备包括存储器、处理器以及总线,所述存储器上存储有可在所述处理器上运行的多类型实际数据库适配程序,所述多类型实际数据库适配程序被所述总线传输至所述处理器,并在被所述处理器执行时实现如上述内容所描述的多类型实际数据库适配方法。

为实现上述目的,本申请还进一步提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有多类型实际数据库适配程序,所述多类型实际数据库适配程序可被一个或者多个处理器执行,以实现如上述内容所描述的多类型实际数据库适配方法。

显然,本申请所提供的技术方案,利用包含有每种功能的第一类型的操作指令(标准操作指令)与各类型数据库相同功能的第二类型的操作指令(实际操作指令)间的对应关系的多类型数据库适配规则,将目标区块链网络发来的第一类型的操作指令(标准操作指令)转换为对应实际数据库的第二类型的操作指令(实际操作指令),使得原先可能无法处理这一格式的数据库也能够根据转换后的实际操作指令来进行相应的操作,使得用户无需因数据库类型不匹配再重新通过复杂的安装过程来安装特定类型的数据库,增加了数据库的通用性,提升了用户体验。本申请同时还提供了一种多类型数据库适配装置、电子设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种多类型数据库适配方法的流程图;

图2为本申请实施例提供的一种专用适配规则的对应关系的示意图;

图3为本申请实施例提供的一种通用适配规则的对应关系的示意图;

图4为本申请实施例提供的一种标准操作指令生成方法的流程图;

图5为本申请实施例提供的多类型数据库适配方法中一种在多类型实际数据库选取方法的流程图;

图6为本申请实施例提供的一种多类型数据适配装置的结构框图;

图7为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

实施例一

请参见图1,图1为本申请实施例提供的一种多类型数据库适配方法的流程图,其包括以下步骤:

s101:接收区块链网络下发的第一类型的操作指令;

接收到区块链网络下发的操作指令(本发明中称为标准操作指令)后,确定操作指令的类型,其中第一类型可以指代任意一种类型,第一类型的操作指令可以为一种与现有类型的数据库对应的操作指令,也可以为一种自定义的操作指令。

s102:检测实际安装于当前区块链节点设备中的数据库的类型,确定与数据库的类型相适应的操作指令的类型为第二类型;

确定实际安装于当前区块链节点设备中的数据库的类型,可以检测到的数据库的类型称之为实际数据库类型,并将与实际数据库类型相适应的操作指令的类型确定为第二类型(相对于区块链网络下发的被称为标准操作指令,此处的第二类型的操作指令可被称为实际操作指令),以便于实现操作指令类型的转换,这是因为在第一类型与第二类型在相同功能的指令上不同时,区块链网络无法识别区块链节点所使用的第二类型的操作指令,而区块链节点在未安装与第一类型的操作指令相适应的数据库之前也无法识别其接收到的第一类型的操作指令。

进一步的,若当前区块链节点设备上实际安装有多种类型的数据库,还可以根据实际情况挑选出其中一种最合适的作为实际数据库类型,并将与该实际数据库类型对应的操作指令确定为第二类型。具体方式可以根据每种类型的操作指令在描述相同功能上与第一类型的操作指令间的相似度、所有可能存在的特殊要求等等,此处并不做具体限定。

s103:通过预设的多类型数据库适配规则将第一类型的操作指令转换为第二类型的操作指令;

在s102的基础上,本步骤旨在通过预设的多类型数据库适配规则将操作指令完成从第一类型至第二类型的转换(标准操作指令至实际操作指令的转换),以使当前区块链节点设备能够在不专门安装特定类型的数据库的前提下根据转换后的操作指令完成区块链网络下发的任务和相关操作。其中,多类型数据库适配规则包括每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系。

其中,根据第一类型的操作指令是否为现有某一类型的操作指令,该适配规则还可以具体表现为如图2所示的专用适配规则或如图3所示的通用适配规则。

图2对应于第一类型的操作为现有某一类型的操作指令的适配规则表现形式,即为要求使用某种类型的数据库的区块链网络提供了一种专用适配规则,假定a区块链网络要求使用与x类的数据库对应的t类操作指令,则此种情况下相同于提供了一种能够将t类操作指令转换为可被多种其它类型的数据库识别的操作指令转换规则,即针对性的为a区块链网络提供了一种专用适配规则,使得作为a区块链网络的节点设备中不再必须安装有x类的数据库才能正常的处理来自a区块链网络的t类操作指令。但此种情况下,一旦更换为要求使用非x类数据库的其它区块链网络时,还需要提供适配非x类数据库对应的操作指令类型与其它操作指令类型间的适配规则。

考虑到在使用专用适配规则时需要分别每一个类型的数据库创建与其它类型数据库间的专用指令转换规则,比较麻烦且管理负责,还可以根据现有多种类型的数据库分别使用的操作指令类型生成一种新的操作指令作为标准操作指令,在所有区块链网络都应用该标准区块链网络时,只需要提供根据该标准操作指令与其它类型的操作指令间的对应关系创建得到的通用适配规则即可(此种方式形成的通用适配规则中包含的对应关系可参见图3)。换句话说,此时的标准操作指令是根据多种现有类型的操作指令(分别对应于每种类型的数据库)进行处理后得到的,处理过程也就是建立对应关系的过程,也就是说此时的标准操作指令将作为一个上层的操作指令向具体区块链节点设备发送操作指令,通用适配规则通过内部包含的对应关系将其变更为与实际数据库的类型对应的实际操作指令,进而实现更高的通用性。

在按照通用适配规则的方式生成标准操作指令的情况下,由于并不存在一个能够在不经过转换就直接处理标准操作指令的数据库,也就是说单纯的标准操作指令将不具有任何意义,只是作为对应关系中用于确定目标操作指令的源操作指令使用,因此可以尽可能的缩短其长度,减少数据传输过程中耗费的流量,增加信息交互效率。

s104:通过第二类型的操作指令对数据库进行相应的操作。

本实施例利用包含有每种功能的第一类型的操作指令(标准操作指令)与各类型数据库相同功能的第二类型的操作指令(实际操作指令)间的对应关系的多类型数据库适配规则,将目标区块链网络发来的第一类型的操作指令(标准操作指令)转换为对应实际数据库的第二类型的操作指令(实际操作指令),使得原先可能无法处理这一格式的数据库也能够根据转换后的实际操作指令来进行相应的操作,使得用户无需因数据库类型不匹配再重新通过复杂的安装过程来安装特定类型的数据库,增加了数据库的通用性,提升了用户体验。

实施例二

请参见图4,图4为本申请实施例提供的一种通用适配规则生成方法的流程图,在实施例一的基础上,本实施例旨在提供一种通用适配规则的生成方法,无需向每种类型的数据库提供各自专用的适配规则,包括如下步骤:

s201:获取各类型数据库中表示相同功能的第二类型的操作指令;

s202:根据各第二类型的操作指令中的相同或相似部分生成表示相同功能的第一类型的操作指令;

为了能够使得第一类型的操作指令(标准操作指令)与当前已有的数据库类型对应的第二类型的操作指令关联性更强,因此本实施例将根据各第二类型的操作指令中的相同或相似部分来生成表示相同功能的第一类型的操作指令(标准操作指令)。

s203:建立每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系,并根据各对应关系生成多类型数据库适配规则。

在s202的基础上,可以很轻易的根据寻找相同点的过程建立对应关系,并根据各对应关系生成通用适配规则。

在采用通用适配规则的方式下,首先需要确定一个更加上位的、更富有通用性的操作指令类型,具体可以选用原有的一种,也可以自行创建,在采用自行创建时,可以按照不同的方式结合每种已有的操作指令中关键词的位置或含义来创建,且由于自行创建方式下现有各种类型的数据库无法直接处理自行创建得到的标准操作指令,也就是说单纯的标准操作指令将不具有任何意义,只是作为对应关系中用于确定目标操作指令的源操作指令使用,因此可以尽可能的缩短其长度,减少数据传输过程中耗费的流量,增加信息交互效率。

实施例三

请参见图5,图5为本申请实施例提供的多类型数据库适配方法中一种在多类型实际数据库选取方法的流程图,在上述各实施例的基础上,本实施例针对当前区块链节点中安装有多种类型的数据库的场景给出一种确定实际类型的方法,包括如下步骤:

s301:分别计算每种类型的数据库对应的操作指令与第一类型的操作指令间的指令相似度;

s302:将拥有最高指令相似度的数据库的类型选作实际数据库类型。

指令相似度表示不同类型的数据库在表示相同功能的操作指令时各自实际操作指令间的差异,相似度越高,意味着这两种类型的数据的差异越小,在实际操作过程中指令的执行方式耦合度越高,越不容易出错,因此本实施例将拥有最高指令相似度的数据库的类型选作实际数据库类型,并依据选作的实际数据库类型来进行后续步骤的转换操作。

因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。

实施例四

请参见图6,图6为本申请实施例提供的一种多类型数据适配装置的结构框图,该装置可以包括:

第一类型操作指令接收单元100,用于接收区块链网络下发的第一类型的操作指令;

第二类型操作指令确定单元200,用于检测实际安装于当前区块链节点设备中的数据库的类型,确定与数据库的类型相适应的操作指令的类型为第二类型;

操作指令类型转换单元300,用于通过预设的多类型数据库适配规则将第一类型的操作指令转换为第二类型的操作指令;其中,多类型数据库适配规则包括每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系;

转换后操作指令执行单元400,用于通过第二类型的操作指令对数据库进行相应的操作。

进一步的,该多类型数据库适配装置还可以包括:

各第二类型操作指令获取单元,用于在接收目标区块链网络下发的标准操作指令之前,获取各类型数据库中表示相同功能的第二类型的操作指令;

第一类型操作指令生成单元,用于根据各第二类型的操作指令中的相同或相似部分生成表示相同功能的第一类型的操作指令;

对应关系建立及适配规则生成单元,用于建立每种功能的第一类型的操作指令与各类型数据库相同功能的第二类型的操作指令间的对应关系,并根据各对应关系生成多类型数据库适配规则。

更进一步的,该多类型数据库适配装置还可以包括:

实际数据库类型选取单元,用于当实际安装于当前区块链节点设备中的数据库的类型数大于1时,将任意选取出的一种数据库的类型作为实际数据库类型。

其中,该多类型实际数据库选取单元又可以包括:

指令相似度计算子单元,用于分别计算每种类型的数据库对应的操作指令与第一类型的操作指令间的指令相似度;

最高指令相似度数据库类型选取子单元,用于将拥有最高指令相似度的数据库的类型选作实际数据库类型。

进一步的,该多类型数据库适配装置还可以包括:

返回信息格式转换单元,用于将数据库返回的信息的格式通过多类型数据库适配规则转换为可被目标区块链网络识别的格式。

本实施例作为对应于上述方法实施例的装置实施例存在,具有方法实施例所具有的全部有益效果,此处不再一一赘述。

在上文中已经通过一些实施例对如何实现不同数据库类型间操作指令的转换进行了详细的描述,本申请还提供一种与该方法对应的实体硬件装置,此部分内容原理与方案部分相对应,实现原理的部分此处不再赘述,以下将对该实体硬件装置的硬件组成进行描述,请参见图7,图7为本申请实施例提供的一种电子设备的结构示意图:

该电子设备500包括存储器510、处理器520以及总线530,存储器510上存储有可在处理器520上运行的多类型实际数据库适配程序,该多类型实际数据库适配程序通过总线530被传输至处理器520,并在被处理器520执行时可实现如上述实施例所描述的多类型实际数据库适配方法中的各步骤。

其中,存储器510至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器510在一些实施例中可以是电子设备500的内部存储单元,例如该电子设备500的硬盘。存储器510在另一些实施例中也可以是该电子设备500的外部存储设备,例如该电子设备500上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器510还可以同时由内部存储单元和外部存储设备同时组成。进一步的,存储器510不仅可以用于存储安装于该电子设备500中的各种应用软件和各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器520在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器510中存储的程序代码或处理数据,例如多类型实际数据库适配程序等。

总线530可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条双向中空指示线表示,但并不表示仅有一根总线或一种类型的总线。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中所给出的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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