CN104361124A - 存储数据的方法和装置以及检索存储节点的方法和装置 - Google Patents
存储数据的方法和装置以及检索存储节点的方法和装置 Download PDFInfo
- Publication number
- CN104361124A CN104361124A CN201410728301.6A CN201410728301A CN104361124A CN 104361124 A CN104361124 A CN 104361124A CN 201410728301 A CN201410728301 A CN 201410728301A CN 104361124 A CN104361124 A CN 104361124A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- instance
- address
- data instance
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013500 data storage Methods 0.000 title abstract 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
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/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
存储数据的方法和装置以及检索存储节点的方法和装置,本发明公开了一种存储数据的方法和装置,包括:创建各数据类型;根据数据类型创建数据类型对应的数据实例;根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。通过本发明的方案,每个节点只需要保存自身的浏览名,而不需要保存每个节点的完整的关键字,从而降低了关键字对内存的开销。
Description
技术领域
本发明涉及数据处理技术,尤指一种存储数据的方法和装置以及检索存储节点的方法和装置。
背景技术
实时数据库是指数据库系统发展的一个分支,是数据库技术结合实时处理技术产生的。实时数据库可用于工厂过程的自动采集、存储和监视,可在线存储每个工艺过程点的多年数据,并且可以提供清晰、精确的操作情况画面,用户既可浏览工厂当前的生产情况,也可回顾过去的生产情况。
现有的层次型实时数据库的存储数据的方法大致包括:
创建各数据对象,数据对象中包含有关键字;
根据数据中的查询关键字在创建的数据对象中查找对应的数据对象,将数据存储在查找到的数据对象中。
其中,根据数据中的查询关键字在创建的数据对象中查找对应的数据对象包括:
计算查询关键字的哈希值,查找哈希值对应的内存地址,如果查找到的内存地址对应的是一个数据对象,则该数据对象即为所要查找的数据对象;如果查找到的内存地址对应的是一个链表,则获取链表对应的所有数据对象的关键字,则获得的关键字与查询关键字相同的数据对象即为所要查找的数据对象。
现有的层次型实时数据库的存储数据的方法中,需要在每个数据对象中保存完整的关键字,而各个数据对象的关键字有可能包含有相同的部分,所保存的关键字对内存的开销很大。
发明内容
为了解决上述问题,本发明提出了一种存储和检索数据的方法和装置以及检索存储节点的方法和装置,能够减小检索过程中关键字对内存的开销。
为了达到上述目的,本发明提出了一种存储数据的方法,包括:
创建各数据类型;
根据数据类型创建数据类型对应的数据实例;
根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。
优选地,所述创建各数据类型包括:
创建数据类型节点,设置所述数据类型节点的浏览名为所述数据类型的名称。
优选地,所述创建各数据类型还包括:
为所述数据类型节点创建一个或一个以上对应的第一实例声明节点,设置所述第一实例声明节点的浏览名为所述第一实例声明的名称;其中,所述数据类型节点为所述第一实例声明节点的父节点。
优选地,所述创建各数据类型还包括:
为第N实例声明节点创建一个或一个以上对应的第(N+1)实例声明节点,设置第(N+1)实例声明节点的浏览名为第(N+1)实例声明的名称;其中,所述第N实例声明节点为所述第(N+1)实例声明节点的父节点;其中,N为大于或等于1的正整数。
优选地,所述根据数据类型创建数据类型对应的数据实例包括:
创建所述数据类型节点对应的第一数据实例节点,设置所述第一数据实例节点的浏览名为所述第一数据实例节点的名称;
计算所述第一数据实例节点的路径名的第一哈希值,在哈希表中查找所述第一哈希值,如果查找不到,则将所述第一哈希值和所述第一数据实例节点的地址之间的第一对应关系保存到哈希表中;如果查找到,则将所述哈希表中所述第一哈希值对应的地址和所述第一数据实例节点的地址保存到第一链表中,将所述第一哈希值和所述第一链表的地址之间的第二对应关系保存到所述哈希表中。
优选地,当判断出所述数据类型存在所述第N实例声明节点时,所述根据数据类型创建数据类型对应的数据实例还包括:
根据所述数据类型的第N实例声明节点创建第二数据实例节点,设置所述第二实例节点对应的第N实例声明节点;
设置所述第二数据实例节点对应的第N实例声明节点的父节点对应的数据实例节点为所述第二数据实例节点的父节点;
计算所述第二数据实例节点的路径名的第二哈希值,在哈希表中查找所述第二哈希值,如果查找不到,则将所述第二哈希值和所述第二数据实例节点的地址之间的第三对应关系保存到所述哈希表中;如果查找到,则将所述哈希表中所述第二哈希值对应的地址和所述第二数据实例节点的地址保存到第二链表中,将所述第二哈希值和所述第二链表的地址之间的第四对应关系保存到所述哈希表中;其中,N为大于或等于1的正整数。
优选地,所述根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中包括:
计算所述查询关键字的第三哈希值,在所述哈希表中查找所述第三哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,将所述数据存储到查找到的数据实例节点中。
优选地,判断出查找到的地址对应的是链表时,该方法还包括:
获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,将所述数据存储到所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点中。
优选地,所述获取查找到的地址对应的链表对应的各数据实例节点的路径名包括:
当判断出所述查找到的地址对应的链表中的数据实例节点不存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的浏览名;
当判断出所述查找到的地址对应的链表中的数据实例节点存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和所述查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
本发明还提出了一种检索存储节点的方法,包括:
根据数据中的查询关键字在数据实例中查找对应的数据实例节点作为存储节点。
优选地,该方法之前还包括:
创建各数据类型;
根据数据类型创建数据类型对应的数据实例。
优选地,所述根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点作为存储节点包括:
计算所述查询关键字的哈希值,在所述哈希表中查找所述哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,所述数据实例节点为所要查找的存储节点。
优选地,判断出查找到的地址对应的是链表时,该方法还包括:
获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点为所要查找的存储节点。
优选地,所述获取查找到的地址对应的链表对应的各数据实例节点的路径名包括:
当判断出所述查找到的地址对应的链表中的数据实例节点不存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的浏览名;
当判断出所述查找到的地址对应的链表中的数据实例节点存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和所述查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
本发明还提出了一种存储数据的装置,至少包括:
第一创建模块,用于创建各数据类型;
第二创建模块,用于根据数据类型创建数据类型对应的数据实例;
第一查找模块,用于根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。
优选地,所述第一创建模块具体用于:
创建数据类型节点,设置所述数据类型节点的浏览名为所述数据类型的名称。
优选地,所述第一创建模块还用于:
为所述数据类型节点创建一个或一个以上对应的第一实例声明节点,设置所述第一实例声明节点的浏览名为所述第一实例声明的名称;其中,所述数据类型节点为所述第一实例声明节点的父节点。
优选地,所述第一创建模块还用于:
为所述第N实例声明节点创建一个或一个以上对应的第(N+1)实例声明节点,设置第(N+1)实例声明节点的浏览名为第(N+1)实例声明的名称;其中,所述第N实例声明节点为所述第(N+1)实例声明节点的父节点;其中,N为大于或等于1的正整数。
优选地,所述第二创建模块具体用于:
创建所述数据类型节点对应的第一数据实例节点,设置所述第一数据实例节点的浏览名为所述第一数据实例节点的名称;
计算所述第一数据实例节点的路径名的第一哈希值,在哈希表中查找所述第一哈希值,如果查找不到,则将所述第一哈希值和所述第一数据实例节点的地址之间的第一对应关系保存到哈希表中;如果查找到,则将所述哈希表中所述第一哈希值对应的地址和所述第一数据实例节点的地址保存到第一链表中,将所述第一哈希值和所述第一链表的地址之间的第二对应关系保存到所述哈希表中。
优选地,所述第二创建模块还用于:
判断出所述数据类型存在所述第N实例声明节点,根据所述数据类型的第N实例声明节点创建第二数据实例节点,设置所述第二实例节点对应的第N实例声明节点;
设置所述第二数据实例节点对应的第N实例声明节点的父节点对应的数据实例节点为所述第二数据实例节点的父节点;
计算所述第二数据实例节点的路径名的第二哈希值,在哈希表中查找所述第二哈希值,如果查找不到,则将所述第二哈希值和所述第二数据实例节点的地址之间的第三对应关系保存到所述哈希表中;如果查找到,则将所述哈希表中所述第二哈希值对应的地址和所述第二数据实例节点的地址保存到第二链表中,将所述第二哈希值和所述第二链表的地址之间的第四对应关系保存到所述哈希表中;其中,N为大于或等于1的正整数。
优选地,所述第一查找模块具体用于:
计算所述查询关键字的第三哈希值,在所述哈希表中查找所述第三哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,将所述数据存储到查找到的数据实例节点中。
优选地,所述第一查找模块还用于:
判断出查找到的地址对应的是链表,获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,将所述数据存储到所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点中。
优选地,所述第一查找模块还用于:
判断出所述查找到的地址对应的链表中的数据实例节点不存在父节点,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的浏览名;
判断出所述查找到的地址对应的链表中的数据实例节点存在父节点,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和所述查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
本发明还提出了一种检索存储节点的装置,至少包括:
第二查找模块,用于根据数据中的查询关键字在数据实例中查找对应的数据实例节点作为存储节点。
优选地,还包括:
第三创建模块,用于创建各数据类型;根据数据类型创建数据类型对应的数据实例。
优选地,所述第二查找模块具体用于:
计算所述查询关键字的哈希值,在所述哈希表中查找所述哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,所述数据实例节点为所要查找的存储节点。
优选地,所述第二s查找模块还用于:
判断出查找到的地址对应的是链表,获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点为所要查找的存储节点。
与现有技术相比,本发明包括:创建各数据类型;根据数据类型创建数据类型对应的数据实例;根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。通过本发明的方案,每个节点只需要保存自身的浏览名,而不需要保存每个节点的完整的关键字,从而降低了关键字对内存的开销。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为存储数据的方法的流程图;
图2为检索存储节点的方法的流程图;
图3为存储数据的装置的结构组成示意图;
图4为检索存储节点的装置的结构组成示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
参见图1,本发明提出了一种存储数据的方法,包括:
步骤100、创建各数据类型。
本步骤中,创建数据类型节点,设置数据类型节点的浏览名为数据类型的名称。其中,数据类型的名称可以由用户输入。
本步骤中,还可以为数据类型节点创建一个或一个以上对应的第一实例声明节点,设置第一实例声明节点的浏览名为第一实例声明的名称;其中,数据类型节点为第一实例声明节点的父节点。
其中,第一实例声明节点的名称可以由用户输入。
其中,可以通过在第一实例声明节点中设置父节点指针,父节点指针指向自身对应的父节点。
本步骤中,还可以为第N实例声明节点创建一个或一个以上对应的第(N+1)实例声明节点,设置第(N+1)实例声明节点的浏览名为第(N+1)实例声明的名称;其中,第N实例声明节点为第(N+1)实例声明节点的父节点。
其中,N为大于或等于1的正整数。
其中,第(N+1)实例声明节点的名称可以由用户输入。
其中,可以通过在第(N+1)实例声明节点中设置父节点指针,父节点指针指向自身对应的父节点。
步骤101、根据数据类型创建数据类型对应的数据实例。
本步骤中,创建数据类型节点对应的第一数据实例节点,设置第一数据实例节点的浏览名为第一数据实例节点的名称;其中,第一数据实例节点的名称可以由用户输入。
计算第一数据实例节点的路径名的第一哈希值,在哈希表中查找第一哈希值,如果查找不到,则将第一哈希值和第一数据实例节点的地址之间的第一对应关系保存到哈希表中;如果查找到,则将哈希表中第一哈希值对应的地址和第一数据实例节点的地址保存到第一链表中,将第一哈希值和第一链表的地址之间的第二对应关系保存到哈希表中。
当判断出数据类型存在第N实例声明节点时,根据数据类型的第N实例声明节点创建第二数据实例节点,设置第二实例节点对应的第N实例声明节点;
设置第二数据实例节点对应的第N实例声明节点的父节点对应的数据实例节点为第二数据实例节点的父节点;
计算第二数据实例节点的路径名的第二哈希值,在哈希表中查找第二哈希值,如果查找不到,则将第二哈希值和第二数据实例节点的地址之间的第三对应关系保存到哈希表中;如果查找到,则将哈希表中第二哈希值对应的地址和第二数据实例节点的地址保存到第二链表中,将第二哈希值和第二链表的地址之间的第四对应关系保存到哈希表中。
步骤102、根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。
本步骤中,计算查询关键字的第三哈希值,在哈希表中查找第三哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,将数据存储到查找到的数据实例节点中。
判断出查找到的地址对应的是链表,获取查找到的地址对应的链表对应的各数据实例节点的路径名,将数据存储到查找到的地址对应的链表中路径名与查询关键字相匹配的数据实例节点中。
其中,获取查找到的地址对应的链表对应的各数据实例节点的路径名包括:
当判断出查找到的地址对应的链表中的数据实例节点不存在父节点时,查找到的地址对应的链表中的数据实例节点的路径名为查找到的地址对应的链表中的数据实例节点的浏览名;
当判断出查找到的地址对应的链表中的数据实例节点存在父节点时,查找到的地址对应的链表中的数据实例节点的路径名为查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
参见图2,本发明还提出一种检索存储节点的方法,包括:
步骤200、根据数据中的查询关键字在数据实例中查找对应的数据实例节点作为存储节点。
本步骤中,根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点作为存储节点包括:
计算查询关键字的哈希值,在哈希表中查找哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,数据实例节点为所要查找的存储节点。判断出查找到的地址对应的是链表时,获取查找到的地址对应的链表对应的各数据实例节点的路径名,查找到的地址对应的链表中路径名与查询关键字相匹配的数据实例节点为所要查找的存储节点。
其中,获取查找到的地址对应的链表对应的各数据实例节点的路径名包括:
当判断出查找到的地址对应的链表中的数据实例节点不存在父节点时,查找到的地址对应的链表中的数据实例节点的路径名为查找到的地址对应的链表中的数据实例节点的浏览名;
当判断出查找到的地址对应的链表中的数据实例节点存在父节点时,查找到的地址对应的链表中的数据实例节点的路径名为查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
该方法之前还包括:
步骤201、创建各数据类型;根据数据类型创建数据类型对应的数据实例。
参见图3,本发明还提出了一种存储数据的装置,至少包括:
第一创建模块,用于创建各数据类型;
第二创建模块,用于根据数据类型创建数据类型对应的数据实例;
第一查找模块,用于根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。
本发明的装置中,第一创建模块具体用于:
创建数据类型节点,设置数据类型节点的浏览名为数据类型的名称。
本发明的装置中,第一创建模块还用于:
为数据类型节点创建一个或一个以上对应的第一实例声明节点,设置第一实例声明节点的浏览名为第一实例声明的名称;其中,数据类型节点为第一实例声明节点的父节点。
本发明的装置中,第一创建模块还用于:
为第N实例声明节点创建一个或一个以上对应的第(N+1)实例声明节点,设置第(N+1)实例声明节点的浏览名为第(N+1)实例声明的名称;其中,第N实例声明节点为第(N+1)实例声明节点的父节点;其中,N为大于或等于1的正整数。
本发明的装置中,第二创建模块具体用于:
创建数据类型节点对应的第一数据实例节点,设置第一数据实例节点的浏览名为第一数据实例节点的名称;
计算第一数据实例节点的路径名的第一哈希值,在哈希表中查找第一哈希值,如果查找不到,则将第一哈希值和第一数据实例节点的地址之间的第一对应关系保存到哈希表中;如果查找到,则将哈希表中第一哈希值对应的地址和第一数据实例节点的地址保存到第一链表中,将第一哈希值和第一链表的地址之间的第二对应关系保存到哈希表中。
本发明的装置中,第二创建模块还用于:
判断出数据类型存在第N实例声明节点,根据数据类型的第N实例声明节点创建第二数据实例节点,设置第二实例节点对应的第N实例声明节点;
设置第二数据实例节点对应的第N实例声明节点的父节点对应的数据实例节点为第二数据实例节点的父节点;
计算第二数据实例节点的路径名的第二哈希值,在哈希表中查找第二哈希值,如果查找不到,则将第二哈希值和第二数据实例节点的地址之间的第三对应关系保存到哈希表中;如果查找到,则将哈希表中第二哈希值对应的地址和第二数据实例节点的地址保存到第二链表中,将第二哈希值和第二链表的地址之间的第四对应关系保存到哈希表中。
本发明的装置中,第一查找模块具体用于:
计算查询关键字的第三哈希值,在哈希表中查找第三哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,将数据存储到查找到的数据实例节点中。
本发明的装置中,第一查找模块还用于:
判断出查找到的地址对应的是链表,获取查找到的地址对应的链表对应的各数据实例节点的路径名,将数据存储到查找到的地址对应的链表中路径名与查询关键字相匹配的数据实例节点中。
本发明的装置中,第一查找模块还用于:
判断出查找到的地址对应的链表中的数据实例节点不存在父节点,查找到的地址对应的链表中的数据实例节点的路径名为查找到的地址对应的链表中的数据实例节点的浏览名;
判断出查找到的地址对应的链表中的数据实例节点存在父节点,查找到的地址对应的链表中的数据实例节点的路径名为查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
参见图4,本发明还提出了一种检索存储节点的装置,至少包括:
第二查找模块,用于根据数据中的查询关键字在数据实例中查找对应的数据实例节点作为存储节点。
本发明的装置还包括:
第三创建模块,用于创建各数据类型;根据数据类型创建数据类型对应的数据实例。
本发明的装置中,第二查找模块具体用于:
计算查询关键字的哈希值,在哈希表中查找哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,数据实例节点为所要查找的存储节点。
本发明的装置中,第二查找模块还用于:
判断出查找到的地址对应的是链表,获取查找到的地址对应的链表对应的各数据实例节点的路径名,查找到的地址对应的链表中路径名与查询关键字相匹配的数据实例节点为所要查找的存储节点。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
Claims (27)
1.一种存储数据的方法,其特征在于,包括:
创建各数据类型;
根据数据类型创建数据类型对应的数据实例;
根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。
2.根据权利要求1所述的方法,其特征在于,所述创建各数据类型包括:
创建数据类型节点,设置所述数据类型节点的浏览名为所述数据类型的名称。
3.根据权利要求2所述的方法,其特征在于,所述创建各数据类型还包括:
为所述数据类型节点创建一个或一个以上对应的第一实例声明节点,设置所述第一实例声明节点的浏览名为所述第一实例声明的名称;其中,所述数据类型节点为所述第一实例声明节点的父节点。
4.根据权利要求3所述的方法,其特征在于,所述创建各数据类型还包括:
为第N实例声明节点创建一个或一个以上对应的第(N+1)实例声明节点,设置第(N+1)实例声明节点的浏览名为第(N+1)实例声明的名称;其中,所述第N实例声明节点为所述第(N+1)实例声明节点的父节点;其中,N为大于或等于1的正整数。
5.根据权利要求2~4任意一项所述的方法,其特征在于,所述根据数据类型创建数据类型对应的数据实例包括:
创建所述数据类型节点对应的第一数据实例节点,设置所述第一数据实例节点的浏览名为所述第一数据实例节点的名称;
计算所述第一数据实例节点的路径名的第一哈希值,在哈希表中查找所述第一哈希值,如果查找不到,则将所述第一哈希值和所述第一数据实例节点的地址之间的第一对应关系保存到哈希表中;如果查找到,则将所述哈希表中所述第一哈希值对应的地址和所述第一数据实例节点的地址保存到第一链表中,将所述第一哈希值和所述第一链表的地址之间的第二对应关系保存到所述哈希表中。
6.根据权利要求5所述的方法,其特征在于,当判断出所述数据类型存在所述第N实例声明节点时,所述根据数据类型创建数据类型对应的数据实例还包括:
根据所述数据类型的第N实例声明节点创建第二数据实例节点,设置所述第二实例节点对应的第N实例声明节点;
设置所述第二数据实例节点对应的第N实例声明节点的父节点对应的数据实例节点为所述第二数据实例节点的父节点;
计算所述第二数据实例节点的路径名的第二哈希值,在哈希表中查找所述第二哈希值,如果查找不到,则将所述第二哈希值和所述第二数据实例节点的地址之间的第三对应关系保存到所述哈希表中;如果查找到,则将所述哈希表中所述第二哈希值对应的地址和所述第二数据实例节点的地址保存到第二链表中,将所述第二哈希值和所述第二链表的地址之间的第四对应关系保存到所述哈希表中;其中,N为大于或等于1的正整数。
7.根据权利要求6所述的方法,其特征在于,所述根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中包括:
计算所述查询关键字的第三哈希值,在所述哈希表中查找所述第三哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,将所述数据存储到查找到的数据实例节点中。
8.根据权利要求7所述的方法,其特征在于,判断出查找到的地址对应的是链表时,该方法还包括:
获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,将所述数据存储到所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点中。
9.根据权利要求8所述的方法,其特征在于,所述获取查找到的地址对应的链表对应的各数据实例节点的路径名包括:
当判断出所述查找到的地址对应的链表中的数据实例节点不存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的浏览名;
当判断出所述查找到的地址对应的链表中的数据实例节点存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和所述查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
10.一种检索存储节点的方法,其特征在于,包括:
根据数据中的查询关键字在数据实例中查找对应的数据实例节点作为存储节点。
11.根据权利要求10所述的方法,其特征在于,该方法之前还包括:
创建各数据类型;
根据数据类型创建数据类型对应的数据实例。
12.根据权利要求10或11所述的方法,其特征在于,所述根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点作为存储节点包括:
计算所述查询关键字的哈希值,在所述哈希表中查找所述哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,所述数据实例节点为所要查找的存储节点。
13.根据权利要求12所述的方法,其特征在于,判断出查找到的地址对应的是链表时,该方法还包括:
获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点为所要查找的存储节点。
14.根据权利要求13所述的方法,其特征在于,所述获取查找到的地址对应的链表对应的各数据实例节点的路径名包括:
当判断出所述查找到的地址对应的链表中的数据实例节点不存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的浏览名;
当判断出所述查找到的地址对应的链表中的数据实例节点存在父节点时,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和所述查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
15.一种存储数据的装置,其特征在于,至少包括:
第一创建模块,用于创建各数据类型;
第二创建模块,用于根据数据类型创建数据类型对应的数据实例;
第一查找模块,用于根据数据中的查询关键字在创建的数据实例中查找对应的数据实例节点,将数据存储在查找到的数据实例节点中。
16.根据权利要求15所述的装置,其特征在于,所述第一创建模块具体用于:
创建数据类型节点,设置所述数据类型节点的浏览名为所述数据类型的名称。
17.根据权利要求16所述的装置,其特征在于,所述第一创建模块还用于:
为所述数据类型节点创建一个或一个以上对应的第一实例声明节点,设置所述第一实例声明节点的浏览名为所述第一实例声明的名称;其中,所述数据类型节点为所述第一实例声明节点的父节点。
18.根据权利要求17所述的装置,其特征在于,所述第一创建模块还用于:
为所述第N实例声明节点创建一个或一个以上对应的第(N+1)实例声明节点,设置第(N+1)实例声明节点的浏览名为第(N+1)实例声明的名称;其中,所述第N实例声明节点为所述第(N+1)实例声明节点的父节点;其中,N为大于或等于1的正整数。
19.根据权利要求15~18任意一项所述的装置,其特征在于,所述第二创建模块具体用于:
创建所述数据类型节点对应的第一数据实例节点,设置所述第一数据实例节点的浏览名为所述第一数据实例节点的名称;
计算所述第一数据实例节点的路径名的第一哈希值,在哈希表中查找所述第一哈希值,如果查找不到,则将所述第一哈希值和所述第一数据实例节点的地址之间的第一对应关系保存到哈希表中;如果查找到,则将所述哈希表中所述第一哈希值对应的地址和所述第一数据实例节点的地址保存到第一链表中,将所述第一哈希值和所述第一链表的地址之间的第二对应关系保存到所述哈希表中。
20.根据权利要求19所述的装置,其特征在于,所述第二创建模块还用于:
判断出所述数据类型存在所述第N实例声明节点,根据所述数据类型的第N实例声明节点创建第二数据实例节点,设置所述第二实例节点对应的第N实例声明节点;
设置所述第二数据实例节点对应的第N实例声明节点的父节点对应的数据实例节点为所述第二数据实例节点的父节点;
计算所述第二数据实例节点的路径名的第二哈希值,在哈希表中查找所述第二哈希值,如果查找不到,则将所述第二哈希值和所述第二数据实例节点的地址之间的第三对应关系保存到所述哈希表中;如果查找到,则将所述哈希表中所述第二哈希值对应的地址和所述第二数据实例节点的地址保存到第二链表中,将所述第二哈希值和所述第二链表的地址之间的第四对应关系保存到所述哈希表中;其中,N为大于或等于1的正整数。
21.根据权利要求20所述的装置,其特征在于,所述第一查找模块具体用于:
计算所述查询关键字的第三哈希值,在所述哈希表中查找所述第三哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,将所述数据存储到查找到的数据实例节点中。
22.根据权利要求21所述的装置,其特征在于,所述第一查找模块还用于:
判断出查找到的地址对应的是链表,获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,将所述数据存储到所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点中。
23.根据权利要求22所述的装置,其特征在于,所述第一查找模块还用于:
判断出所述查找到的地址对应的链表中的数据实例节点不存在父节点,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的浏览名;
判断出所述查找到的地址对应的链表中的数据实例节点存在父节点,所述查找到的地址对应的链表中的数据实例节点的路径名为所述查找到的地址对应的链表中的数据实例节点的父节点对应的实例声明节点的路径名和所述查找到的地址对应的链表中的数据实例节点对应的实例声明节点的浏览名的并集。
24.一种检索存储节点的装置,其特征在于,至少包括:
第二查找模块,用于根据数据中的查询关键字在数据实例中查找对应的数据实例节点作为存储节点。
25.根据权利要求24所述的装置,其特征在于,还包括:
第三创建模块,用于创建各数据类型;根据数据类型创建数据类型对应的数据实例。
26.根据权利要求24或25所述的装置,其特征在于,所述第二查找模块具体用于:
计算所述查询关键字的哈希值,在所述哈希表中查找所述哈希值对应的地址,判断出查找到的地址对应的是数据实例节点,所述数据实例节点为所要查找的存储节点。
27.根据权利要求26所述的装置,其特征在于,所述第二s查找模块还用于:
判断出查找到的地址对应的是链表,获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点为所要查找的存储节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410728301.6A CN104361124B (zh) | 2014-12-03 | 2014-12-03 | 存储数据的方法和装置以及检索存储节点的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410728301.6A CN104361124B (zh) | 2014-12-03 | 2014-12-03 | 存储数据的方法和装置以及检索存储节点的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104361124A true CN104361124A (zh) | 2015-02-18 |
CN104361124B CN104361124B (zh) | 2018-03-27 |
Family
ID=52528384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410728301.6A Active CN104361124B (zh) | 2014-12-03 | 2014-12-03 | 存储数据的方法和装置以及检索存储节点的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361124B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109064317A (zh) * | 2018-08-10 | 2018-12-21 | 玖富金科控股集团有限责任公司 | 一种数据接收与转发方法、电子设备和可读存储介质 |
CN109246102A (zh) * | 2018-09-07 | 2019-01-18 | 公安部第研究所 | 一种支撑大规模认证数据快速存储及检索的系统及方法 |
CN111782212A (zh) * | 2020-06-30 | 2020-10-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种视图组件的创建方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339502A (zh) * | 2008-07-08 | 2009-01-07 | 国电南瑞科技股份有限公司 | 一种可自我描述的组态数据包装方法 |
US7769781B1 (en) * | 2007-05-23 | 2010-08-03 | Stephen Edward Huntley | Method for labeling data stored in sequential data structures with parameters which describe position in a hierarchy |
CN102163232A (zh) * | 2011-04-18 | 2011-08-24 | 国电南瑞科技股份有限公司 | 一种支持iec61850对象查询的sql接口实现方法 |
-
2014
- 2014-12-03 CN CN201410728301.6A patent/CN104361124B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769781B1 (en) * | 2007-05-23 | 2010-08-03 | Stephen Edward Huntley | Method for labeling data stored in sequential data structures with parameters which describe position in a hierarchy |
CN101339502A (zh) * | 2008-07-08 | 2009-01-07 | 国电南瑞科技股份有限公司 | 一种可自我描述的组态数据包装方法 |
CN102163232A (zh) * | 2011-04-18 | 2011-08-24 | 国电南瑞科技股份有限公司 | 一种支持iec61850对象查询的sql接口实现方法 |
Non-Patent Citations (1)
Title |
---|
郭广东: ""实时数据的存储与快速检索技术的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109064317A (zh) * | 2018-08-10 | 2018-12-21 | 玖富金科控股集团有限责任公司 | 一种数据接收与转发方法、电子设备和可读存储介质 |
CN109064317B (zh) * | 2018-08-10 | 2021-04-02 | 玖富金科控股集团有限责任公司 | 一种数据接收与转发方法、电子设备和可读存储介质 |
CN109246102A (zh) * | 2018-09-07 | 2019-01-18 | 公安部第研究所 | 一种支撑大规模认证数据快速存储及检索的系统及方法 |
CN109246102B (zh) * | 2018-09-07 | 2021-02-09 | 公安部第一研究所 | 一种支撑大规模认证数据快速存储及检索的系统及方法 |
CN111782212A (zh) * | 2020-06-30 | 2020-10-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种视图组件的创建方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104361124B (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8843504B2 (en) | Method and system for updating images in an image database | |
CN105808702B (zh) | 页面内容刷新方法、系统及页面内容同步刷新的管理系统 | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
CN107357843B (zh) | 基于数据流结构的海量网络数据查找方法 | |
CN103488759A (zh) | 一种根据关键词搜索应用程序的方法和装置 | |
CN104636349B (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN104346354A (zh) | 一种提供推荐词的方法及装置 | |
CN108228657B (zh) | 一种关键字检索的实现方法及装置 | |
CN106528641B (zh) | 一种数据存储方法、装置及通信网关机 | |
CN103744913A (zh) | 一种基于搜索引擎技术的数据库检索方法 | |
CN104599692A (zh) | 录音方法及装置,录音内容搜索方法及装置 | |
CN105404625A (zh) | 应用程序的查找方法与系统 | |
CN105072196A (zh) | 分布式数据包存储、回溯方法及系统 | |
CN104361124A (zh) | 存储数据的方法和装置以及检索存储节点的方法和装置 | |
CN106407233B (zh) | 一种数据处理方法和设备 | |
CN104346347A (zh) | 数据存储方法、装置、服务器及系统 | |
CN105373605A (zh) | 数据文件批量存储方法及系统 | |
CN105354283A (zh) | 一种资源的搜索方法和装置 | |
CN107341198B (zh) | 一种基于主题实例的电力海量数据存储和查询方法 | |
CN102902701A (zh) | 信息查询系统及方法 | |
CN102831181B (zh) | 缓存文件的目录刷新方法 | |
CN104331434A (zh) | 一种生成搜索提示词服务的方法及其装置 | |
CN103530345A (zh) | 短文本特征扩展及拟合特征库构建方法、装置 | |
CN105956070A (zh) | 一种整合重复记录的方法及系统 | |
CN105512270A (zh) | 一种确定相关对象的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211122 Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Helishi system integration Co.,Ltd. Address before: 100176 No.2, Disheng Middle Road, Yizhuang Economic and Technological Development Zone, Daxing District, Beijing Patentee before: BEIJING HOLLYSYS Co.,Ltd. |
|
TR01 | Transfer of patent right |