CN115048377A - Time-space keyword query method under mixed storage block chain environment - Google Patents
Time-space keyword query method under mixed storage block chain environment Download PDFInfo
- Publication number
- CN115048377A CN115048377A CN202210650145.0A CN202210650145A CN115048377A CN 115048377 A CN115048377 A CN 115048377A CN 202210650145 A CN202210650145 A CN 202210650145A CN 115048377 A CN115048377 A CN 115048377A
- Authority
- CN
- China
- Prior art keywords
- block
- chain
- query
- tree
- keyword
- 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 OR CALCULATING; 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/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
技术领域technical field
本发明属于计算机区块链查询技术领域,尤其涉及一种混合存储区块链环境下的时空关键字查询方法。The invention belongs to the technical field of computer block chain query, and in particular relates to a space-time keyword query method in a hybrid storage block chain environment.
背景技术Background technique
近年来,随着比特币等数字加密货币的日益普及,其底层技术——区块链技术,现已成为当下社会关注的焦点。本质上,区块链可以看做是一种分布式数据库,具有去中心化、不可篡改、可追溯以及数据透明等特性,能够很好地解决供应链等场景中多个参与方之间的信任问题。时空数据是供应链、物联网等领域常见的数据表现形式,随着区块链在以上场景的应用,大量时空数据存储到区块链上。时空关键字查询即以时间、空间和关键字作为查询条件,查找符合条件的所有信息,在以上场景应用广泛。In recent years, with the increasing popularity of digital cryptocurrencies such as Bitcoin, its underlying technology, blockchain technology, has become the focus of current society. In essence, blockchain can be regarded as a distributed database, which has the characteristics of decentralization, non-tampering, traceability and data transparency, which can well solve the trust between multiple participants in supply chain and other scenarios. question. Spatiotemporal data is a common form of data representation in the supply chain, Internet of Things and other fields. With the application of blockchain in the above scenarios, a large amount of spatiotemporal data is stored on the blockchain. Time-space keyword query is to use time, space and keywords as query conditions to find all the information that meets the conditions, and is widely used in the above scenarios.
当前常用的区块链存储模式为链上链下混合存储模式,链上存储可供多方共享的操作事务,链下则存储各方的隐私数据。在该模式下进行时空关键字查询时,需要返回链上链下数据连接后的结果。由于现有的查询方法大多在块内使用B+树索引,对于搜索空间为多维的时空关键字查询,查询效率较低。并且现有方法在查询时需要读取链下连接表中全部数据进行连接,导致大量的通信开销,影响用户体验。因此,研究混合存储区块链环境下的时空关键字查询方法具有重要意义。The current commonly used blockchain storage mode is the on-chain and off-chain hybrid storage mode, where operational transactions that can be shared by multiple parties are stored on the chain, while the private data of all parties is stored off-chain. When performing a spatiotemporal keyword query in this mode, it is necessary to return the result of the data connection on the chain and off the chain. Since most of the existing query methods use B+ tree indexes in blocks, the query efficiency is low for spatiotemporal keyword queries with multi-dimensional search space. In addition, the existing method needs to read all the data in the off-chain connection table for connection when querying, which leads to a lot of communication overhead and affects the user experience. Therefore, it is of great significance to study the spatiotemporal keyword query method in the hybrid storage blockchain environment.
以现实场景为例,在供应链场景中,多个参与方将其生产信息、物流信息和销售信息等公开透明的存储在区块链上,供多方数据共享和协同处理,链下则存储各个参与方的隐私数据。当用户发送图中所示时空关键字查询Q时,需要将链上链下满足查询条件的事务通过连接属性连接后返回给查询用户。现有查询方法需要根据块内每个属性列的B+树索引分别查询,对查询结果取交集得到符合查询条件的所有事务,然后读取链下连接表中的所有数据到区块链上进行连接,最后将连接后的结果返回给查询用户。这种查询方式的缺陷主要在于以下三个方面:Taking a real scenario as an example, in a supply chain scenario, multiple participants openly and transparently store their production information, logistics information, and sales information on the blockchain for data sharing and collaborative processing by multiple parties, while off-chain storage of each Participant's private data. When a user sends a query Q with the space-time keyword shown in the figure, it is necessary to connect the on-chain and off-chain transactions that satisfy the query conditions through the connection attribute and return it to the querying user. The existing query method needs to query according to the B+ tree index of each attribute column in the block, take the intersection of the query results to obtain all transactions that meet the query conditions, and then read all the data in the off-chain connection table to the blockchain for connection , and finally return the connected result to the query user. The shortcomings of this query method mainly lie in the following three aspects:
第一,查询语义较弱。虽然区块链上的事务包含多种属性,但现有的区块链平台通常采用key-value或赋予语义的形式存储事务。key-value模式不支持选择、连接等关系型查询,无法根据属性名查询事务;赋予语义的存储模式需要为每个属性列构建单独的索引,无法按照属性类型合并索引。First, query semantics are weak. Although transactions on the blockchain contain various properties, existing blockchain platforms usually store transactions in the form of key-value or given semantics. The key-value mode does not support relational queries such as selection and connection, and cannot query transactions based on attribute names; the storage mode with semantics needs to build a separate index for each attribute column, and cannot merge indexes according to attribute types.
第二,查询效率较低。链上事务包含时间、空间及关键字等属性,分布在各个区块中。现有的区块链查询方法,大多通过在区块内使用B+树索引来避免遍历所有事务,但该结构对于搜索空间为多维的时空关键字查询,查询效率低。Second, the query efficiency is low. Transactions on the chain contain attributes such as time, space, and keywords, and are distributed in each block. Most of the existing blockchain query methods avoid traversing all transactions by using the B+ tree index in the block, but this structure has low query efficiency for spatiotemporal keyword queries with multi-dimensional search space.
第三,通信开销较大。由于查询时需要同时获取链上和链下的数据,现有的方法需要读取链下连接表中的全部数据进行连接,当链下数据量非常大而需要连接的结果很少时,会产生大量不必要的通信开销。Third, the communication overhead is large. Since both on-chain and off-chain data need to be obtained when querying, the existing method needs to read all the data in the off-chain connection table for connection. A lot of unnecessary communication overhead.
发明内容SUMMARY OF THE INVENTION
针对现有技术的不足,本发明设计一种混合存储区块链环境下的时空关键字查询方法。Aiming at the deficiencies of the prior art, the present invention designs a spatiotemporal keyword query method in a hybrid storage blockchain environment.
一种混合存储区块链环境下的时空关键字查询方法,具体步骤如下:A spatiotemporal keyword query method in a hybrid storage blockchain environment, the specific steps are as follows:
步骤1:构建按属性分类且赋予语义的区块链模型即CSBM;Step 1: Build a blockchain model classified by attributes and given semantics, namely CSBM;
步骤1.1:CSBM包含多个按属性分类且赋予语义的区块CS-B,CSBM=CS-B1+CS-B2+···+CS-Bn,每个CS-B包含区块头B head和按属性分类且赋予语义的区块体CS-B body两部分;其中CS-B=B head+CS-B body;B head与传统区块链区块头结构基本相同,包括将区块连接成链的前区块哈希值PrevHash、记录当前区块在链上位置的区块高度BlockHeight、记录区块生成时间的时间戳Timestamp以及挖矿难度Bits和随机数Nonce,而原本区块头中的Merkle根Merkle Root由步骤2中构建的BKM-树的根节点BKM-tree Root代替,但同样基于块内事务的哈希值生成,用于保证块内事务的不可篡改;CS-B body中包含该区块内的全部事务,为这些事务划分属性类型并且添加语义;Step 1.1: CSBM contains multiple blocks CS-B classified by attributes and given semantics, CSBM=CS-B 1 +CS-B 2 +...+CS-B n , each CS-B contains block header B The head and the block body CS-B body classified by attributes and given semantics are two parts; where CS-B=B head+CS-B body; B head is basically the same as the block header structure of traditional blockchain, including connecting blocks The hash value PrevHash of the previous block in the chain, the block height BlockHeight that records the position of the current block on the chain, the timestamp Timestamp that records the block generation time, the mining difficulty Bits and the random number Nonce, while the original block header Merkle Root Merkle Root is replaced by BKM-tree Root, the root node of BKM-tree constructed in
步骤1.2:定义Tx为CSBM中一条按属性分类且赋予语义的事务,Tx={Key=v1,Time={time=v2},Coordinate={longitude=v3,latitude=v4},Keywords={kw1,kw2,···,kwn},Others={oth1,oth2,···,othn}},Key为该事务的主键,通过计算该事务的哈希值得到,使用长度为64的16进制字符串来表示;Time为时间属性类型,time为该事务的时间戳,Coordinate为空间属性类型,longitude为该事务的经度,latitude为该事务的纬度,vi为属性值,Keywords为关键字属性类型,kwi为该事务某个关键字的属性名称;Others为其他属性类型,othi为该事务的其他属性的名称;针对不同应用场合和事务类型,设定不同的属性名称;Step 1.2: Define T x as a transaction classified by attributes and given semantics in CSBM, T x ={Key=v 1 ,Time={time=v 2 },Coordinate={longitude=v 3 ,latitude=v 4 } ,Keywords={kw 1 ,kw 2 ,...,kw n },Others={oth 1 ,oth 2 ,...,oth n }}, Key is the primary key of the transaction, by calculating the hash of the transaction The value is obtained, which is represented by a hexadecimal string with a length of 64; Time is the time attribute type, time is the timestamp of the transaction, Coordinate is the space attribute type, longitude is the longitude of the transaction, and latitude is the latitude of the transaction. v i is the attribute value, Keywords is the keyword attribute type, kw i is the attribute name of a certain keyword of the transaction; Others is the other attribute type, oth i is the name of other attributes of the transaction; for different applications and transaction types , set different attribute names;
步骤2:构建基于B2F-BKM结构的链上两级索引结构;该结构由两部分组成,分别为块间B2F-树和块内BKM-树,完成对所有区块和事务的索引;Step 2: Build a two-level index structure on the chain based on the B 2 F-BKM structure; the structure consists of two parts, namely the inter-block B 2 F-tree and the intra-block BKM-tree, which completes all blocks and transactions. index;
步骤2.1:在每个区块内构建BKM树替换原来的Merkle树;在构建新区块过程中,提取该区块内所有事务空间属性类型值和关键字属性类型值;模仿KD树结构,根据事务的空间属性数据划分区域,直至每个区域只包含一条事务,事务只存储在叶子节点中,非叶子节点存储与数据划分相关的信息;然后为KD树添加布隆过滤器字段,根据事务的关键字属性数据构造布隆过滤器,非叶子节点的布隆过滤器中包含其孩子节点的全部关键字;最后按照Merkle树的构造方式自底向上计算每个节点的哈希值形成BKM-树,并将根节点记录在区块头中;Step 2.1: Build a BKM tree in each block to replace the original Merkle tree; in the process of building a new block, extract all transaction space attribute type values and keyword attribute type values in the block; imitate the KD tree structure, according to the transaction The spatial attribute data is divided into regions until each region contains only one transaction, transactions are only stored in leaf nodes, and non-leaf nodes store information related to data division; then add bloom filter fields to the KD tree, according to the key of the transaction. The word attribute data constructs a Bloom filter, and the Bloom filter of a non-leaf node contains all the keywords of its child nodes; finally, according to the construction method of the Merkle tree, the hash value of each node is calculated from the bottom up to form a BKM-tree, And record the root node in the block header;
步骤2.2:构造基于块号、区块创建时间以及块内关键字的区块间B2F-树;获取新的区块数据,包括新区块的块号block-id、区块创建时间timestamp、块内关键字构成的布隆过滤器bloomfilter-bf、区块位于区块链文件中的地址偏移量;构造B2F-树节点,叶节点中键的格式为“block-id,timestamp,bf”,其中block-id来自位于区块头的区块高度BlockHeight,timestamp来自位于区块头的时间戳Timestamp,bf与块内BKM-树根节点中的布隆过滤器相同;叶节点中的指针记录了区块位于区块链文件中的地址偏移量;非叶子节点的布隆过滤器中包含其子树的所有关键字,用于过滤指针,判断该指针指向的节点是否含有相应的关键字,根据block-id按照B+树节点插入方式更新B2F-树;Step 2.2: Construct an inter-block B 2 F-tree based on the block number, block creation time, and keywords in the block; obtain new block data, including the block number block-id of the new block, block creation time timestamp, The bloom filter bloomfilter-bf composed of keywords in the block, the address offset of the block in the blockchain file; construct a B 2 F-tree node, and the format of the key in the leaf node is "block-id, timestamp, bf", where block-id comes from the block height BlockHeight located in the block header, timestamp comes from the timestamp Timestamp located in the block header, bf is the same as the Bloom filter in the BKM-tree root node in the block; the pointer record in the leaf node The address offset of the block in the blockchain file; the bloom filter of the non-leaf node contains all the keywords of its subtree, which is used to filter the pointer and determine whether the node pointed to by the pointer contains the corresponding keyword , update the B 2 F-tree according to the block-id according to the B+ tree node insertion method;
步骤2.3:链上两级索引结构B2F-BKM结构构建完成;Step 2.3: The construction of the two-level index structure B 2 F-BKM structure on the chain is completed;
步骤3:设计链上链下时空关键字查询方法;获取查询条件,根据链上两级索引结构B2F-BKM结构,即B2F-树和BKM-树进行链上条件查询,并提取查询到的事务的连接属性值,根据该值进行链上链下连接查询并返回最终结果;Step 3: Design an on-chain and off-chain spatiotemporal keyword query method; obtain query conditions, perform on-chain conditions query according to the two-level index structure B 2 F-BKM structure on the chain, namely B 2 F-tree and BKM-tree, and extract The connection attribute value of the queried transaction, according to which the on-chain and off-chain connection query is performed and the final result is returned;
步骤3.1:定义混合存储区块链环境下的时空关键字查询由四元组构成,Q=[[Ts,Te],S,W,join-attr],其中[Ts,Te]为用户查询的时间范围,S为用户查询的空间范围,W为用户查询的关键字数据集合,包含若干关键字,join-attr为等式形式的连接条件,等式左边为链上需要连接的关键字属性名,等式右边为链下数据库表中连接关键字属性名;Step 3.1: Define the space-time keyword query in the hybrid storage blockchain environment is composed of quaternions, Q=[[T s ,T e ],S,W,join-attr], where [T s ,T e ] is the time range of the user query, S is the spatial range of the user query, W is the keyword data set of the user query, including several keywords, join-attr is the connection condition in the form of an equation, and the left side of the equation is the link that needs to be connected on the chain The keyword attribute name, the right side of the equation is the connection keyword attribute name in the off-chain database table;
步骤3.2:根据查询Q中的时间和关键字条件,遍历B2F-树;基于B2F-树节点中键的“timestamp,bf”部分从根节点开始,根据时间条件选择分支指针,然后根据布隆过滤器判断该指针所指节点是否包含查询关键字W,包含则继续遍历,否则终止;按此方法直到叶子节点,查找出包含查询关键字W且时间大于等于‘Ts’、小于等于‘Te’的所有键并通过指针得到这些块的位置;Step 3.2: Traverse the B 2 F-tree according to the time and keyword conditions in the query Q; start from the root node based on the "timestamp, bf" part of the key in the B 2 F-tree node, select the branch pointer according to the time condition, and then According to the Bloom filter, determine whether the node pointed to by the pointer contains the query keyword W, if it does, continue to traverse, otherwise terminate; according to this method until the leaf node, find out the query keyword W and the time is greater than or equal to 'T s ', less than or equal to 'T s ' All keys equal to 'T e ' and get the position of these blocks by pointer;
步骤3.3:查询到具体区块后,根据查询Q中的空间和关键字条件,依次遍历位于区块内的BKM-树;按照KD-树的搜索方式从根节点开始自顶向下选择子节点,并判断子节点的布隆过滤器中是否包含全部查询关键字,若包含则遍历该子节点,若不包含,则放弃此分支;按照此方法直至叶子节点,即找到块内满足空间和关键字条件的所有事务;获取叶子节点中的键数据,即事务的哈希值Key,再根据键数据得到原始数据,若满足时间条件,则将该数据加入链上结果集Onchain-RS;Step 3.3: After querying the specific block, according to the space and keyword conditions in the query Q, traverse the BKM-tree located in the block in turn; select the child nodes from the root node from the top to the bottom according to the KD-tree search method , and judge whether the Bloom filter of the child node contains all the query keywords, if it does, traverse the child node, if not, give up the branch; follow this method until the leaf node, that is, find the space and the key within the block that satisfy All transactions of the word condition; obtain the key data in the leaf node, that is, the hash value Key of the transaction, and then obtain the original data according to the key data, if the time condition is met, add the data to the onchain result set Onchain-RS;
步骤3.4:根据查询Q中的连接条件join-attr,提取Onchain-RS中原始数据的连接属性的值,根据该值查询链下数据库表中的数据,并加入链下结果集Offchain-RS;读取Offchain-RS和Onchain-RS内数据通过连接属性进行链上链下数据连接后,将结果存入结果集ResultSet;Step 3.4: According to the connection condition join-attr in the query Q, extract the value of the connection attribute of the original data in Onchain-RS, query the data in the off-chain database table according to the value, and add the off-chain result set Offchain-RS; read After taking the data in Offchain-RS and Onchain-RS to connect on-chain and off-chain data through the connection attribute, the result is stored in the result set ResultSet;
步骤3.5:返回ResultSet,终止当前计算并等待下一次调用;Step 3.5: Return to ResultSet, terminate the current calculation and wait for the next call;
本发明有益技术效果:Beneficial technical effects of the present invention:
本发明考虑到基于链上链下混合存储模式的区块链在进行时空关键字查询时,应用现有的方法查询效率低,并且会产生大量不必要的通信开销,影响用户体验;因此,本发明的目的是提出一种混合存储区块链环境下的时空关键字查询方法,相比传统的查询方法提高查询效率,减少通信开销。具体有益技术效果为:The present invention considers that when the blockchain based on the on-chain and off-chain hybrid storage mode is used to query the space-time keyword, the query efficiency of the existing method is low, and a lot of unnecessary communication overhead will be generated, which will affect the user experience; The purpose of the invention is to propose a spatiotemporal keyword query method in a hybrid storage blockchain environment, which improves query efficiency and reduces communication overhead compared with traditional query methods. The specific beneficial technical effects are:
1、本发明提供的方法,基于按属性分类且赋予语义的区块链模型CSBM来处理混合存储区块链环境下的时空关键字查询问题,能够实现混合存储区块链环境下的高效时空关键字查询。1. The method provided by the present invention is based on the block chain model CSBM that is classified by attributes and given semantics to deal with the problem of space-time keyword query in the mixed storage blockchain environment, and can realize efficient space-time key in the mixed storage block chain environment. word query.
2、本发明时空关键字查询方法构建了基于B2F-BKM结构的链上两级索引结构,该结构由两部分组成,分别为块间B2F-树和块内BKM-树,完成对所有区块和事务的索引,该结构能够快速定位区块位置并找到查询事务,有效提升查询效率。2. The spatiotemporal keyword query method of the present invention builds a two-level index structure on the chain based on the B 2 F-BKM structure, and the structure consists of two parts, namely the inter-block B 2 F-tree and the intra-block BKM-tree. For the index of all blocks and transactions, this structure can quickly locate the block position and find the query transaction, effectively improving the query efficiency.
3、本发明提供的面向混合存储模式的区块链连接查询方法,通过遍历B2F-BKM结构进行链上条件查询,然后根据连接属性值进行链上链下数据连接查询,相比传统查询方法,避免了读取链下连接表中全部数据带来的不必要的通信开销,为用户提供更好的体验。3. The hybrid storage mode-oriented blockchain connection query method provided by the present invention performs on-chain conditional query by traversing the B 2 F-BKM structure, and then performs on-chain and off-chain data connection query according to the connection attribute value. Compared with traditional query This method avoids unnecessary communication overhead caused by reading all the data in the off-chain connection table and provides users with a better experience.
附图说明Description of drawings
图1本发明实施例混合存储区块链环境下的时空关键字查询方法中供应链场景的示意图;其中左侧为链上按属性分类且赋予语义的区块链模型CSBM,右侧为链下数据库;1 is a schematic diagram of a supply chain scenario in a spatiotemporal keyword query method in a hybrid storage blockchain environment according to an embodiment of the present invention; the left side is the blockchain model CSBM that is classified by attributes and given semantics on the chain, and the right side is the off-chain blockchain model CSBM database;
图2本发明实施例混合存储区块链环境下的时空关键字查询方法中按属性分类且赋予语义的区块CS-B结构示意图;2 is a schematic structural diagram of a block CS-B classified by attributes and given semantics in a spatiotemporal keyword query method in a hybrid storage blockchain environment according to an embodiment of the present invention;
图3本发明实施例混合存储区块链环境下的时空关键字查询方法中链上两级索引结构B2F-BKM结构的整体结构示意图;3 is a schematic diagram of the overall structure of the B2F-BKM structure of the two -level index structure on the chain in the spatiotemporal keyword query method in the hybrid storage blockchain environment according to the embodiment of the present invention;
图4本发明实施例混合存储区块链环境下的时空关键字查询方法中构建链上两级索引结构B2F-BKM结构流程图;4 is a flow chart of constructing a two-level index structure B 2 F-BKM structure on the chain in the spatiotemporal keyword query method in the hybrid storage blockchain environment according to the embodiment of the present invention;
图5本发明实施例混合存储区块链环境下的时空关键字查询方法中链上链下时空关键字查询方法流程图;5 is a flowchart of a method for querying spatiotemporal keywords on and off the chain in a method for querying spatiotemporal keywords in a hybrid storage blockchain environment according to an embodiment of the present invention;
图6本发明实施例混合存储区块链环境下的时空关键字查询方法中链上链下时空关键字查询方法实例查询过程图。FIG. 6 is a query process diagram of an example of a spatiotemporal keyword query method on-chain and off-chain in a spatiotemporal keyword query method in a hybrid storage blockchain environment according to an embodiment of the present invention.
具体实施方式Detailed ways
下面结合附图和实施例对本发明做进一步说明;The present invention will be further described below in conjunction with the accompanying drawings and embodiments;
本发明针对链上链下混合存储区块链的时空关键字查询问题,提出了一种混合存储区块链环境下的时空关键字查询方法。首先,针对查询语义较弱,构建按属性分类且赋予语义的区块链模型(Categorical and Semantic Blockchain Model,CSBM),为区块内的事务划分属性类型并添加语义。其次,针对查询效率较低,构建基于B2F-BKM结构的链上两级索引结构,该结构能够对所有区块和事务进行索引,有效提升查询效率。最后,针对通信开销较大,设计链上链下时空关键字查询方法,通过遍历B2F-BKM结构进行链上条件查询,然后根据连接属性值进行链上链下数据连接查询,相比传统查询方法减少了不必要的通信开销。The present invention proposes a spatiotemporal keyword query method in a hybrid storage blockchain environment, aiming at the problem of space-time keyword query in the mixed storage blockchain on the chain and off the chain. First of all, for the weak query semantics, a Categorical and Semantic Blockchain Model (CSBM) that is classified by attributes and given semantics is constructed, which divides the attribute types and adds semantics for the transactions in the block. Secondly, in view of the low query efficiency, a two-level index structure on the chain based on the B 2 F-BKM structure is constructed, which can index all blocks and transactions, effectively improving the query efficiency. Finally, in view of the large communication overhead, a space-time keyword query method on the chain and off the chain is designed. The conditional query on the chain is performed by traversing the B 2 F-BKM structure, and then the data connection query on the chain and off the chain is performed according to the connection attribute value. Compared with the traditional The query method reduces unnecessary communication overhead.
一种混合存储区块链环境下的时空关键字查询方法,具体步骤如下:A spatiotemporal keyword query method in a hybrid storage blockchain environment, the specific steps are as follows:
步骤1:构建按属性分类且赋予语义的区块链模型(Categorical and SemanticBlockchain Model,CSBM),结构如图1左侧部分所示。Step 1: Build a Categorical and Semantic Blockchain Model (CSBM) classified by attributes and given semantics. The structure is shown in the left part of Figure 1.
步骤1.1:CSBM包含多个按属性分类且赋予语义的区块(CS-B),CSBM=CS-B1+CS-B2+···+CS-Bn,每个CS-B包含区块头(B head)和按属性分类且赋予语义的区块体(CS-Bbody)两部分,结构如图2所示。CS-B=B head+CS-B body。B head与传统区块链区块头结构基本相同,包括将区块连接成链的前区块哈希值PrevHash、记录当前区块在链上位置的区块高度Block Height、记录区块生成时间的时间戳Timestamp以及挖矿难度Bits和随机数Nonce,而原本区块头中的Merkle根(Merkle Root)由本发明步骤2中构建的BKM-树的根节点(BKM-tree Root)代替,但同样基于块内事务的哈希值生成,用于保证块内事务的不可篡改。CS-B body中包含该区块内的全部事务,为这些事务划分属性类型并且添加语义;Step 1.1: CSBM contains multiple blocks (CS-B) classified by attributes and given semantics, CSBM=CS-B 1 +CS-B 2 +...+CS-B n , each CS-B contains a block The block header (B head) and the block body (CS-Bbody), which are classified by attributes and given semantics, are structured as shown in Figure 2. CS-B=B head+CS-B body. The structure of B head is basically the same as that of the traditional blockchain, including the hash value PrevHash of the previous block that connects the block into the chain, the Block Height that records the position of the current block on the chain, and the block height that records the block generation time. Timestamp, mining difficulty Bits and random number Nonce, and the Merkle Root (Merkle Root) in the original block header is replaced by the BKM-tree Root (BKM-tree Root) constructed in
步骤1.2:定义Tx为CSBM中一条按属性分类且赋予语义的事务,Tx={Key=v1,Time={time=v2},Coordinate={longitude=v3,latitude=v4},Keywords={kw1,kw2,···,kwn},Others={oth1,oth2,···,othn}},Key为该事务的主键,通过计算该事务的哈希值得到,使用长度为64的16进制字符串来表示;Time为时间属性类型,time为该事务的时间戳,Coordinate为空间属性类型,longitude为该事务的经度,latitude为该事务的纬度,vi为属性值,Keywords为关键字属性类型,kwi为该事务某个关键字的属性名称;Others为其他属性类型,othi为该事务的其他属性的名称。针对不同应用场合和事务类型,设定不同的属性名称;Step 1.2: Define T x as a transaction classified by attributes and given semantics in CSBM, T x ={Key=v 1 ,Time={time=v 2 },Coordinate={longitude=v 3 ,latitude=v 4 } ,Keywords={kw 1 ,kw 2 ,...,kw n },Others={oth 1 ,oth 2 ,...,oth n }}, Key is the primary key of the transaction, by calculating the hash of the transaction The value is obtained, which is represented by a hexadecimal string with a length of 64; Time is the time attribute type, time is the timestamp of the transaction, Coordinate is the space attribute type, longitude is the longitude of the transaction, and latitude is the latitude of the transaction. v i is the attribute value, Keywords is the keyword attribute type, kw i is the attribute name of a certain keyword of the transaction; Others is the other attribute type, and oth i is the name of the other attribute of the transaction. Set different attribute names for different applications and transaction types;
本实例中,记录生产信息的事务Keywords={operate,goods,factory},记录物流信息的事务Keywords={operate,goods,factory,driver}。以图2中事务Tj+1为例,该事务的主键为‘8C……9B’,记录了一条物流信息:‘t2时刻,司机Tom将factory2工厂生产的商品goods2运输到(134.3°E,42.5°N)位置’;In this example, the transaction Keywords={operate,goods,factory} for recording production information, and the transaction Keywords={operate,goods,factory,driver} for recording logistics information. Taking transaction T j+1 in Figure 2 as an example, the primary key of the transaction is '8C...9B', and a piece of logistics information is recorded: 'At time t 2 , the driver Tom transports goods 2 produced by factory 2 to (134.3 °E, 42.5°N) position';
步骤2:构建基于B2F-BKM结构的链上两级索引结构,结构如图3所示。该结构由两部分组成,分别为块间B2F-树和块内BKM-树,完成对所有区块和事务的索引,构建流程如图4所示,具体过程如下:Step 2: Build an on-chain two-level index structure based on the B 2 F-BKM structure, as shown in Figure 3. The structure consists of two parts, namely the inter-block B 2 F-tree and the intra-block BKM-tree, which completes the indexing of all blocks and transactions. The construction process is shown in Figure 4. The specific process is as follows:
步骤2.1:在每个区块内构建BKM-树替换原来的Merkle树。在构建新区块过程中,提取该区块内所有事务空间属性类型值和关键字属性类型值。模仿KD-树结构,根据事务的空间属性数据划分区域,直至每个区域只包含一条事务,事务只存储在叶子节点中,非叶子节点存储与数据划分相关的信息;然后为KD-树添加布隆过滤器字段,根据事务的关键字属性数据构造布隆过滤器,非叶子节点的布隆过滤器中包含其孩子节点的全部关键字;最后按照Merkle树的构造方式自底向上计算每个节点的哈希值形成BKM-树,并将根节点记录在区块头中,结构如图3所示;Step 2.1: Build a BKM-tree within each block to replace the original Merkle tree. In the process of constructing a new block, all transaction space attribute type values and keyword attribute type values in the block are extracted. Imitating the KD-tree structure, divide the area according to the spatial attribute data of the transaction, until each area contains only one transaction, the transaction is only stored in the leaf nodes, and the non-leaf nodes store the information related to the data division; then add a layout to the KD-tree In the Bloom filter field, a Bloom filter is constructed according to the keyword attribute data of the transaction. The Bloom filter of a non-leaf node contains all the keywords of its child nodes; finally, each node is calculated from the bottom up according to the construction method of the Merkle tree. The hash value of the BKM-tree is formed, and the root node is recorded in the block header. The structure is shown in Figure 3;
本实例中,如图3中右侧所示为对区块n中的所有事务构建块内BKM-树,比如,根节点包含该节点的哈希值,空间划分相关信息以及布隆过滤器,布隆过滤器BF7中,包含区块n中所有事务的关键字数据。叶子节点Pj+1记录了事务Tj+1的空间信息(134.3°E,42.5°N)、关键字信息(transport,factory2,goods2,Tom)和Key值(8C……9B),该节点的哈希值由以上信息串联哈希计算得到。In this example, as shown on the right side of Figure 3, an intra-block BKM-tree is constructed for all transactions in block n. For example, the root node contains the hash value of the node, space division related information and Bloom filter, Bloom filter BF 7 contains keyword data for all transactions in block n. Leaf node P j+1 records the space information (134.3°E, 42.5°N), keyword information (transport, factory 2 , goods 2 , Tom) and Key value (8C...9B) of transaction T j+1 , The hash value of this node is calculated by concatenating the hashes of the above information.
步骤2.2:构造基于块号、区块创建时间以及块内关键字的区块间B2F-树。获取新的区块数据,包括新区块的块号(block-id)、区块创建时间(timestamp)、块内关键字构成的布隆过滤器(bloomfilter-bf)、区块位于区块链文件中的地址偏移量。构造B2F-树节点,叶节点中键的格式为“block-id,timestamp,bf”,其中block-id来自位于区块头的区块高度(Block Height),timestamp来自位于区块头的时间戳(Timestamp),bf与块内BKM-树根节点中的布隆过滤器相同。叶节点中的指针记录了区块位于区块链文件中的地址偏移量。非叶子节点的布隆过滤器中包含其子树的所有关键字,用于过滤指针,判断该指针指向的节点是否含有相应的关键字,根据block-id按照B+树节点插入方式更新B2F-树,结构如图3所示;Step 2.2: Construct an inter-block B 2 F-tree based on block number, block creation time, and intra-block key. Obtain the new block data, including the block ID of the new block (block-id), the block creation time (timestamp), the bloom filter (bloomfilter-bf) composed of keywords in the block, and the block located in the blockchain file The address offset in . Construct a B 2 F-tree node. The format of the key in the leaf node is "block-id, timestamp, bf", where block-id comes from the block height (Block Height) located in the block header, and timestamp comes from the timestamp located in the block header. (Timestamp), bf is the same as the Bloom filter in the intra-block BKM-tree root node. The pointer in the leaf node records the address offset of the block in the blockchain file. The Bloom filter of a non-leaf node contains all the keywords of its subtree, which is used to filter the pointer, determine whether the node pointed to by the pointer contains the corresponding keyword, and update B 2 F according to the block-id according to the B+ tree node insertion method - tree, the structure is shown in Figure 3;
本实例中,如图3所示为对所有区块构建的B2F-树,比如,根节点的布隆过滤器BF5中包含其子树布隆过滤器BF1,BF2中的全部关键字,叶子节点((1,ts1,bf1),p1)表示第一个区块在ts1时刻创建,块内事务的关键字数据构成布隆过滤器bf1,p1指向该块的位置。In this example, Fig. 3 shows the B 2 F-tree constructed for all blocks. For example, the Bloom filter BF 5 of the root node includes all of its subtree Bloom filters BF 1 and BF 2 Keyword, leaf node ((1,ts 1 ,bf 1 ),p 1 ) indicates that the first block is created at ts 1 time, the key data of transactions in the block constitutes Bloom filter bf 1 , p 1 points to this block location.
步骤2.3:链上两级索引结构B2F-BKM结构构建完成;Step 2.3: The construction of the two-level index structure B 2 F-BKM structure on the chain is completed;
步骤3:设计链上链下时空关键字查询方法。获取查询条件,根据链上两级索引结构B2F-BKM结构,即B2F-树和BKM-树进行链上条件查询,并提取查询到的事务的连接属性值,根据该值进行链上链下连接查询并返回最终结果。流程如图5所示,实例查询过程如图6所示,具体过程如下:Step 3: Design on-chain and off-chain spatiotemporal keyword query methods. Obtain query conditions, perform on-chain conditional query according to the two-level index structure B 2 F-BKM structure on the chain, namely B 2 F-tree and BKM-tree, and extract the connection attribute value of the queried transaction, and perform chaining according to this value. Connect the query on and off the chain and return the final result. The process is shown in Figure 5, and the instance query process is shown in Figure 6. The specific process is as follows:
步骤3.1:定义混合存储区块链环境下的时空关键字查询由四元组构成,Q=[[Ts,Te],S,W,join-attr],其中[Ts,Te]为用户查询的时间范围,S为用户查询的空间范围,W为用户查询的关键字数据集合,包含若干关键字,join-attr为等式形式的连接条件,等式左边为链上需要连接的关键字属性名,等式右边为链下数据库表中连接关键字属性名;Step 3.1: Define the space-time keyword query in the hybrid storage blockchain environment is composed of quaternions, Q=[[T s ,T e ],S,W,join-attr], where [T s ,T e ] is the time range of the user query, S is the spatial range of the user query, W is the keyword data set of the user query, including several keywords, join-attr is the connection condition in the form of an equation, and the left side of the equation is the link that needs to be connected on the chain The keyword attribute name, the right side of the equation is the connection keyword attribute name in the off-chain database table;
本实例中,查询Q=[[t7,t9],[S],[goods=goods2,operate=transport],driver=Driver.dname]。In this example, query Q=[[t 7 , t 9 ], [S], [goods=goods 2 , operate=transport], driver=Driver.dname].
步骤3.2:根据查询Q中的时间和关键字条件,遍历B2F-树。基于B2F-树节点中键的“timestamp,bf”部分从根节点开始,根据时间条件选择分支指针,然后根据布隆过滤器判断该指针所指节点是否包含查询关键字W,包含则继续遍历,否则终止;按此方法直到叶子节点,查找出包含查询关键字W且时间大于等于‘Ts’、小于等于‘Te’的所有键并通过指针得到这些块的位置;Step 3.2: Traverse the B 2 F-tree according to the time and keyword conditions in query Q. Based on the "timestamp, bf" part of the key in the B 2 F-tree node, start from the root node, select the branch pointer according to the time condition, and then judge whether the node pointed to by the pointer contains the query keyword W according to the Bloom filter, and if it does, continue Traverse, otherwise terminate; according to this method until the leaf node, find out all the keys that contain the query keyword W and the time is greater than or equal to 'T s ', less than or equal to 'T e ', and obtain the location of these blocks through the pointer;
本实例中,通过遍历B2F-树获取到只有块号为9的区块符合查询时间条件,并包含全部查询关键字,获得该块的位置信息。In this example, by traversing the B 2 F-tree, it is obtained that only the block with block number 9 meets the query time condition and contains all query keywords, and the location information of the block is obtained.
步骤3.3:查询到具体区块后,根据查询Q中的空间和关键字条件,依次遍历位于区块内的BKM-树。按照KD-树的搜索方式从根节点开始自顶向下选择子节点,并判断子节点的布隆过滤器中是否包含全部查询关键字,若包含则遍历该子节点,若不包含,则放弃此分支。按照此方法直至叶子节点,即找到块内满足空间和关键字条件的所有事务。获取叶子节点中的键数据,即事务的哈希值(Key),再根据键数据得到原始数据,若满足时间条件,则将该数据加入链上结果集(Onchain-RS);Step 3.3: After querying a specific block, according to the space and keyword conditions in the query Q, traverse the BKM-tree located in the block in turn. According to the KD-tree search method, the child nodes are selected from the root node from the top to the bottom, and it is judged whether the Bloom filter of the child node contains all the query keywords. this branch. Follow this method until the leaf node, i.e. find all transactions within the block that satisfy the space and key conditions. Obtain the key data in the leaf node, that is, the hash value (Key) of the transaction, and then obtain the original data according to the key data. If the time condition is met, add the data to the on-chain result set (Onchain-RS);
本实例中,通过遍历区块9中的BKM-树获取到节点Pj和Pj+1符合空间和关键字查询条件,然后读取节点Pj和Pj+1中存储的哈希值Keyj和Keyj+1,找到原始数据Tj和Tj+1且原始数据符合时间条件,将事务Tj和Tj+1的原始数据加入Onchain-RS。In this example, by traversing the BKM-tree in block 9, it is obtained that nodes P j and P j+1 meet the space and keyword query conditions, and then the hash value Key stored in nodes P j and P j+1 is read. j and Key j+1 , find the original data T j and T j+1 and the original data meets the time condition, and add the original data of transaction T j and T j+1 to Onchain-RS.
步骤3.4:根据查询Q中的连接条件join-attr,提取Onchain-RS中原始数据的连接属性的值,根据该值查询链下数据库表中的数据,并加入链下结果集(Offchain-RS)。读取Offchain-RS和Onchain-RS内数据通过连接属性进行链上链下数据连接后,将结果存入结果集ResultSet;本实例中,根据原始数据得到连接属性driver的值Tom和James,并从链下Driver表中查找到关于司机Tom和James的数据,然后通过该连接属性值将链上数据与链下数据进行连接,得到结果R1和R2,并存入结果集ResultSet中。Step 3.4: According to the connection condition join-attr in the query Q, extract the value of the connection attribute of the original data in Onchain-RS, query the data in the off-chain database table according to the value, and add the off-chain result set (Offchain-RS) . After reading the data in Offchain-RS and Onchain-RS and connecting the data on the chain and off-chain through the connection attribute, the result is stored in the result set ResultSet; in this example, the values of the connection attribute driver Tom and James are obtained according to the original data, and the values of the connection attribute driver are obtained from the original data. The data about the drivers Tom and James is found in the off-chain Driver table, and then the on-chain data is connected with the off-chain data through the connection attribute value, and the results R1 and R2 are obtained, which are stored in the result set ResultSet.
步骤3.5:返回ResultSet,终止当前计算并等待下一次调用。Step 3.5: Return to ResultSet, terminate the current computation and wait for the next call.
Claims (7)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210650145.0A CN115048377B (en) | 2022-06-10 | 2022-06-10 | A spatiotemporal keyword query method in a hybrid storage blockchain environment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210650145.0A CN115048377B (en) | 2022-06-10 | 2022-06-10 | A spatiotemporal keyword query method in a hybrid storage blockchain environment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN115048377A true CN115048377A (en) | 2022-09-13 |
| CN115048377B CN115048377B (en) | 2025-03-28 |
Family
ID=83161322
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210650145.0A Active CN115048377B (en) | 2022-06-10 | 2022-06-10 | A spatiotemporal keyword query method in a hybrid storage blockchain environment |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115048377B (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116628285A (en) * | 2023-07-21 | 2023-08-22 | 北京邮电大学 | Block chain transaction data query method and device |
| CN118626517A (en) * | 2024-07-10 | 2024-09-10 | 浙江大学 | An efficient classification retrieval structure and its connection query method based on the tamper-proof property of blockchain data |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108769150A (en) * | 2018-05-14 | 2018-11-06 | 百度在线网络技术(北京)有限公司 | Data processing method, device, clustered node and the storage medium of block chain network |
| US20200285634A1 (en) * | 2019-03-08 | 2020-09-10 | Electronics And Telecommunications Research Institute | System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system |
| CN112800065A (en) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | Efficient data retrieval method based on improved block storage structure |
-
2022
- 2022-06-10 CN CN202210650145.0A patent/CN115048377B/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108769150A (en) * | 2018-05-14 | 2018-11-06 | 百度在线网络技术(北京)有限公司 | Data processing method, device, clustered node and the storage medium of block chain network |
| US20200285634A1 (en) * | 2019-03-08 | 2020-09-10 | Electronics And Telecommunications Research Institute | System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system |
| CN112800065A (en) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | Efficient data retrieval method based on improved block storage structure |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116628285A (en) * | 2023-07-21 | 2023-08-22 | 北京邮电大学 | Block chain transaction data query method and device |
| CN116628285B (en) * | 2023-07-21 | 2023-11-03 | 北京邮电大学 | Blockchain transaction data query method and device |
| CN118626517A (en) * | 2024-07-10 | 2024-09-10 | 浙江大学 | An efficient classification retrieval structure and its connection query method based on the tamper-proof property of blockchain data |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115048377B (en) | 2025-03-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6175835B1 (en) | Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks | |
| Chu et al. | A relational approach to incrementally extracting and querying structure in unstructured data | |
| CN106227800A (en) | The storage method of the big data of a kind of highlights correlations and management system | |
| CN105630881A (en) | Data storage method and query method for RDF (Resource Description Framework) | |
| CN102955843B (en) | Method for realizing multi-key finding of key value database | |
| CN107491561A (en) | A kind of urban transportation heterogeneous data integrated system and method based on body | |
| CN103440245A (en) | Line and column hybrid storage method of database system | |
| CN115048377A (en) | Time-space keyword query method under mixed storage block chain environment | |
| CN101963993B (en) | Method for fast searching database sheet table record | |
| CN106503040A (en) | It is suitable for KV data bases and its creation method of SQL query method | |
| CN106156271A (en) | Related information directory system based on distributed storage and foundation thereof and using method | |
| US20070130110A1 (en) | Combining nested aggregators | |
| CN113590610B (en) | Blood relationship expression method based on Elastic Search | |
| CN116881243A (en) | Learning type indexing method and system based on time sequence data characteristics | |
| CN110851616A (en) | RDF knowledge graph storage and management method based on domain subgraphs | |
| CN102117305B (en) | System and method for querying data and data management system | |
| US6826563B1 (en) | Supporting bitmap indexes on primary B+tree like structures | |
| CN114817512B (en) | Question-answer reasoning method and device | |
| CN114357051B (en) | SQL and NoSQL data conversion method based on native JSON | |
| CN107391584B (en) | Faceted Search Method and System Based on Formal Concept Lattice | |
| Bertino et al. | The indispensability of dispensable indexes | |
| US20050138024A1 (en) | Method and infrastructure for processing queries in a database | |
| CN114791967B (en) | Storage and query method of temporal RDF data based on bit matrix model | |
| CN116663053A (en) | Efficient verifiable query method for block chain supporting rich retrieval | |
| CN111159175B (en) | Incomplete database Skyline query method based on index |
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 |