CN111506650A - 一种关系型区块链数据管理方法及存储介质 - Google Patents
一种关系型区块链数据管理方法及存储介质 Download PDFInfo
- Publication number
- CN111506650A CN111506650A CN202010284365.7A CN202010284365A CN111506650A CN 111506650 A CN111506650 A CN 111506650A CN 202010284365 A CN202010284365 A CN 202010284365A CN 111506650 A CN111506650 A CN 111506650A
- Authority
- CN
- China
- Prior art keywords
- data
- relational
- record
- key
- key value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关系型区块链数据管理方法及存储介质,所述方法包括构建链码数据模型转换器,基于所述链码数据模型转换器与区块链系统进行数据交互;基于区块链系统,构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据;基于所述底层关系型数据库进行数据处理,所述数据处理包括数据新建、变更和查询。本发明可以进行复杂的查询操作。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种关系型区块链数据管理方法及存储介质。
背景技术
区块链是实现智慧城市、智慧医疗、电子政务等的核心前沿技术,具有可追溯性、可验证性特点。现有的区块链技术采用KV键值数据模型,所述KV键值数据模型不同于关系型数据库的数据模型,其不支持关系型数据库中的表、行、列等概念,KV键值数据模型无结构化,支持的检索类型单一,使得区块链数据的组织利用困难。
区块链底层数据采用块结构存储,块内数据预先进行了顺序化编码压缩,导致其仅支持粗粒度检索,而块内交易信息查询利用困难。为了增强查询功能目前现有的一些方案主要包括两个:
1.ForkBase,直接优化底层数据库加快查询效率。但其仅加速了已有的查询功能,不支持关系型数据。
2.EtherQL,在区块链之外额外维护数据库进行查询。这种方法产生了监听计算开销和额外的数据存储开销,而且降低了查询的可靠性,并且查询数据过程脱离了区块链。
发明内容
为了解决现有技术中区块链数据查询困难的问题,使得区块链数据也可以进行高效检索,并支持复杂查询,丰富区块链数据的检索类型,本发明实施例提供一种关系型区块链数据管理方法及存储介质。
一种关系型区块链数据管理方法,所述方法包括:
构建链码数据模型转换器,基于所述链码数据模型转换器与区块链系统进行数据交互,所述链码数据模型转换器用于将关系型数据转换为区块链系统所支持的KV键值数据;
基于区块链系统,构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据;
基于所述底层关系型数据库进行数据处理,所述数据处理包括数据新建、变更和查询。
优选的,关系型数据中的一条记录由若干属性组成并存储在表结构中,而KV键值数据则只包含了键与值两个元素,在将关系型数据映射为KV键值数据后,KV键值数据的键包括至少一个属性,其中一个属性被指定为主键。
优选的,还包括构建与区块链数据对应的第一关系型数据模型,基于所述第一关系型数据将区块链数据存入第一数据库,所述构建第一关系型数据模型,包括:
根据所述区块体数据中交易顺序提取交易数据;
提取所述交易数据中的交易头、签名、交易提案、提案返回和数据域,构建交易表;
根据区块头和区块元数据构建区块表;
构建区块表与交易表的映射关系;
区块表中的一条记录对应一个区块,交易表中的一条记录对应一笔交易,一个区块链数据的区块体数据中包含多笔交易,区块表中的一条记录与交易表中的N条记录构成映射关系。
优选的,还包括,基于链码数据模型转换器可以将关系型数据转化为KV键值数据,所述基于链码数据模型转换器可以将关系型数据转化为KV键值数据,包括:
基于链码数据模型转换器将关系型数据转换为KV键值数据;
将所述KV键值数据传输至区块链系统。
优选的,对于创建表的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取创建表所需的关系型数据,所述关系型数据包括创建表的操作名、至少一个创建表的表名以及与每个创建表的表名所对应的属性类型;
基于所述创建表操作名和创建表的表名构建KV键值模型中的K键,基于所述每个创建表的表名所对应的属性类型构建KV键值模型中的V值,得到关系型数据对应的KV键值数据;
对于新增数据记录的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取新增数据记录所需的关系型数据,所述关系型数据包括新增数据记录的操作名、至少一个新增数据记录指向的表名、每个新增记录指向的表名对应的新增记录主键值、每个新增记录主键值对应的新增记录其它属性值;
基于所述新增数据记录指向的表名和新增记录主键值构建KV键值模型中的K键,基于新增记录主键值对应的新增记录其它属性值构建KV键值模型中的V值,得到关系型数据对应的KV键值数据。
优选的,对于删除数据记录的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取删除数据记录所需的关系型数据,所述关系型数据包括删除数据记录的操作名、至少一个删除数据记录指向的表名、每个删除数据记录指向的表名对应的主键值;
联合所述删除数据记录指向的表名和删除数据记录主键值构建KV键值数据,将所述KV键值数据传输至区块链系统;
对于删除表的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取删除表所需的关系型数据,所述关系型数据包括删除表的操作名和至少一个删除表的表名;
基于所述删除表操作名和删除表的表名构建KV键值数据,将所述KV键值数据传输至区块链系统。
优选的,对于更新数据的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取更新数据所需的关系型数据,所述关系型数据包括更新数据的操作名、至少一个更新数据的表名、与所述表名对应的需要修改记录的主键以及与所述修改记录的其它属性;
在底层关系型数据库中的管理表中读取所述表名的属性结构,读取所述属性结构中待修改的记录,根据待修改记录的当前状态,和所述修改记录的其它属性状态,得到修改后的所有属性状态,记为V值,联合更新数据的表名和所述表名对应的需要修改记录的主键生成K键,得到KV键值数据。
优选的,对于查询数据的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取查询数据所需的关系型数据,所述关系型数据包括查询数据的操作名、至少一个查询数据的表名、与所述表名对应的查询条件;
在底层关系型数据库中的管理表中读取所述表名的数据表,根据所述查询条件查询所述数据表得到至少一条记录,根据所述记录中的主键联合所述表名得到K键,联合根据所述记录中的其它属性内容得到V值,生成KV数据传递至区块链系统,以便于所述区块链系统返回所述KV数据作为查询结果。
优选的,所述第二数据库用于按照用户自定义逻辑结构存储与用户相关的当前状态数据和历史状态数据,包括用户相关的当前状态数据和历史状态数据。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现一种关系型区块链数据管理方法。
本发明提供了一种关系型区块链数据管理方法及存储介质,通过设计链码数据模型转换器,可以使得区块链数据的组织与利用更加便捷和高效。关系型数据库管理区块链底层数据,使区块链数据最后能够基于SQL被处理,可以进行复杂的查询操作,而且关系型数据库提供了强大的事务处理功能,具备丰富的完整性,降低数据冗余,简化数据维护工作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供一种关系型区块链数据管理方法流程图;
图2是本发明提供的构建第一关系型数据模型的方法流程图;
图3是本发明提供的创建表对应的输入参数示例图;
图4是本发明提供的创建表相关的关系型数据对应的KV键值数据的示意图;
图5是本发明提供的新增数据记录对应的输入参数示例图;
图6是本发明提供的新增数据记录相关的关系型数据对应的KV键值数据的示意图;
图7是本发明提供的删除数据记录对应的输入参数示例图;
图8是本发明提供的删除表对应的输入参数示例图;
图9是本发明提供的更新数据对应的输入参数示例图;
图10是本发明提供的链码数据模型转换器和底层关系型数据库对区块链数据进行处理的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了解决现有技术中区块链数据查询困难的问题,使得区块链数据也可以进行高效检索,并支持复杂查询,丰富区块链数据的检索类型,本发明实施例提供一种关系型区块链数据管理方法。
如图1所示,其示出了一种关系型区块链数据管理方法,所述方法包括:
S101.构建链码数据模型转换器,基于所述链码数据模型转换器与区块链系统进行数据交互,所述链码数据模型转换器用于将关系型数据转换为区块链系统所支持的KV键值数据。
链码数据模型转换器(也称智能合约)是运行在区块链平台上的分布式应用,所述链码数据模型转换器用于将关系型数据转换为区块链系统所支持的KV键值数据。
关系型数据中的一条记录由若干属性组成并存储在表结构中,而KV键值数据则只包含了键与值两个元素,在将关系型数据映射为KV键值数据后,KV键值数据的键可能包括多个属性,其中一个属性应当被指定为主键,本发明实施例中将这个主键属性命名为key。
S103.基于区块链系统,构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据。
具体地,所述区块链数据包括区块头、区块体数据和区块元数据三个部分。为了将区块链数据存入第一数据库,需要对区块链数据进行处理,构建与区块链数据对应的第一关系型数据模型,基于所述第一关系型数据将区块链数据存入第一数据库。
所述构建第一关系型数据模型的方法如图2所示,包括:
S1.根据所述区块体数据中交易顺序提取交易数据。
S2.提取所述交易数据中的交易头、签名、交易提案、提案返回和数据域,构建交易表。
具体地,所述交易提案包括交易动作、交易属性等交易信息;所述提案返回用于记录交易被执行后的结果;所述数据域包括交易相关的其它信息,比如背书信息和单笔交易的数据域信息。
区块体数据中可以存储多条交易数据,每个交易数据对应一张交易表中的一条记录。交易表的构建可以用于支持对于区块链数据交易粒度的查询,相较于现有技术的粗粒度查询显然查询功能更为强大。
S3.根据区块头和区块元数据构建区块表。
具体地,根据区块头中的区块编号、当前区块哈希值、前一个区块哈希值,和区块元数据中时间戳、公钥、证书、签名和数字域字段构建区块表。
S4.构建区块表与交易表的映射关系。
显然,对于区块链数据而言,一个区块链数据包括一个区块头、一个区块体数据和一个区块元数据,区块表中的一条记录对应一个区块,交易表中的一条记录对应一笔交易,一个区块链数据的区块体数据中包含多笔交易,所以,区块表中的一条记录与交易表中的N条记录构成映射关系。
可见,描述区块表与交易表的1vN映射关系的第一关系型数据模型可以完备的表达区块链数据,因此,可以将区块链数据转化为符合第一关系型数据模型的关系型数据,存储在第一数据库(blockDB)之中。
所述第二数据库也可以被称之为用户自定义数据库,其可以用于按照用户自定义逻辑结构存储与用户相关的当前状态数据和历史状态数据。具体地,可以通过关系型数据库stateDB来保存用户相关的当前状态数据,可以通过historyDB来保存历史状态数据。所述当前状态数据与所述历史状态数据,以便于在当前状态数据并非最新状态时将所述当前状态数据纳入历史状态数据,并更新当前状态数据为最新状态;所述当前状态数据与所述交易表关联,以便于描述交易表指向的交易对用户当前状态数据的影响。
显然,通过将交易表与当前状态数据关联,可以支持对于用户交易验证和追溯的查询速度。
所述第二数据库中还存储有管理表,所述管理表用于对用户相关的当前状态数据和历史状态数据进行管理。所述管理表可以包括也用户标识、通道名、链码名、表明和属性列。其中属性列为字符串形式,由用户自定义表中的属性名及对应数据类型拼接而成。所述管理表可以与各个用户的当前状态数据和历史状态数据建立关联关系。
一个区块链网络多个通道,多个通道不互通,因此,管理表中的通道名字段限定了管理表关联的数据均指向所述通道名指向的区块链数据。区块链网络作为一个分布式网络,各个区块链节点均可以布设链码数据模型转换器,以便于将获取到的关系型数据转换为KV键值数据存储在区块链节点之中,管理表中的链码名表示这个管理表对应的数据指向的区块链数据对应的链码数据模型转换器。
S105.基于所述底层关系型数据库进行数据处理,所述数据处理包括数据新建、变更和查询。
本发明实施例中基于链码数据模型转换器可以将关系型数据转化为KV键值数据,从而在区块链系统实现新增数据、删除数据、更新数据和查询数据操作。
(一)新增数据
对于创建表的操作:
基于链码数据模型转换器将关系型数据转换为KV键值数据,具体地,其转换逻辑为:
(1)获取创建表所需的关系型数据,所述关系型数据包括创建表的操作名、至少一个创建表的表名以及与每个创建表的表名所对应的属性类型。
如图3所示,其示出创建表对应的输入参数示例图,从示例图中可以明显看出创建表所需的关系型数据的内容。
(2)基于所述创建表操作名和创建表的表名构建KV键值模型中的K键,基于所述每个创建表的表名所对应的属性类型构建KV键值模型中的V值,得到关系型数据对应的KV键值数据。
将所述KV键值数据传输至区块链系统。
如图4所示,其示出创建表相关的关系型数据对应的KV键值数据的示意图。
相应的,在区块链系统到底层关系型数据库的映射中,所述KV键值数据可以使得所述底层关系型数据库实现所述创建表操作。本发明实施例中链码数据模型转换器用于将关系型数据转换为KV键值数据,并将转换结果体现在区块链系统,而区块链系统的KV键值数据可以被转化为关系型数据在底层关系型数据库被存储。这两个过程互为逆过程。后文原理相同,对此不再赘述。
对于新增数据记录的操作:
基于链码数据模型转换器将关系型数据转换为KV键值数据,具体地,其转换逻辑为:
(1)获取新增数据记录所需的关系型数据,所述关系型数据包括新增数据记录的操作名、至少一个新增数据记录指向的表名、每个新增记录指向的表名对应的新增记录主键值、每个新增记录主键值对应的新增记录其它属性值。
如图5所示,其示出新增数据记录对应的输入参数示例图,从示例图中可明显看出新增数据记录所需的关系型数据的内容。
(2)基于所述新增数据记录指向的表名和新增记录主键值构建KV键值模型中的K键,基于新增记录主键值对应的新增记录其它属性值构建KV键值模型中的V值,得到关系型数据对应的KV键值数据。
如图6所示,其示出新增数据记录相关的关系型数据对应的KV键值数据的示意图。
将所述KV键值数据传输至区块链系统。
(二)删除数据
对于删除数据记录的操作:
基于链码数据模型转换器将关系型数据转换为KV键值数据,具体地,其转换逻辑为:
(1)获取删除数据记录所需的关系型数据,所述关系型数据包括删除数据记录的操作名、至少一个删除数据记录指向的表名、每个删除数据记录指向的表名对应的主键值。
如图7所示,其示出删除数据记录对应的输入参数示例图,从示例图中可以明显看出删除数据记录所需的关系型数据的内容。
(2)联合所述删除数据记录指向的表名和删除数据记录主键值构建KV键值数据,将所述KV键值数据传输至区块链系统。
对于删除表的操作:
基于链码数据模型转换器将关系型数据转换为KV键值数据,具体地,其转换逻辑为:
(1)获取删除表所需的关系型数据,所述关系型数据包括删除表的操作名和至少一个删除表的表名。
如图8所示,其示出删除表对应的输入参数示例图,从示例图中可以明显看出删除表所需的关系型数据的内容。
(2)基于所述删除表操作名和删除表的表名构建KV键值数据,将所述KV键值数据传输至区块链系统。
相应的,基于所述KV键值数据,底层关系型数据库中执行下述操作:
联合管理表与所述删除表的表名,在所述管理表中删除所述表名,并且将所述表名和与所述表名关联的全部主键进行删除。
(三)更新数据
对于更新数据的操作:
基于链码数据模型转换器将关系型数据转换为KV键值数据,具体地,其转换逻辑为:
(1)获取更新数据所需的关系型数据,所述关系型数据包括更新数据的操作名、至少一个更新数据的表名、与所述表名对应的需要修改记录的主键以及与所述修改记录的其它属性。
如图9所示,其示出更新数据对应的输入参数示例图,从示例图中可以明显看出更新数据所需的关系型数据的内容。
(2)在底层关系型数据库中的管理表中读取所述表名的属性结构,读取所述属性结构中待修改的记录,根据待修改记录的当前状态,和所述修改记录的其它属性状态,得到修改后的所有属性状态,记为V值,联合更新数据的表名和所述表名对应的需要修改记录的主键生成K键,得到KV键值数据。
将所述KV键值数据传输至区块链系统。
(四)查询数据
对于查询数据的操作:
基于链码数据模型转换器将关系型数据转换为KV键值数据,具体地,其转换逻辑为:
(1)获取查询数据所需的关系型数据,所述关系型数据包括查询数据的操作名、至少一个查询数据的表名、与所述表名对应的查询条件。
在底层关系型数据库中的管理表中读取所述表名的数据表,根据所述查询条件查询所述数据表得到至少一条记录,根据所述记录中的主键联合所述表名得到K键,联合根据所述记录中的其它属性内容得到V值,生成KV数据传递至区块链系统,以便于所述区块链系统返回所述KV数据作为查询结果。
本发明实施例公开一种关系型区块链数据管理方法,如图10所示,其示出了链码数据模型转换器和底层关系型数据库对区块链数据进行处理的示意图。通过链码数据模型转换器可以将关系型数据转换为区块链系统可以支持的KV键值数据,将所述KV键值数据传递至区块链系统进行处理,底层数据库系统可以支持将区块链系统过得KV键值数据存储为关系型数据,并且对所述关系型数据进行细粒度的检索,并向区块链系统返回KV模型形式的检索结果,并最终将检索结果给用户呈现。
本发明实施例采用了通过设计链码数据模型转换器,可以使得区块链数据的组织与利用更加便捷和高效。关系型数据库管理区块链底层数据,使区块链数据最后能够基于SQL被处理,可以进行复杂的查询操作,而且关系型数据库提供了强大的事务处理功能,具备丰富的完整性,降低数据冗余,简化数据维护工作。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可以存储有多条指令。所述指令可以适于由处理器加载并执行本发明实施例所述的一种关系型区块链数据管理方法,所述方法至少包括下述步骤:
一种关系型区块链数据管理方法,所述方法包括:
构建链码数据模型转换器,基于所述链码数据模型转换器与区块链系统进行数据交互,所述链码数据模型转换器用于将关系型数据转换为区块链系统所支持的KV键值数据;
基于区块链系统,构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据;
基于所述底层关系型数据库进行数据处理,所述数据处理包括数据新建、变更和查询。
在一个可行的实施例中,关系型数据中的一条记录由若干属性组成并存储在表结构中,而KV键值数据则只包含了键与值两个元素,在将关系型数据映射为KV键值数据后,KV键值数据的键包括至少一个属性,其中一个属性被指定为主键。
在一个可行的实施例中,还包括构建与区块链数据对应的第一关系型数据模型,基于所述第一关系型数据将区块链数据存入第一数据库,所述构建第一关系型数据模型,包括:
根据所述区块体数据中交易顺序提取交易数据;
提取所述交易数据中的交易头、签名、交易提案、提案返回和数据域,构建交易表;
根据区块头和区块元数据构建区块表;
构建区块表与交易表的映射关系;
区块表中的一条记录对应一个区块,交易表中的一条记录对应一笔交易,一个区块链数据的区块体数据中包含多笔交易,区块表中的一条记录与交易表中的N条记录构成映射关系。
在一个可行的实施例中,还包括,基于链码数据模型转换器可以将关系型数据转化为KV键值数据,所述基于链码数据模型转换器可以将关系型数据转化为KV键值数据,包括:
基于链码数据模型转换器将关系型数据转换为KV键值数据;
将所述KV键值数据传输至区块链系统。
在一个可行的实施例中,对于创建表的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取创建表所需的关系型数据,所述关系型数据包括创建表的操作名、至少一个创建表的表名以及与每个创建表的表名所对应的属性类型;
基于所述创建表操作名和创建表的表名构建KV键值模型中的K键,基于所述每个创建表的表名所对应的属性类型构建KV键值模型中的V值,得到关系型数据对应的KV键值数据;
对于新增数据记录的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取新增数据记录所需的关系型数据,所述关系型数据包括新增数据记录的操作名、至少一个新增数据记录指向的表名、每个新增记录指向的表名对应的新增记录主键值、每个新增记录主键值对应的新增记录其它属性值;
基于所述新增数据记录指向的表名和新增记录主键值构建KV键值模型中的K键,基于新增记录主键值对应的新增记录其它属性值构建KV键值模型中的V值,得到关系型数据对应的KV键值数据。
在一个可行的实施例中,对于删除数据记录的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取删除数据记录所需的关系型数据,所述关系型数据包括删除数据记录的操作名、至少一个删除数据记录指向的表名、每个删除数据记录指向的表名对应的主键值;
联合所述删除数据记录指向的表名和删除数据记录主键值构建KV键值数据,将所述KV键值数据传输至区块链系统;
对于删除表的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取删除表所需的关系型数据,所述关系型数据包括删除表的操作名和至少一个删除表的表名;
基于所述删除表操作名和删除表的表名构建KV键值数据,将所述KV键值数据传输至区块链系统。
在一个可行的实施例中,对于更新数据的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取更新数据所需的关系型数据,所述关系型数据包括更新数据的操作名、至少一个更新数据的表名、与所述表名对应的需要修改记录的主键以及与所述修改记录的其它属性;
在底层关系型数据库中的管理表中读取所述表名的属性结构,读取所述属性结构中待修改的记录,根据待修改记录的当前状态,和所述修改记录的其它属性状态,得到修改后的所有属性状态,记为V值,联合更新数据的表名和所述表名对应的需要修改记录的主键生成K键,得到KV键值数据。
在一个可行的实施例中,对于查询数据的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取查询数据所需的关系型数据,所述关系型数据包括查询数据的操作名、至少一个查询数据的表名、与所述表名对应的查询条件;
在底层关系型数据库中的管理表中读取所述表名的数据表,根据所述查询条件查询所述数据表得到至少一条记录,根据所述记录中的主键联合所述表名得到K键,联合根据所述记录中的其它属性内容得到V值,生成KV数据传递至区块链系统,以便于所述区块链系统返回所述KV数据作为查询结果。
在一个可行的实施例中,所述第二数据库用于按照用户自定义逻辑结构存储与用户相关的当前状态数据和历史状态数据,包括用户相关的当前状态数据和历史状态数据。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种关系型区块链数据管理方法,其特征在于,所述方法包括:
构建链码数据模型转换器,基于所述链码数据模型转换器与区块链系统进行数据交互,所述链码数据模型转换器用于将关系型数据转换为区块链系统所支持的KV键值数据;
基于区块链系统,构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据;
基于所述底层关系型数据库进行数据处理,所述数据处理包括数据新建、变更和查询。
2.根据权利要求1所述的方法,其特征在于:
关系型数据中的一条记录由若干属性组成并存储在表结构中,而KV键值数据则只包含了键与值两个元素,在将关系型数据映射为KV键值数据后,KV键值数据的键包括至少一个属性,其中一个属性被指定为主键。
3.根据权利要求2所述的方法,其特征在于,还包括构建与区块链数据对应的第一关系型数据模型,基于所述第一关系型数据将区块链数据存入第一数据库,所述构建第一关系型数据模型,包括:
根据所述区块体数据中交易顺序提取交易数据;
提取所述交易数据中的交易头、签名、交易提案、提案返回和数据域,构建交易表;
根据区块头和区块元数据构建区块表;
构建区块表与交易表的映射关系;
区块表中的一条记录对应一个区块,交易表中的一条记录对应一笔交易,一个区块链数据的区块体数据中包含多笔交易,区块表中的一条记录与交易表中的N条记录构成映射关系。
4.根据权利要求3所述的方法,其特征在于,还包括,基于链码数据模型转换器可以将关系型数据转化为KV键值数据,所述基于链码数据模型转换器可以将关系型数据转化为KV键值数据,包括:
基于链码数据模型转换器将关系型数据转换为KV键值数据;
将所述KV键值数据传输至区块链系统。
5.根据权利要求4所述的方法,其特征在于:
对于创建表的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取创建表所需的关系型数据,所述关系型数据包括创建表的操作名、至少一个创建表的表名以及与每个创建表的表名所对应的属性类型;
基于所述创建表操作名和创建表的表名构建KV键值模型中的K键,基于所述每个创建表的表名所对应的属性类型构建KV键值模型中的V值,得到关系型数据对应的KV键值数据;
对于新增数据记录的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取新增数据记录所需的关系型数据,所述关系型数据包括新增数据记录的操作名、至少一个新增数据记录指向的表名、每个新增记录指向的表名对应的新增记录主键值、每个新增记录主键值对应的新增记录其它属性值;
基于所述新增数据记录指向的表名和新增记录主键值构建KV键值模型中的K键,基于新增记录主键值对应的新增记录其它属性值构建KV键值模型中的V值,得到关系型数据对应的KV键值数据。
6.根据权利要求4所述的方法,其特征在于:
对于删除数据记录的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取删除数据记录所需的关系型数据,所述关系型数据包括删除数据记录的操作名、至少一个删除数据记录指向的表名、每个删除数据记录指向的表名对应的主键值;
联合所述删除数据记录指向的表名和删除数据记录主键值构建KV键值数据,将所述KV键值数据传输至区块链系统;
对于删除表的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取删除表所需的关系型数据,所述关系型数据包括删除表的操作名和至少一个删除表的表名;
基于所述删除表操作名和删除表的表名构建KV键值数据,将所述KV键值数据传输至区块链系统。
7.根据权利要求4所述的方法,其特征在于:
对于更新数据的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取更新数据所需的关系型数据,所述关系型数据包括更新数据的操作名、至少一个更新数据的表名、与所述表名对应的需要修改记录的主键以及与所述修改记录的其它属性;
在底层关系型数据库中的管理表中读取所述表名的属性结构,读取所述属性结构中待修改的记录,根据待修改记录的当前状态,和所述修改记录的其它属性状态,得到修改后的所有属性状态,记为V值,联合更新数据的表名和所述表名对应的需要修改记录的主键生成K键,得到KV键值数据。
8.根据权利要求4所述的方法,其特征在于:
对于查询数据的操作,所述基于链码数据模型转换器将关系型数据转换为KV键值数据,包括:
获取查询数据所需的关系型数据,所述关系型数据包括查询数据的操作名、至少一个查询数据的表名、与所述表名对应的查询条件;
在底层关系型数据库中的管理表中读取所述表名的数据表,根据所述查询条件查询所述数据表得到至少一条记录,根据所述记录中的主键联合所述表名得到K键,联合根据所述记录中的其它属性内容得到V值,生成KV数据传递至区块链系统,以便于所述区块链系统返回所述KV数据作为查询结果。
9.根据权利要求1所述的方法,其特征在于:
所述第二数据库用于按照用户自定义逻辑结构存储与用户相关的当前状态数据和历史状态数据,包括用户相关的当前状态数据和历史状态数据。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-9任意一项所述的一种关系型区块链数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284365.7A CN111506650B (zh) | 2020-04-13 | 2020-04-13 | 一种关系型区块链数据管理方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284365.7A CN111506650B (zh) | 2020-04-13 | 2020-04-13 | 一种关系型区块链数据管理方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506650A true CN111506650A (zh) | 2020-08-07 |
CN111506650B CN111506650B (zh) | 2023-06-23 |
Family
ID=71869286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010284365.7A Active CN111506650B (zh) | 2020-04-13 | 2020-04-13 | 一种关系型区块链数据管理方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506650B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059092A (zh) * | 2019-04-22 | 2019-07-26 | 广州市品高软件股份有限公司 | 基于区块链的关系型数据库的数据写入方法及系统 |
CN110096522A (zh) * | 2019-05-15 | 2019-08-06 | 西安电子科技大学 | 一种支持关系型检索的区块链数据处理方法、装置及设备 |
CN110134671A (zh) * | 2019-05-21 | 2019-08-16 | 北京物资学院 | 一种面向溯源应用的区块链数据库数据管理系统及方法 |
WO2019178300A1 (en) * | 2018-03-13 | 2019-09-19 | Blockpoint Systems Inc. | Relational blockchain database |
-
2020
- 2020-04-13 CN CN202010284365.7A patent/CN111506650B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019178300A1 (en) * | 2018-03-13 | 2019-09-19 | Blockpoint Systems Inc. | Relational blockchain database |
CN110059092A (zh) * | 2019-04-22 | 2019-07-26 | 广州市品高软件股份有限公司 | 基于区块链的关系型数据库的数据写入方法及系统 |
CN110096522A (zh) * | 2019-05-15 | 2019-08-06 | 西安电子科技大学 | 一种支持关系型检索的区块链数据处理方法、装置及设备 |
CN110134671A (zh) * | 2019-05-21 | 2019-08-16 | 北京物资学院 | 一种面向溯源应用的区块链数据库数据管理系统及方法 |
Non-Patent Citations (1)
Title |
---|
王千阁等: "区块链系统的数据存储与查询技术综述", 《计算机科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111506650B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102033748B (zh) | 一种数据处理流程代码的生成方法 | |
US9026901B2 (en) | Viewing annotations across multiple applications | |
CN1552032B (zh) | 数据库 | |
CN107491561B (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
JP4045399B2 (ja) | 構造化文書管理装置及び構造化文書管理方法 | |
US8103705B2 (en) | System and method for storing text annotations with associated type information in a structured data store | |
US8161371B2 (en) | Method and system for defining a heirarchical structure | |
JP5601066B2 (ja) | 情報統合プログラム、装置及び方法 | |
CN103733195A (zh) | 管理用于基于范围的搜索的数据的存储 | |
CN111046041B (zh) | 数据处理方法和装置、存储介质及处理器 | |
CN113094449B (zh) | 基于分布式键值库的大规模知识图谱存储方法 | |
JP2012524930A (ja) | データベース管理方法およびシステム | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
US20040078355A1 (en) | Information management system | |
CN111984745A (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN111506650B (zh) | 一种关系型区块链数据管理方法及存储介质 | |
CN117493333A (zh) | 数据归档方法、装置、电子设备及存储介质 | |
CN111125129A (zh) | 数据处理方法和装置、存储介质及处理器 | |
CN107463618B (zh) | 一种索引创建方法和装置 | |
CN113407538B (zh) | 一种多源异构关系型数据库数据的增量采集方法 | |
KR102380518B1 (ko) | 이종 데이터 통합 서비스 방법 및 이종 데이터 통합 서비스 시스템 | |
CN115129786A (zh) | 一种维护区块链数据的方法、装置、电子设备和存储介质 | |
CN114020719A (zh) | 一种应用于异构数据库的证照数据迁移方法 | |
CN109947852A (zh) | 一种详单存储空间瘦身方法、装置及计算机存储介质 | |
Arndt et al. | Exploring the Evolution and Provenance of Git Versioned RDF Data. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |