CN104361124A - 存储数据的方法和装置以及检索存储节点的方法和装置 - Google Patents

存储数据的方法和装置以及检索存储节点的方法和装置 Download PDF

Info

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
Application number
CN201410728301.6A
Other languages
English (en)
Other versions
CN104361124B (zh
Inventor
苗维杰
刘小树
智艳利
宋晓玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Helishi System Integration Co ltd
Original Assignee
Beijing Hollysys Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Hollysys Co Ltd filed Critical Beijing Hollysys Co Ltd
Priority to CN201410728301.6A priority Critical patent/CN104361124B/zh
Publication of CN104361124A publication Critical patent/CN104361124A/zh
Application granted granted Critical
Publication of CN104361124B publication Critical patent/CN104361124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; 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查找模块还用于:
判断出查找到的地址对应的是链表,获取所述查找到的地址对应的链表对应的各数据实例节点的路径名,所述查找到的地址对应的链表中路径名与所述查询关键字相匹配的数据实例节点为所要查找的存储节点。
CN201410728301.6A 2014-12-03 2014-12-03 存储数据的方法和装置以及检索存储节点的方法和装置 Active CN104361124B (zh)

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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109064317A (zh) * 2018-08-10 2018-12-21 玖富金科控股集团有限责任公司 一种数据接收与转发方法、电子设备和可读存储介质
CN109246102A (zh) * 2018-09-07 2019-01-18 公安部第研究所 一种支撑大规模认证数据快速存储及检索的系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
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接口实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
郭广东: ""实时数据的存储与快速检索技术的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
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 公安部第一研究所 一种支撑大规模认证数据快速存储及检索的系统及方法

Also Published As

Publication number Publication date
CN104361124B (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
CN105808702B (zh) 页面内容刷新方法、系统及页面内容同步刷新的管理系统
US8843504B2 (en) Method and system for updating images in an image database
CN104636349B (zh) 一种索引数据压缩以及索引数据搜索的方法和设备
CN102737057A (zh) 一种商品类目信息的确定方法及装置
CN108228657B (zh) 一种关键字检索的实现方法及装置
CN104346354A (zh) 一种提供推荐词的方法及装置
CN106528641B (zh) 一种数据存储方法、装置及通信网关机
CN103744913A (zh) 一种基于搜索引擎技术的数据库检索方法
CN103701875A (zh) 一种多媒体文件推送方法及装置
CN105404625A (zh) 应用程序的查找方法与系统
CN105072196A (zh) 分布式数据包存储、回溯方法及系统
CN105447166A (zh) 一种基于关键字查找信息的方法及系统
CN103778204A (zh) 基于语音分析的视频搜索方法、设备及系统
SG11201709902TA (en) Method, device, server and storage medium of searchinhg a group based on social network
CN103902700A (zh) 树形结构的数据处理方法
CN106407233B (zh) 一种数据处理方法和设备
CN104361124A (zh) 存储数据的方法和装置以及检索存储节点的方法和装置
CN104346347A (zh) 数据存储方法、装置、服务器及系统
CN107341198B (zh) 一种基于主题实例的电力海量数据存储和查询方法
CN104331434A (zh) 一种生成搜索提示词服务的方法及其装置
CN103530345A (zh) 短文本特征扩展及拟合特征库构建方法、装置
CN106569986B (zh) 字符串替换方法和装置
CN102831181A (zh) 缓存文件的目录刷新方法及采用该方法的代理缓存服务器
CN105956070A (zh) 一种整合重复记录的方法及系统
CN112948531B (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