CN109284340B - 资源受限智能对象中关系型数据的存储及检索方法 - Google Patents
资源受限智能对象中关系型数据的存储及检索方法 Download PDFInfo
- Publication number
- CN109284340B CN109284340B CN201811076313.XA CN201811076313A CN109284340B CN 109284340 B CN109284340 B CN 109284340B CN 201811076313 A CN201811076313 A CN 201811076313A CN 109284340 B CN109284340 B CN 109284340B
- Authority
- CN
- China
- Prior art keywords
- data
- header
- length
- identifier
- field
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种资源受限智能对象中关系型数据的存储及检索方法,该存储方法包括:基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,依次进行所述待存储关系型数据的数据表表头的定义和表记录的构建;根据所述数据表表头和所述表记录,对所述待存储关系型数据进行存储;其中,在所述数据表表头的定义和/或所述表记录的构建过程中,采用标识符技术进行标识。本发明能够有效提高表数据中数据的互操作性、兼容性及可扩展性,且有较高的存储效率,并能够有效降低上位机在访问和检索表记录数据时的耦合程度,简化数据访问流程。
Description
技术领域
本发明涉及数据管理技术领域,更具体地,涉及一种资源受限智能对象中关系型数据的存储及检索方法。
背景技术
在现实应用中,物联网中资源受限的智能对象中有存储、访问和检索关系型数据表的需求。如,各种传感器持续采样的感知数据,射频识别标签中记录包装箱/托盘(箱)/集装箱(架)中的各类物品信息,电池物联网编码等,这些数据需要在不同的智能对象中被实时动态的进行存储及检索。
但是,由于存储空间、MCU计算能力、无线通信及功耗等的原因,智能对象中一般没有完善的数据管理系统来存储和管理这些表数据。目前,具有表数据管理能力的智能对象主要分为两类:第一类智能对象通过提供一段可随机访问的存储空间,来存储管理关系型数据;第二类智能对象中具备简单的表结构定义及数据读写及检索功能。
其中,第一类是由智能对象提供连续存储空间,存储在该存储块上的数据被采用连续的文本方式进行存储和检索。目前连续存储空间的存储方式主要有用户自定义模板方式、标识符方式等。由于用户自定义模板模式为固定的数据结构,不能灵活定义表数据的结构,难以满足数据表的表结构动态变化的需求。而标识符方式主要是采用数据表的存储方式,能提高智能对象的存储效率,但是智能对象并不能够让上位机对其内部存储的表数据进行类似数据库SQL查询语言来灵活检索。而实际应用中,低耦合度的SQL语言查询智能对象内部的数据信息很重要,如通过查询集装箱射频识别标签中数据,可以不开箱即了解集装箱箱内物资的静态及动态信息。
其中,第二类是智能对象的存储空间中有简单的表定义功能,可以定义特定字段数量和字段长度的表结构。该类虽然可以动态灵活地定义数据表结构,并将表数据存储在动态定义的数据表中,但是由于特定格式的表虽然有表头结构,但是表头字段不能够和上位机的元数据进行关联,从而造成表数据不能给出映射和解析,上位机查询的语义也不能与智能对象中的查询语义进行关联,会造成查询的失败。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明提供一种资源受限智能对象中关系型数据的存储及检索方法,用以有效提高表数据中数据的互操作性、兼容性及可扩展性,并能够有效降低上位机在访问和检索表记录数据时的耦合程度,简化数据访问流程。
第一方面,本发明提供一种资源受限智能对象中关系型数据的存储方法,包括:基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,依次进行所述待存储关系型数据的数据表表头的定义和表记录的构建;根据所述数据表表头和所述表记录,对所述待存储关系型数据进行存储;其中,在所述数据表表头的定义和/或所述表记录的构建过程中,采用标识符技术进行标识。
其中,所述基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,进行所述数据表表头的定义的步骤进一步包括:若获知所述数据表字段长度信息为定长字段,且所述表操作支持信息为不支持表操作,则按照表头定义中无字段值的长度信息或者表头定义中有字段值的长度信息的形式,定义所述数据表表头;
其中,按照表头定义中无字段值的长度信息的形式,进行所述数据表表头的定义如下:
将所述数据表表头中各标识符字段依顺序进行排列,并在各所述标识符字段之间采用第一控制字符进行分隔;采用第二控制字符标识定长表数据类型,并采用第三控制字符和第四控制字符,对所述定长表数据类型和利用所述第一控制字符分隔后的所述标识符字段的数据块进行打包;
按照表头定义中有字段值的长度信息的形式,进行所述数据表表头的定义如下:
将所述数据表表头中各标识符字段和各所述标识符字段的值的长度信息依顺序分别进行排列,并在各所述标识符字段之间和各所述值的长度信息之间,采用第一控制字符进行分隔;在利用所述第一控制字符分隔后的所述标识符字段的数据块和利用所述第一控制字符分隔后的所述标识符字段的值的长度信息的数据块之间,采用第二控制字符进行分隔;采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述标识符字段的值的长度信息的数据块,作为一个整体数据块进行打包;
或者,
对所述数据表表头中每个标识符字段和所述标识符字段对应值的长度信息建立键-值长对,并在各所述键-值长对之间,采用第一控制字符进行分隔;采用第二控制字符标识定长表数据类型,并采用第三控制字符和第四控制字符,对所述定长表数据类型和所有利用所述第一控制字符分隔后的所述键-值长对,作为一个整体数据块进行打包;
或者,
将所述数据表表头中各标识符字段依顺序进行排列,并在各所述标识符字段之间采用第一控制字符进行分隔;对应每个所述标识符字段分配一个等长存储位,并在利用所述第一控制字符分隔后的所述标识符字段的数据块和所有等长存储位的数据块之间,采用第二控制字符进行分隔;采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述等长存储位的数据块,作为一个整体数据块进行打包。
其中,进行所述表记录的构建的步骤进一步包括:基于所述数据表表头,构建所述表记录如下:
VID10VID20...VIDi0...VIDn0VID11VID21...VIDi1...VIDn1VID12VID22...VIDi2...VIDn2...VID1jVID2j...VIDij...VIDnj...VID1nVID2n...VIDin...VIDnn;
其中,VIDij表示所述数据表表头中所述标识符字段IDi在第j行记录中对应的数值。
其中,所述基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,进行所述数据表表头的定义的步骤进一步包括:
若获知所述数据表字段长度信息为定长字段,且所述表操作支持信息为支持表操作,则,
若在表头属性信息文件中定义了所述数据表表头中各标识符字段的值的长度信息,则在所述表头属性信息文件中进行所述数据表表头的定义如下:
将所述数据表表头中各标识符字段和各所述标识符字段的值的长度信息依顺序进行分别排列,并在各所述标识符字段之间和各所述值的长度信息之间,采用第一控制字符进行分隔;在利用所述第一控制字符分隔后的所述标识符字段的数据块和利用所述第一控制字符分隔后的所述标识符字段的值的长度信息的数据块之间,采用第二控制字符进行分隔;采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述标识符字段的值的长度信息的数据块,作为一个整体数据块进行打包;
或者,
对所述数据表表头中每个标识符字段和所述标识符字段对应值的长度信息建立键-值长对,并在各所述键-值长对之间,采用第一控制字符进行分隔;采用第三控制字符和第四控制字符,对所有利用所述第一控制字符分隔后的所述键-值长对,作为一个整体数据块进行打包,并采用第二控制字符标识定长表数据类型;
或者,
将所述数据表表头中各标识符字段依顺序进行排列,并在各所述标识符字段之间采用第一控制字符进行分隔;对应每个所述标识符字段分配一个等长存储位,并在利用所述第一控制字符分隔后的所述标识符字段的数据块和所有等长存储位的数据块之间,采用第二控制字符进行分隔;采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述等长存储位的数据块,作为一个整体数据块进行打包;
若在所述表头属性信息文件和数据表中定义了各所述标识符字段的值的长度信息,则在所述表头属性信息文件中定义所述数据表表头中标识符字段的个数和各所述标识符字段的长度,并在所述数据表记录的第一行记录中定义各所述标识符字段的语义标识符。
其中,进行所述表记录的构建的步骤进一步包括:若在所述表头属性信息文件中定义了各所述标识符字段的值的长度信息,则从第0行开始存储记录数据,构建所述表记录;若在所述表头属性信息文件和所述数据表中定义了各所述标识符字段的值的长度信息,则采用所述字段标识符在数据表第0行的记录中存储,并从下一行开始存储记录数据,构建所述表记录。
其中,所述基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,进行所述数据表表头的定义的步骤进一步包括:若获知所述数据表字段长度信息为变长字段,则进行所述数据表表头的定义如下:
将所述数据表表头中各标识符字段依顺序进行排列,并在各所述标识符字段之间采用第一控制字符进行分隔;采用给定控制字符标识变长表数据类型,并采用第三控制字符和第四控制字符,对所述变长表数据类型和利用所述第一控制字符分隔后的所述标识符字段的数据块,作为一个整体数据块进行打包。
其中,进行所述表记录的构建的步骤进一步包括:若所述表记录有多个,则在多个所述表记录之间采用第五控制字符进行分隔,在同一所述表记录内的不同标识符字段的对应值之间,采用第六控制字符进行分隔。
第二方面,本发明提供一种根据如上第一方面所述的资源受限智能对象中关系型数据的存储方法所存储数据的检索方法,包括:根据数据选取Select检索语句,提取检索条件表达式SearchEXP,并获取对应数据表的数据表文件地址入口和数据表属性描述数据HeaderSTR;基于所述数据表属性描述数据HeaderSTR,获取所述数据表表头所关联的标识符字段,以及所述标识符字段对应赋值的长度信息和表数据长度类型信息;对于任一条所述表记录,基于所述标识符和所述标识符对应数值的长度信息,调用读取下一条表记录的ReadNextRecord函数,并采用GetFiled函数,分解该条表记录中各个标识符字段对应的数值,获取不同标识符字段的对应值;将分解得到的所述标识符字段的对应值代入SearchEXP进行计算,若计算得SearchEXP的值为真,则提取该条表记录中对应的字段值,放入满足设定检索条件的记录集合SearchSet中,否则,跳过该条表记录,并转入下一条表记录。
进一步的,在所述调用读取下一条表记录ReadNextRecord函数的步骤之前,所述检索方法还包括:利用所述数据表属性描述数据HeaderSTR,判断所述对应数据表为定长数据表或者变长数据表;若所述判断的结果为定长数据表,则,ReadNextRecord函数根据单条表记录的长度偏移量,读取下一条表记录,GetField函数通过计算所述表记录中每个所述标识符字段的长度偏移量,读取各所述标识符字段的对应值;若所述判断的结果为变长数据表,则,ReadNextRecord函数根据每条表记录结束时的控制字符,判断下一条表记录读取是否结束,GetField函数根据每条表记录中所述标识符字段的对应值之间的分隔符,判断各所述标识符字段的对应值是否结束。
第三方面,本发明提供一种电子设备,包括:至少一个处理器,以及至少一个与所述处理器通信连接的存储器;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上第一方面所述的资源受限智能对象中关系型数据的存储方法或者第二方面所述的资源受限智能对象中关系型数据的检索方法。
本发明提供的一种资源受限智能对象中关系型数据的存储及检索方法,在智能对象中存储表记录数据之前,采用标识符技术来描述表头信息,表头字段可按需求灵活定制,并且表数据存储采用表头定义和表记录构建两者相结合的形式实现,能够有效提高表数据中数据的互操作性、兼容性及可扩展性,且有较高的存储效率,并能够有效降低上位机在访问和检索表记录数据时的耦合程度,简化数据访问流程。
附图说明
图1为本发明实施例一种资源受限智能对象中关系型数据的存储方法的流程图;
图2为根据本发明实施例一种资源受限智能对象中关系型数据的存储体系示意图;
图3为根据本发明实施例在表头属性信息文件中定义字段个数N和每个字段的长度的示意图;
图4为本发明实施例一种资源受限智能对象中关系型数据的检索方法的流程图;
图5为本发明实施例一种电子设备的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实际应用中,由于存储空间、MCU计算能力、无线通信及功耗等的原因,智能对象中一般没有一套完善的数据管理系统来进行表数据的定义、管理和检索等。以GB28925-2012和ISO18000-7为例进行说明如下:
GB28925-2012中文件属性中将记录型EF看成一系列可标识的表数据记录,记录结果只支持固定长度以线性顺序组织。有源射频识别标签中EF文件属性记录了每条记录的长度,并没有具体划分每条记录中的字段长度及其与上位机中元数据的映射,EF文件属性也没有设定存储各个字段值域长度。
上位机要操作这些表数据,必须预先有表头数据结构完整的构造信息,其字段与对应数值的匹配映射主要依靠上位机进行计算,查询地址的计算也是由上位机计算。射频识别标签接收到上位机检索条件,根据设定的起始地址进行每条记录中各个字段逐项数据的读取,并代入上述检索条件中。
也即是,在没有任何先验的表结构信息的上位机是不能够访问、解析和查询标签中的表数据的。
ISO18000-7(2009年)标准草案中较上述GB28925-2012标准表数据的处理提供了更完备的功能,即在创建表结构的时候,除了定义每条记录的长度,还定义了每条记录中各个字段的长度。这使得射频识别标签可以在没有上位机计算相关地址的条件下,射频识别标签内部可独立进行表数据中行数据、字段数据的精确定位和检索。
但是,由于创建表结构时,该标准没有定义各个表头字段的语义,这使得上位机在访问或检索该表时,需要预先知道表头字段语义信息,才能够检索该数据表,并且检索结构的记录在上位机中没有语义关联。
针对上述问题,基于标识符技术的表数据存储和检索方法在本发明实施例中被提出。即,在智能对象中存储表记录数据之前,采用标识符技术来描述表头信息,表头字段可按需求灵活定制,此数据表的自描述信息可极大的提高表数据中数据的互操作性、兼容性和扩展性。
同时,该方法还可以降低上位机在访问和检索表记录数据时耦合程度。上位机不需要了解表数据的先验信息,即可通过先获取智能对象中自描述的表头信息,再像传统的数据库SQL查询语言一样,对各类智能对象中的数据进行检索,因此不需要在上位机中先计算访问地址之后再根据地址进行检索访问。
作为本发明实施例的一个方面,本实施例提供一种资源受限智能对象中关系型数据的存储方法,参考图1,为本发明实施例一种资源受限智能对象中关系型数据的存储方法的流程图,包括:
S101,基于智能对象中待存储关系型数据的数据表字段长度信息和智能对象的表操作支持信息,按照对应预设定义规则,依次进行待存储关系型数据的数据表表头的定义和表记录的构建,其中,在所述数据表表头的定义和/或所述表记录的构建过程中,采用标识符技术进行标识。
可以理解为,本发明实施例的待存储关系型数据至少包含两个属性信息,即数据表字段长度信息和智能对象的表操作支持信息。而通常数据表分为定长字段数据表和变长字段数据表,对应数据表字段长度信息即分为定长字段和变长字段。智能对象的表操作支持信息则包括不支持表操作和支持表操作。
其中,定长字段数据表是指表头中每个字段的值长度是固定值,且表中每条记录中的每一个字段都有赋值或者占位符;变长字段数据表是指表头中存在字段的值长度不是固定的,或者表中存在某一条记录中的字段没有赋值。
针对上述两种属性信息的不同组合形式,事先会建立对应的表头定义和表记录构建规则,即预设定义规则。可以理解的是,每一种组合形式对应一种对应的预设定义规则。
则,对于待存储的关系型数据,即待存储关系型数据,可以获取其所实际对应的上述两种属性信息,并根据其所实际对应的上述两种属性信息,查找这两种属性信息对应的预设定义规则。之后,根据查找到的预设定义规则,先进行待存储关系型数据的数据表表头的定义,再根据定义结果和预设定义规则,进行待存储关系型数据的表记录的构建。而在进行数据表表头的定义和/或表记录的构建的过程中,采用标识符技术,对数据进行标识。
S102,根据数据表表头和表记录,对待存储关系型数据进行存储。
可以理解为,在根据上述步骤进行待存储关系型数据的数据表表头的定义和表记录的构建之后,根据定义的数据表表头和构建的表记录,实现对待存储关系型数据的存储,从而在进行表数据的检索时,可以根据数据表表头和表记录进行相应数据的检索。
本发明实施例提供的一种资源受限智能对象中关系型数据的存储方法,在智能对象中存储表记录数据之前,采用标识符技术来描述表头信息,表头字段可按需求灵活定制,并且表数据存储采用表头定义和表记录构建两者相结合的形式实现,能够有效提高表数据中数据的互操作性、兼容性及可扩展性,并能够有效降低上位机在访问和检索表记录数据时的耦合程度,简化数据访问流程。
可以理解的是,在进行具体数据表表头定义和表记录的构建时,要用到一些通用概念,首先进行概念界定如下:
标识符字段是指领域元数据字典中元数据缩短的唯一识别标识符,这些标识符对应的元数据是表头定义的字段。这些标识符是从元数据字典中挑选出来的元数据、可能写入资源受限的智能对象中。这些元数据的标识符较元数据字典中元数据标识符要短,标识符一般为2字节左右长。
符号说明:非打印字符,主要是从ASCII码字符集中选择用于分隔相关单元和控制结构的非打印字符,本发明实施例中主要用到了HT、VT、GS和RS等非打印字符。
其它符号说明:IDx表示元数据标识符;IDlenx表示IDx字符串长度;VIDlenx表示IDx对应值的字符串长度。VIDyx表示标识符字段IDx在第y行记录中对应的值。
其中,根据上述实施例可选的,基于智能对象中待存储关系型数据的数据表字段长度信息和智能对象的表操作支持信息,按照对应预设定义规则,进行数据表表头的定义的步骤进一步包括:若获知数据表字段长度信息为定长字段,且表操作支持信息为不支持表操作,则按照表头定义中无字段值的长度信息或者表头定义中有字段值的长度信息的形式,定义数据表表头。
其中,按照表头定义中无字段值的长度信息的形式,定义数据表表头如下:
将数据表表头中各标识符字段依顺序进行排列,并在各标识符字段之间采用第一控制字符进行分隔;
采用第二控制字符标识定长表数据类型,并采用第三控制字符和第四控制字符,对定长表数据类型和利用第一控制字符分隔后的标识符字段的数据块进行打包。
可以理解的是,其中第一控制字符、第二控制字符、第三控制字符和第四控制字符可以是不同的ASCII码字符集中的非打印字符。例如,定义数据表表头为HTID1GSID2GS...GSIDiGS...GSIDnRSVT;其中,IDi表示数据表表头中第i个标识符字段的ID号,HT、GS、RS和VT表示ASCII码字符集中的非打印字符,HT和VT用于打包表头数据,GS用于分隔不同标识符字段,RS用于标识定长表数据类型。
其中,按照表头定义中有字段值的长度信息的形式,可以定义数据表表头如下:
将数据表表头中各标识符字段和各标识符字段的值的长度信息依顺序进行分别排列,并在各标识符字段之间和各标识符字段的值的长度信息之间,采用第一控制字符进行分隔;
在利用第一控制字符分隔后的标识符字段的数据块和利用第一控制字符分隔后的标识符字段的值的长度信息的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用第二控制字符分隔后的标识符字段的数据块和标识符字段的值的长度信息的数据块,作为一个整体数据块进行打包。
例如,
HTID1GSID2GS...GSIDiGS...GSIDnRSVIDlen1GSVIDlen2GS...GSVIDleniGS...GSVIDlennVT。
或者,
对数据表表头中每个标识符字段和标识符字段对应值的长度信息建立键-值长对,并在各键-值长对之间,采用第一控制字符进行分隔;
采用第二控制字符标识定长表数据类型,并采用第三控制字符和第四控制字符,对定长表数据类型和所有利用第一控制字符分隔后的键-值长对,作为一个整体数据块进行打包。
例如,
HTID1VIDlen1GSID2VIDlen2GS...GSIDiVIDleniGS...GSIDnVIDlennRSVT。其中的第二控制字符的位置不限,如可以在第四控制字符之前,也可以在打包字段的其它中间位置。
或者,
将数据表表头中各标识符字段依顺序进行排列,并在各标识符字段之间采用第一控制字符进行分隔;
对应每个标识符字段分配一个等长存储位,并在利用第一控制字符分隔后的标识符字段的数据块和所有等长存储位的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用第二控制字符分隔后的标识符字段的数据块和等长存储位的数据块,作为一个整体数据块进行打包。
例如,
HTID1GSID2GS...GSIDiGS...GSIDnRS等长存储位1等长存储位2...等长存储位i...等长存储位nVT。
其中,上述IDi表示数据表表头中第i个标识符字段的ID号,VIDlen1表示第i个标识符字段的值的长度信息,HT、GS、RS和VT表示ASCII码字符集中的非打印字符,HT和VT用于打包表头数据,GS用于分隔不同标识符字段,RS用于标识定长表数据类型。
其中,根据上述实施例可选的,进行表记录的构建的步骤进一步包括:基于数据表表头,构建表记录如下:
VID10VID20...VIDi0...VIDn0VID11VID21...VIDi1...VIDn1VID12VID22...VIDi2...VIDn2...VID1jVID2j...VIDij...VIDnj...VID1nVID2n...VIDin...VIDnn;
其中,VIDij表示数据表表头中标识符字段IDi在第j行记录中对应的数值。
其中,根据上述实施例可选的,基于智能对象中待存储关系型数据的数据表字段长度信息和智能对象的表操作支持信息,按照对应预设定义规则,进行数据表表头的定义的步骤进一步包括:若获知数据表字段长度信息为定长字段,且表操作支持信息为支持表操作,则,
若在表头属性信息文件中定义了数据表表头中各标识符字段的值的长度信息,则在表头属性信息文件中定义数据表表头如下:
将数据表表头中各标识符字段和各标识符字段的值的长度信息依顺序进行分别排列,并在各标识符字段之间和各值的长度信息之间,采用第一控制字符进行分隔;
在利用第一控制字符分隔后的标识符字段的数据块和利用第一控制字符分隔后的标识符字段的值的长度信息的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用第二控制字符分隔后的标识符字段的数据块和标识符字段的值的长度信息的数据块,作为一个整体数据块进行打包。
例如,
HTID1GSID2GS...GSIDiGS...GSIDnRSVIDlen1GSVIDlen2GS...GSVIDleniGS...GSVIDlennVT。
或者,
对数据表表头中每个标识符字段和标识符字段对应值的长度信息建立键-值长对,并在各键-值长对之间,采用第一控制字符进行分隔;
采用第二控制字符标识定长表数据类型,并采用第三控制字符和第四控制字符,对定长表数据类型和所有利用第一控制字符分隔后的键-值长对,作为一个整体数据块进行打包。
例如,
HTID1VIDlen1GSID2VIDlen2GS...GSIDiVIDleniGS...GSIDnVIDlennRSVT。其中的第二控制字符的位置不限,如可以在第四控制字符之前,也可以在打包字段的其它中间位置。
或者,
将数据表表头中各标识符字段依顺序进行排列,并在各标识符字段之间采用第一控制字符进行分隔;
对应每个标识符字段分配一个等长存储位,并在利用第一控制字符分隔后的标识符字段的数据块和所有等长存储位的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用第二控制字符分隔后的标识符字段的数据块和等长存储位的数据块,作为一个整体数据块进行打包。
例如,
HTID1GSID2GS...GSIDiGS...GSIDnRS等长存储位1等长存储位2...等长存储位i...等长存储位nVT。
其中,上述IDi表示数据表表头中第i个标识符字段的ID号,VIDlen1表示第i个标识符字段的值的长度信息,HT、GS、RS和VT表示ASCII码字符集中的非打印字符,HT和VT用于打包表头数据,分别为第三控制字符和第四控制字符,GS用于分隔不同标识符字段,作为第一控制字符,RS用于标识定长表数据类型,作为第二控制字符。
若在所述表头属性信息文件和数据表中定义了各所述标识符字段的值的长度信息,则在表头属性信息文件中定义数据表表头中标识符字段的个数和各标识符字段的长度,并在数据表记录的第一行记录中定义各标识符字段的语义标识符。
其中,根据上述实施例可选的,进行表记录的构建的步骤进一步包括:
若在表头属性信息文件中定义了各标识符字段的值的长度信息,则从第0行开始存储记录数据,构建表记录;
若在表头属性信息文件和数据表中定义了各标识符字段的值的长度信息,则采用字段标识符在数据表第0行的记录中存储,并从下一行开始存储记录数据,构建表记录。
其中,根据上述实施例可选的,基于智能对象中待存储关系型数据的数据表字段长度信息和智能对象的表操作支持信息,按照对应预设定义规则,进行数据表表头的定义的步骤进一步包括:若获知数据表字段长度信息为变长字段,则进行定义数据表表头如下:
将数据表表头中各标识符字段依顺序进行排列,并在各标识符字段之间采用第一控制字符进行分隔;
采用给定控制字符标识变长表数据类型,并采用第三控制字符和第四控制字符,对变长表数据类型和利用第一控制字符分隔后的标识符字段的数据块,作为一个整体数据块进行打包。
例如,HTID1GSID2GS...GSIDiGS...GSIDnGSVT;
其中,IDi表示数据表表头中第i个标识符字段的ID号,HT、GS和VT表示ASCII码字符集中的非打印字符,HT和VT用于打包表头数据,分别为第三控制字符和第四控制字符,IDi之间的GS用于分隔不同标识符字段,为第一控制字符。可以理解的是,其中VT之前的GS即为给定控制字符,用于标识变长表数据类型。该给定控制字符也可以是其它给定控制字符。
其中,根据上述实施例可选的,进行表记录的构建的步骤进一步包括:若表记录有多个,则在多个表记录之间采用第五控制字符进行分隔,在同一表记录内的不同标识符字段之间,采用第六控制字符进行分隔。可以理解的是,其中的第五控制字符和第六控制字符可以与上述第一至四控制字符相同,也可以不同。
具体而言,对于上述各实施例,鉴于有源射频识别标签是一类典型的智能对象,以有源射频识别标签为背景,来对本发明实施例中智能对象的关系型数据的存储和检索进行总体说明,但不对本发明的保护范围进行限制。
参考图2,为根据本发明实施例一种资源受限智能对象中关系型数据的存储体系示意图,图中可见,为了降低表数据操作的耦合程度,表数据存储采用表头定义和表记录构建两者相结合的实现形式,两者为可分离状态或者为一体状态。但是在表存储和表操作中视为一体。
首先,对于定长字段数据表,进行数据表表头定义如下:
定长字段数据表在表头定义和表记录构建中,均分为智能对象不支持表操作和支持表操作两种情况,定长字段数据表的表头定义采用非打印字符HT和VT对表头进行打包,采用非打印字符RS标识定长字段数据表。下面分智能对象不支持表操作和支持表操作两种情况下关系型数据表表头的定义,然后再构建数据表记录。
1.智能对象不支持表操作的表头定义:
在不支持表操作的智能对象中,即智能对象中只有一段连续的存储空间可供使用。表头定义分为表头定义中无字段值的长度信息和表头定义中有字段值的长度信息两种定义形式。
(1)表头定义中无字段值的长度信息。
无字段值长度的表头定义方式如下,主要是由HT和VT打包表头数据,表头内的标识符字段之间采用非打印字符GS进行分隔,在VT前采用RS标识为定长表数据类型。
HTID1GSID2GSID3GSID4RSVT。
这种表头字段定义方式没有在表头字段定义中写入字段值的长度信息,因而在上位机检索数据表中记录数据时,需要先读出表头的标识符字段ID号,然后在上位机中检索标识符ID对应值的长度,并将这些字段的值长度传递给智能对象,然后由智能对象根据字段值长度来划分表记录、记录中字段的值,进而进行下一步的关系型数据表的检索。
(2)表头定义中有字段值的长度信息。
有三种表头定义方法:
方法一:字段和字段值长度分开定义,两者之间采用非打印字符RS进行分隔。字段和字段之间采用非打印字符GS进行分隔,字段值长度和字段值长度之间也采用非打印字符GS进行分隔。整个表头定义采用非打印字符HT和VT进行打包。
HTID1GSID2GSID3GSID4RSVIDlen1GSVIDlen2GSVIDlen3GSVIDlen4VT。
方法二:改变“键-值对”(key-value)的表达方式,在表头定义中变为“键-值长对”(key-valuelength)表达方式,即键及其值的长度构成一个对(pair),并将这个“对”放入到由HT和VT定义表头打包的包中。
HTID1VIDlen1GSID2VIDlen2GSID3VIDlen3GSID4VIDlen4RSVT。
当智能对象处理器识读到HT和VT打包的表头时,在进行解析时,不再按照“键-值对”来解析,二是按照“键-值长对”来解析,从而可以获得表头字段的值长度数据。
方法三:字段和字段值长度分开定义,两者之间采用非打印字符RS进行分隔。字段和字段之间采用非打印字符GS进行分隔。每个字段值长度为1字节,字段值长度之间无分隔符,其字节个数与前面定义的字段个数相同。整个表头定义采用非打印字符HT和VT进行打包。
HTID1GSID2GSID3GSID4RS(1字节)(1字节)(1字节)(1字节)VT。
2.智能对象支持表操作的表头定义。
支持表操作的智能对象中,表头定义也有两种方法,主要划分依据是表数据中是否有字段标识符。
方法一:表数据中没有字段标识符,在表文件属性信息中定义表头。
在表文件属性信息中按照表头定义中有字段值的长度信息的表头定义的三种方式中的任何一种进行表头定义。即,定义形式为以下三种形式中的任一种:
HTID1GSID2GSID3GSID4RSVIDlen1GSVIDlen2GSVIDlen3GSVIDlen4VT;
或者,
HTID1VIDlen1GSID2VIDlen2GSID3VIDlen3GSID4VIDlen4RSVT;
或者,
HTID1GSID2GSID3GSID4RS(1字节)(1字节)(1字节)(1字节)VT。
方法二:在表文件属性信息中定义各个字段长度,而标识符字段在数据表中定义。具体而言,在表头属性信息文件中定义表头字段个数和字段长度,在数据表中具体定义表头字段的语义标识符,这两者的信息可以是分开的,也可以是合并在一起的。
在表头属性信息文件中定义字段个数N和每个字段的长度(例如,字段个数N及每个字段长度定义均为1字节),定义结果如图3所示,为根据本发明实施例在表头属性信息文件中定义字段个数N和每个字段的长度的示意图。
在数据表中具体定义表头字段如表1所示,为根据本发明实施例定义的一种数据表表头,即将标识符字段置于表记录的第0行,真正存储表记录数据的入口地址在第1行。
表1,根据本发明实施例定义的一种数据表表头
第0行 | ID<sub>1</sub> | ID<sub>2</sub> | ID<sub>3</sub> | ID<sub>4</sub> |
第1行 | VID<sub>11</sub> | VID<sub>21</sub> | VID<sub>31</sub> | VID<sub>41</sub> |
第2行 | VID<sub>12</sub> | VID<sub>22</sub> | VID<sub>32</sub> | VID<sub>42</sub> |
第3行 | VID<sub>13</sub> | VID<sub>23</sub> | VID<sub>33</sub> | VID<sub>43</sub> |
其次,对于定长字段数据表表记录的构建如下:
在表记录的构建方面,也分为智能对象不支持表操作和支持表操作两种情况。
1.智能对象不支持表操作的表记录构建。
在上述无字段值长度信息的表头定义以及有字段值长度信息的三种表头定义方法,在这上述各种情况下的表记录构建方式如下:
VID10VID20VID30VID40VID11VID21VID31VID41VID12VID22VID32VID42VID13VID23VID33VID43。
2.智能对象支持表操作的表记录构建。
智能对象支持表操作的表记录构建分为两种情况,对于表头定义支持表操作的情况,分为标识符字段在数据表第0行和纯表记录数据,分别如下列两表所示,其中,表2为标识符字段在数据表第0行的表记录,对应上述表数据中没有字段标识符的表头定义情况,表3为纯表记录数据的表记录,对应上述在表文件属性信息中定义各个字段长度,而标识符字段在数据表中定义的情况。
表2,标识符字段在数据表第0行的表记录
第0行 | ID<sub>1</sub> | ID<sub>2</sub> | ID<sub>3</sub> | ID<sub>4</sub> |
第1行 | VID<sub>11</sub> | VID<sub>21</sub> | VID<sub>31</sub> | VID<sub>41</sub> |
第2行 | VID<sub>12</sub> | VID<sub>22</sub> | VID<sub>32</sub> | VID<sub>42</sub> |
第3行 | VID<sub>13</sub> | VID<sub>23</sub> | VID<sub>33</sub> | VID<sub>43</sub> |
表3,纯表记录数据的表记录
第0行 | VID<sub>10</sub> | VID<sub>20</sub> | VID<sub>30</sub> | VID<sub>40</sub> |
第1行 | VID<sub>11</sub> | VID<sub>21</sub> | VID<sub>31</sub> | VID<sub>41</sub> |
第2行 | VID<sub>12</sub> | VID<sub>22</sub> | VID<sub>32</sub> | VID<sub>42</sub> |
第3行 | VID<sub>13</sub> | VID<sub>23</sub> | VID<sub>33</sub> | VID<sub>43</sub> |
实际上,上述纯表记录数据表3的实际存储序列为:
VID10VID20VID30VID40VID11VID21VID31VID41VID12VID22VID32VID42VID13VID23VID33VID43。
对于变长字段的数据表,同样先要进行数据表表头的定义,再进行表记录的构建。因为字段值长度变化较大,变长字段数据表一般不适宜存储在智能对象的数据表中,因而考虑智能对象提供连续存储空间。
1.变长字段数据表的数据表表头定义。
变长数据表表头定义与定长数据表无字段值长表头定义方式基本相同,也是由HT和VT打包表头数据,表头内的标识符字段之间采用非打印字符GS进行分隔。所不同的是,在VT前不是采用RS标识定长数据表,而是采用GS标识变长数据表。变长表数据表头字段定义如下所示。
HTID1GSID2GSID3GSID4GSVT。
由于变长表数据的表头字段没有字段值长信息,所以在表记录之间、以及记录中字段与字段之间需采用非打印字符进行分隔。
1.变长字段数据表的表记录构建。
变长表记录数据构建时,在表记录之间采用RS进行分隔,在同一条记录内的不同标识符字段之间采用GS进行分隔,如下所示:
VID10GSVID20GSVID30GSVID40RS;
VID11GSVID21GSVID31GSVID41RS;
VID12GSVID22GSVID32GSVID42RS;
VID13GSVID23GSVID33GSVID43RS。
作为本发明实施例的另一个方面,本发明实施例根据上述实施例的存储方法对数据的存储,提供一种资源受限智能对象中关系型数据的检索方法,参考图4,为本发明实施例一种资源受限智能对象中关系型数据的检索方法的流程图,包括:
S401,根据数据选取检索Select语句,提取检索条件表达式SearchEXP,并获取对应数据表的数据表文件地址入口和数据表属性描述数据HeaderSTR;
S402,基于数据表属性描述数据HeaderSTR,获取数据表表头所关联的标识符字段,以及标识符字段对应赋值的长度信息和表数据长度类型信息;
S403,对于任一条表记录,基于标识符和标识符对应数值的长度信息,调用读取下一条表记录的ReadNextRecord函数,并采用GetFiled函数,分解该条表记录中各个标识符字段对应的数值,获取不同标识符字段的对应值;
S404,将分解得到的标识符字段的对应值代入SearchEXP进行计算,若计算得SearchEXP的值为真,则提取该条表记录中对应的字段值,放入满足设定检索条件的记录集合SearchSet中,否则,跳过该条表记录,并转入下一条表记录。
可以理解为,本实施例是在根据上述实施例的存储方法对数据进行存储的基础上,来对所存储的关系型数据进行检索的方法。具体而言,智能对象中可能存在多种异构类型的数据表结构和数据,但是每个关系型数据表具有自描述信息,包括字段长度、个数及字段语义信息等。
上述自描述信息可为无先验信息的上位机访问和检索数据表奠定了基础,对上位机的检索理解数据表的要求降到最低。也即是说,上位机无需预先知道表结构信息,就可以像数据库SQL语言检索一样的方式来智能对象中的表数据信息。
例如,在检索根据上述实施例中定义的无字段值长度表头的表数据时,上位机需要读取智能对象中表头信息,并在上位机内或者网络服务器中检索各个标识符的值长度并提供给智能对象,才能够进行进一步的类似数据库检索语言SQL检索。
资源受限的智能对象中必须支持对上述表数据结构的相关支持功能。当上位机提出类似数据库SQL检索语言的检索式的时候,智能对象中主要的检索过程如下:
步骤1,智能对象接收来自上位机Select语句,取出检索条件表达式SearchEXP,并找到对应表的获取数据表地址入口及其属性描述数据HeaderSTR;
步骤2,从HeaderSTR中获取表头定义所关联的标识符,以及标识符对应数值的长度;(另外还可以包括最大记录数、记录长度等,此处不作限制;)
步骤3,如果没有下一条表记录,则处理程序退出;否则,执行读取下一条表记录ReadNextRecord函数,并采用GetFiled函数分解该条表记录以获得不同标识符字段的对应值;
步骤4,将上述分解得到的字段对应值代入SearchEXP并进行计算,若计算得SearchEXP的值为真,则取出该表记录中对应的字段值(Select语句部分要求),放入符合条件的表记录集合SearchSet中,否则若SearchEXP的值为假,则跳过该条表记录;
步骤5,转入步骤3,执行针对下一条表记录的检索。
可以理解的是,本发明实施例的检索方法是在根据上述实施例的存储方法对数据进行存储的基础上实现的,因此,在上述各实施例的资源受限智能对象中关系型数据的存储方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
本发明实施例提供的一种资源受限智能对象中关系型数据的检索方法,由于表数据存储采用表头定义和表记录构建两者相结合的形式实现,在进行数据检索时,能够有效降低上位机在访问和检索表记录数据时的耦合程度,简化数据访问流程。
进一步的,在上述实施例的基础上,在调用读取下一条表记录ReadNextRecord函数的步骤之前,本发明实施例的检索方法还包括:
利用数据表属性描述数据HeaderSTR,判断对应数据表为定长数据表或者变长数据表;
若判断的结果为定长数据表,则,ReadNextRecord函数根据单条表记录的长度偏移量,读取下一条表记录,GetField函数通过计算表记录中每个标识符字段的长度偏移量,读取各标识符字段的对应值;
若判断的结果为变长数据表,则,ReadNextRecord函数根据每条表记录结束时的非打印控制字符,判断该条表记录读取是否结束,GetField函数根据每条表记录中标识符字段的对应值之间的分隔符,判断各标识符字段的对应值是否结束。
可以理解为,在根据上述实施例的步骤3中,ReadNextRecord函数和GetField函数需要事先判断该数据表是定长数据表还是变长数据表。
对于定长数据表:ReadNextRecord函数主要是根据单条表记录的长度偏移量来读取下一条表记录;GetField函数主要是通过计算每个字段长度的偏移量来读取各个字段的对应数值。
对于变长数据表:ReadNextRecord函数主要是根据每条表记录结束时的非打印控制字符RS来判断下一条表记录是否结束;GetField函数主要是根据每条表记录中字段对应数值之间的分隔符来判断各个字段的对应数值是否结束。
本发明实施例提供的一种资源受限智能对象中关系型数据的检索方法,利用ReadNextRecord函数和GetField函数实现判断当前数据表的字段长度信息,即判断为定长数据表还是变长数据表,能够迅速选择对应的数据读取方式进行检索,能够有效提高检索效率。
作为本发明实施例的又一个方面,本实施例根据上述实施例提供一种电子设备,参考图5,为本发明实施例一种电子设备的结构框图,包括:至少一个处理器501,以及至少一个与处理器501通信连接的存储器502。其中,存储器502中存储有可在处理器501上运行的计算机程序,处理器501执行该计算机程序时,实现如上述实施例的资源受限智能对象中关系型数据的存储方法或者检索方法。
可以理解为,该电子设备中至少包含一个处理器501和一个存储器502,且处理器501和存储器502之间形成通信连接,可以进行相互间信息和指令的传输,如处理器501从存储器502中读取资源受限智能对象中关系型数据的存储方法或者检索方法的程序指令等。
电子设备运行时,处理器501调用存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:基于智能对象中待存储关系型数据的数据表字段长度信息和智能对象的表操作支持信息,按照对应预设定义规则,依次进行待存储关系型数据的数据表表头的定义和表记录的构建;或者根据数据选取Select语句,提取检索条件表达式SearchEXP,并获取对应数据表的数据表地址入口和属性描述数据HeaderSTR等。
本发明另一个实施例中,提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行如上述实施例的资源受限智能对象中关系型数据的存储方法或者检索方法。
可以理解为,上述的计算机指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供的一种电子设备和一种非暂态计算机可读存储介质,在智能对象中存储表记录数据之前,采用标识符技术来描述表头信息,表头字段可按需求灵活定制,并且表数据存储采用表头定义和表记录构建两者相结合的形式实现,能够有效提高表数据中数据的互操作性、兼容性及可扩展性,并能够有效降低上位机在访问和检索表记录数据时的耦合程度,简化数据访问流程。
可以理解的是,以上所描述的电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的说明书中,说明了大量具体细节。然而应当理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种资源受限智能对象中关系型数据的存储方法,其特征在于,包括:
基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,依次进行所述待存储关系型数据的数据表表头的定义和表记录的构建;
根据所述数据表表头和所述表记录,对所述待存储关系型数据进行存储;
其中,在所述数据表表头的定义和/或所述表记录的构建过程中,采用标识符技术进行标识;
所述基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,依次进行所述待存储关系型数据的数据表表头的定义的步骤进一步包括:
若获知所述数据表字段长度信息为定长字段,且所述表操作支持信息为不支持表操作,则按照表头定义中有字段值的长度信息的形式,定义所述数据表表头;
所述按照表头定义中有字段值的长度信息的形式,定义所述数据表表头具体包括:
将所述数据表表头中各标识符字段和各所述标识符字段的值的长度信息依顺序分别进行排列,并在各所述标识符字段之间和各所述值的长度信息之间,采用第一控制字符进行分隔;
在利用所述第一控制字符分隔后的所述标识符字段的数据块和利用所述第一控制字符分隔后的所述标识符字段的值的长度信息的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述标识符字段的值的长度信息的数据块,作为一个整体数据块进行打包;
或者,
对所述数据表表头中每个标识符字段和所述标识符字段对应值的长度信息建立键-值长对,并在各所述键-值长对之间,采用第一控制字符进行分隔;
采用第二控制字符标识定长表数据类型,并采用第三控制字符和第四控制字符,对所述定长表数据类型和所有利用所述第一控制字符分隔后的所述键-值长对,作为一个整体数据块进行打包;
或者,
将所述数据表表头中各标识符字段依顺序进行排列,并在各所述标识符字段之间采用第一控制字符进行分隔;
对应每个所述标识符字段分配一个等长存储位,并在利用所述第一控制字符分隔后的所述标识符字段的数据块和所有等长存储位的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述等长存储位的数据块,作为一个整体数据块进行打包。
2.根据权利要求1所述的存储方法,其特征在于,进行所述表记录的构建的步骤进一步包括:
基于所述数据表表头,构建所述表记录如下:
VID10VID20...VIDi0...VIDn0VID11VID21...VIDi1...VIDn1VID12VID22...VIDi2...VIDn2...VID1jVID2j...VIDij...VIDnj...VID1nVID2n...VIDin...VIDnn;
其中,VIDij表示所述数据表表头中所述标识符字段IDi在第j行记录中对应的数值。
3.一种资源受限智能对象中关系型数据的存储方法,其特征在于,包括:
基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,依次进行所述待存储关系型数据的数据表表头的定义和表记录的构建;
根据所述数据表表头和所述表记录,对所述待存储关系型数据进行存储;
其中,在所述数据表表头的定义和/或所述表记录的构建过程中,采用标识符技术进行标识;
所述基于智能对象中待存储关系型数据的数据表字段长度信息和所述智能对象的表操作支持信息,按照对应预设定义规则,进行所述待存储关系型数据的数据表表头的定义的步骤进一步包括:
若获知所述数据表字段长度信息为定长字段,且所述表操作支持信息为支持表操作,则,
若在表头属性信息文件中定义了所述数据表表头中各标识符字段的值的长度信息,则在所述表头属性信息文件中进行所述数据表表头的定义如下:
将所述数据表表头中各标识符字段和各所述标识符字段的值的长度信息依顺序进行分别排列,并在各所述标识符字段之间和各所述值的长度信息之间,采用第一控制字符进行分隔;
在利用所述第一控制字符分隔后的所述标识符字段的数据块和利用所述第一控制字符分隔后的所述标识符字段的值的长度信息的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述标识符字段的值的长度信息的数据块,作为一个整体数据块进行打包;
或者,
对所述数据表表头中每个标识符字段和所述标识符字段对应值的长度信息建立键-值长对,并在各所述键-值长对之间,采用第一控制字符进行分隔;
采用第三控制字符和第四控制字符,对所有利用所述第一控制字符分隔后的所述键-值长对,作为一个整体数据块进行打包,并采用第二控制字符标识定长表数据类型;
或者,
将所述数据表表头中各标识符字段依顺序进行排列,并在各所述标识符字段之间采用第一控制字符进行分隔;
对应每个所述标识符字段分配一个等长存储位,并在利用所述第一控制字符分隔后的所述标识符字段的数据块和所有等长存储位的数据块之间,采用第二控制字符进行分隔;
采用第三控制字符和第四控制字符,对利用所述第二控制字符分隔后的所述标识符字段的数据块和所述等长存储位的数据块,作为一个整体数据块进行打包。
4.根据权利要求3所述的存储方法,其特征在于,进行所述表记录的构建的步骤进一步包括:
若在所述表头属性信息文件中定义了各所述标识符字段的值的长度信息,则从第0行开始存储记录数据,构建所述表记录;
若在所述表头属性信息文件和所述数据表中定义了各所述标识符字段的值的长度信息,则采用所述标识符字段在数据表第0行的记录中存储,并从下一行开始存储记录数据,构建所述表记录。
5.一种根据权利要求1-4中任一所述的存储方法所存储数据的检索方法,其特征在于,包括:
根据数据选取Select检索语句,提取检索条件表达式SearchEXP,并获取对应数据表的数据表文件地址入口和数据表属性描述数据HeaderSTR;
基于所述数据表属性描述数据HeaderSTR,获取所述数据表表头所关联的标识符字段,以及所述标识符字段对应赋值的长度信息和表数据长度类型信息;
对于任一条所述表记录,基于所述标识符和所述标识符对应数值的长度信息,调用读取下一条表记录的ReadNextRecord函数,并采用GetFiled函数,分解该条表记录中各个标识符字段对应的数值,获取不同标识符字段的对应值;
将分解得到的所述标识符字段的对应值代入SearchEXP进行计算,若计算得SearchEXP的值为真,则提取该条表记录中对应的字段值,放入满足设定检索条件的记录集合SearchSet中,否则,跳过该条表记录,并转入下一条表记录。
6.根据权利要求5所述的检索方法,其特征在于,在所述调用读取下一条表记录ReadNextRecord函数的步骤之前,还包括:
利用所述数据表属性描述数据HeaderSTR,判断所述对应数据表为定长数据表或者变长数据表;
若所述判断的结果为定长数据表,则,ReadNextRecord函数根据单条表记录的长度偏移量,读取下一条表记录,GetField函数通过计算所述表记录中每个所述标识符字段的长度偏移量,读取各所述标识符字段的对应值;
若所述判断的结果为变长数据表,则,ReadNextRecord函数根据每条表记录结束时的控制字符,判断下一条表记录读取是否结束,GetField函数根据每条表记录中所述标识符字段的对应值之间的分隔符,判断各所述标识符字段的对应值是否结束。
7.一种电子设备,其特征在于,包括:至少一个处理器,以及至少一个与所述处理器通信连接的存储器;
所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至4中任一所述的存储方法或者如权利要求5至6中任一所述的检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811076313.XA CN109284340B (zh) | 2018-09-14 | 2018-09-14 | 资源受限智能对象中关系型数据的存储及检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811076313.XA CN109284340B (zh) | 2018-09-14 | 2018-09-14 | 资源受限智能对象中关系型数据的存储及检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284340A CN109284340A (zh) | 2019-01-29 |
CN109284340B true CN109284340B (zh) | 2020-11-20 |
Family
ID=65180718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811076313.XA Active CN109284340B (zh) | 2018-09-14 | 2018-09-14 | 资源受限智能对象中关系型数据的存储及检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284340B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008743B (zh) * | 2019-03-26 | 2023-02-28 | 创新先进技术有限公司 | 一种块链式账本中的数据属性标识方法、装置及设备 |
CN112164445A (zh) * | 2020-10-13 | 2021-01-01 | 赛诺联合医疗科技(北京)有限公司 | 一种pet原始数据的存储方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN103577440A (zh) * | 2012-07-27 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库中的数据处理方法和装置 |
CN104462362A (zh) * | 2014-12-08 | 2015-03-25 | 曙光信息产业(北京)有限公司 | 一种数据存储、查询、加载方法及装置 |
CN104598625A (zh) * | 2015-02-04 | 2015-05-06 | 中国人民解放军总后勤部军事交通运输研究所 | 基于自动识别标识符的数据表存储方法 |
CN104794123A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
CN107341262A (zh) * | 2017-07-14 | 2017-11-10 | 上海达梦数据库有限公司 | 数据库中对象类型列的序列化、反序列化方法及装置 |
CN108509397A (zh) * | 2018-03-21 | 2018-09-07 | 清华大学 | 基于标识符技术的层次化结构数据的存储、解析方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074107B2 (en) * | 2009-10-26 | 2011-12-06 | Amazon Technologies, Inc. | Failover and recovery for replicated data instances |
-
2018
- 2018-09-14 CN CN201811076313.XA patent/CN109284340B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN103577440A (zh) * | 2012-07-27 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库中的数据处理方法和装置 |
CN104794123A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
CN104462362A (zh) * | 2014-12-08 | 2015-03-25 | 曙光信息产业(北京)有限公司 | 一种数据存储、查询、加载方法及装置 |
CN104598625A (zh) * | 2015-02-04 | 2015-05-06 | 中国人民解放军总后勤部军事交通运输研究所 | 基于自动识别标识符的数据表存储方法 |
CN107341262A (zh) * | 2017-07-14 | 2017-11-10 | 上海达梦数据库有限公司 | 数据库中对象类型列的序列化、反序列化方法及装置 |
CN108509397A (zh) * | 2018-03-21 | 2018-09-07 | 清华大学 | 基于标识符技术的层次化结构数据的存储、解析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109284340A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101765842B (zh) | 用于xml策略匹配的方法和装置 | |
GB2595615A (en) | Managing data objects for graph-based data structures | |
TWI480746B (zh) | 使用經結構化之資料儲存器達到較快速全文檢索 | |
US10621370B2 (en) | Methods and apparatus to provide group-based row-level security for big data platforms | |
CN102436513B (zh) | 分布式检索方法和系统 | |
CN103123650B (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN104598625B (zh) | 基于自动识别标识符的数据表存储方法 | |
CN103345469B (zh) | 号码集合的存储、查询方法及其装置 | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和系统 | |
US10241979B2 (en) | Accelerated detection of matching patterns | |
CN109284340B (zh) | 资源受限智能对象中关系型数据的存储及检索方法 | |
CN103049473A (zh) | 一种数据查询方法及装置 | |
CN102955843A (zh) | 一种键值数据库的多键查找实现方法 | |
CN108509397B (zh) | 基于标识符技术的层次化结构数据的存储、解析方法及系统 | |
CN106503008A (zh) | 文件存储方法和装置及文件查询方法和装置 | |
CN102999637A (zh) | 根据文件特征码为文件自动添加文件标签的方法及系统 | |
CN113704575B (zh) | 解析XML与Java文件的SQL方法、装置、设备及存储介质 | |
Ko et al. | A binary string approach for updates in dynamic ordered XML data | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
US11144580B1 (en) | Columnar storage and processing of unstructured data | |
CN115495462A (zh) | 批量数据更新方法、装置、电子设备和可读存储介质 | |
CN116049180A (zh) | 面向Paas平台的租户数据处理方法及装置 | |
KR20140049326A (ko) | 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체 | |
CN105574122A (zh) | 一种基于产品信息的数据检索系统 |
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 |