CN103605797A - 数据存储、查询装置和数据存储、查询方法 - Google Patents
数据存储、查询装置和数据存储、查询方法 Download PDFInfo
- Publication number
- CN103605797A CN103605797A CN201310654730.9A CN201310654730A CN103605797A CN 103605797 A CN103605797 A CN 103605797A CN 201310654730 A CN201310654730 A CN 201310654730A CN 103605797 A CN103605797 A CN 103605797A
- Authority
- CN
- China
- Prior art keywords
- tree
- depth
- depth information
- node
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据存储装置,应用于具有树形存储结构的数据库中,包括:获取模块,用于获取数据库中各级节点在树形存储结构中的深度信息;存储模块,用于将所述获取模块获取的深度信息分配至各级节点,并进行保存。本发明还提供了一种数据存储方法。本发明还提供了一种数据查询装置。本发明还提供了一种数据查询方法。通过本发明的技术方案,可以在现有的数据存储、查询支持的树形结构基础上,为每个组织分配表示其深度的信息,简化对于采用树形结构存储的数据的查询过程。
Description
技术领域
本发明涉及数据处理技术领域,具体地,涉及一种数据存储装置、一种数据存储方法、一种数据查询装置和一种数据查询方法。
背景技术
目前,在使用数据库进行数据存储时,对于具有树形存储结构的数据,通常多采用下级组织记录上级组织ID(Identity,唯一标识)的存储方法,具体为:为每一级组织分配ID标识,该ID标识和其所对应的组织为一一对应的关系。例如,图1为信息管理系统中一种常见的树形组织结构图,“总部”为最高级组织,其ID标识为“1”;“总部下面分别设置有各级组织,分别分配有ID标识“2、3、4、5、6、7...”。表1显示各级组织与其相应上级的对应关系。
表1:某企业“总部”与其下级各组织节点存储结构
ID | 组织 | 上级组织ID | 描述 |
1 | 总部 | NULL | 树的根节点 |
2 | 江苏大区 | 1 | 上级组织的ID记录总部ID |
3 | 浙江大区 | 1 | 上级组织的ID记录总部ID |
4 | 广东大区 | 1 | 上级组织的ID记录总部ID |
5 | 南京分公司 | 2 | 上级组织的ID记录江苏大区ID |
6 | 苏州分公司 | 2 | 上级组织的ID记录江苏大区ID |
7 | 南京分公司财务部 | 5 | 上级组织的ID记录南京分公司ID |
…… | …… | …… | …… |
对于这种数据库存储结构,当查询某一个组织的直接下级组织时,是非常有效的。例如:如果查询“江苏大区”(ID=2)的直接下级组织,通过以下SQL:“SELECTID,组织FROM组织表WHERE上级组织ID=2”,一次查询就可以查出“江苏大区”的所有直接下级组织。
不过,在这个数据库存储结构基础上,如果想查询某一级别组织的所有下级,效率就会非常低,例如:如果想查出所有大区(如江苏大区、浙江大区、广东大区……)下的所有分公司,效率就会比较低,需要循环查询每个“大区”的直接下级,然后汇总所有“大区”的查询结果,将所有下级组织信息返回。
总体看来,这种方式会造成大量的查询,代码的复杂性也会大幅增加。
在专利(申请)号为200910177831、名称为“一种数据存储、查询方法和装置”的专利(申请)文件中,公开了一种数据存储、查询方法和装置,其中,所述数据存储方法应用于具有树形存储结构的数据库中,包括:获取所述数据库中各级节点在树形存储结构中的表示上下级存储关系的路径信息;将所述路径信息分配至所述各级节点,并进行保存,所述路径信息包括:某级节点的ID信息和该级节点所属所有上级节点的ID信息。该数据存储、查询方法和装置,使用了附加属性加快了树形数据的查询速度,但没有涉及树形的加载,不能更好的查询和展示数据。
因此,需要一种新的数据存储、查询技术,可以在现有的数据存储、查询支持的树形结构基础上,为每个组织分配表示其深度的信息,简化对于采用树形结构存储的数据的查询过程。
发明内容
本发明正是基于上述问题,提出了一种新的数据存储、查询技术,可以在现有的数据存储、查询支持的树形结构基础上,为每个组织分配表示其深度的信息,简化对于采用树形结构存储的数据的查询过程。
有鉴于此,本发明提出了一种数据存储装置,应用于具有树形存储结构的数据库中,所述装置包括:获取模块,用于获取数据库中各级节点在树形存储结构中的深度信息;存储模块,用于将所述获取模块获取的深度信息分配至各级节点,并进行保存。在该技术方案中,通过为每个组织分配表示其深度的信息并存储在数据库中,将某一深度的组织与已为该组织分配的深度信息相匹配,为一次性高效完成查询提供方便。
在上述技术方案中,优选地,所述数据存储装置还包括:更新模块,用于根据某一节点和/或其上级节点在树形结构上的深度变化信息,更新数据库中该节点的深度信息。在该技术方案中,可以实时更新某一节点的深度变化,可以保证存储数据的准确度,也有利于提高查询数据的准确率。
在上述技术方案中,优选地,所述深度信息表示树形存储结构中的节点深度。
根据本发明的又一个方面,还提出了一种数据存储方法,应用于具有树形存储结构的数据库中,所述方法包括:步骤202:获取数据库中各级节点在树形存储结构中的深度信息;步骤204:将所述步骤202获取的深度信息分配至各级节点,并进行保存。在该技术方案中,通过为每个组织分配表示其深度的信息并存储在数据库中,将某一深度的组织与已为该组织分配的深度信息相匹配,为一次性高效完成查询提供方便。
在上述技术方案中,优选地,所述数据存储方法还包括:步骤206:根据某一节点和/或其上级节点在树形结构上的深度变化信息,更新数据库中该节点的深度信息。在该技术方案中,可以实时更新某一节点的深度变化,可以保证存储数据的准确度,也有利于提高查询数据的准确率。
在上述技术方案中,优选地,所述深度信息表示树形存储结构中的节点深度。
根据本发明的再一个方面,基于以上所述的一种数据存储装置和一种数据存储方法,还提出了一种数据查询装置,应用于具有树形存储结构的数据库中,所述装置包括:读取模块,用于读取数据库中已保存的分配至某一节点的深度信息;查询模块,用于根据所述读取模块读取的节点深度信息,查询该树形数据在某一个深度的所有节点。在该技术方案中,在该技术方案中,通过为每个组织分配表示其深度的信息,当查询某一深度的组织时,可以直接通过已为该组织分配的深度信息,一次性完成查询,大幅度提高树形存储结构数据库中数据的查询效率。
在上述技术方案中,优选地,所述深度信息表示树形存储结构中的节点深度。
根据本发明的另一个方面,基于以上所述的一种数据存储装置和一种数据存储方法,还提出了一种数据查询方法,应用于具有树形存储结构的数据库中,所述方法包括:步骤402:读取数据库中已保存的分配至某一节点的深度信息;步骤404:根据所述步骤402读取的节点深度信息,查询该树形数据在某一个深度的所有节点。在该技术方案中,在该技术方案中,通过为每个组织分配表示其深度的信息,当查询某一深度的组织时,可以直接通过已为该组织分配的深度信息,一次性完成查询,大幅度提高树形存储结构数据库中数据的查询效率。
在上述技术方案中,优选地,所述深度信息表示树形存储结构中的节点深度。
通过以上技术方案,可以在现有的数据存储、查询支持的树形结构基础上,为每个组织分配表示其深度的信息,简化对于采用树形结构存储的数据的查询过程。
附图说明
图1示出了某企业“总部”与其下级各组织上下级关系图;
图2示出了根据本发明的实施例的数据存储装置的框图;
图3示出了根据本发明的另一实施例的数据存储装置的框图;
图4示出了根据本发明的实施例的数据存储方法的流程图;
图5示出了根据本发明的另一实施例的数据存储方法的流程图;
图6示出了根据本发明的实施例的数据查询装置的框图;
图7示出了根据本发明的实施例的数据查询方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图2示出了根据本发明的实施例的数据存储装置的框图。
如图2所示,根据本发明的实施例的数据存储装置100,应用于具有树形存储结构的数据库中,该数据存储装置100包括:获取模块102,用于获取数据库中各级节点在树形存储结构中的深度信息;存储模块104,用于将获取模块102获取的深度信息分配至各级节点,并进行保存。在该技术方案中,通过为每个组织分配表示其深度的信息并存储在数据库中,将某一深度的组织与已为该组织分配的深度信息相匹配,为一次性高效完成查询提供方便。
在上述技术方案中,优选地,如图3所示,数据存储装置还包括:更新模块106,用于根据某一节点和/或其上级节点在树形结构上的深度变化信息,更新数据库中该节点的深度信息。也就是说,更新模块106,当某一节点在树形结构上的深度发生变化时,更新该节点的深度,当某一节点的上级节点深度发生变化,更新该节点的深度信息。在该技术方案中,可以实时更新某一节点的深度变化,可以保证存储数据的准确度,也有利于提高查询数据的准确率。
在上述技术方案中,优选地,深度信息表示树形存储结构中的节点深度。
图4示出了根据本发明的实施例的数据存储方法的流程图。
如图4所示,根据本发明的实施例的数据存储方法,应用于具有树形存储结构的数据库中,该数据存储方法包括:步骤202:获取数据库中各级节点在树形存储结构中的深度信息;步骤204:将步骤202获取的深度信息分配至各级节点,并进行保存。在该技术方案中,通过为每个组织分配表示其深度的信息并存储在数据库中,将某一深度的组织与已为该组织分配的深度信息相匹配,为一次性高效完成查询提供方便。
在上述技术方案中,优选地,如图5所示,数据存储方法还包括:步骤206:根据某一节点和/或其上级节点在树形结构上的深度变化信息,更新数据库中该节点的深度信息。也就是说,在步骤206中,当某一节点在树形结构上的深度发生变化时,更新该节点的深度,当某一节点的上级节点深度发生变化,更新该节点的深度信息。在该技术方案中,可以实时更新某一节点的深度变化,可以保证存储数据的准确度,也有利于提高查询数据的准确率。
在上述技术方案中,优选地,深度信息表示树形存储结构中的节点深度。
图6示出了根据本发明的实施例的数据查询装置的框图。
如图6所示,根据本发明的实施例的数据查询装置300,应用于具有树形存储结构的数据库中,该数据查询装置300包括:读取模块302,用于读取数据库中已保存的分配至某一节点的深度信息;查询模块304,用于根据读取模块302读取的节点深度信息,查询该树形数据在某一个深度的所有节点。在该技术方案中,在该技术方案中,通过为每个组织分配表示其深度的信息,当查询某一深度的组织时,可以直接通过已为该组织分配的深度信息,一次性完成查询,大幅度提高树形存储结构数据库中数据的查询效率。
在上述技术方案中,优选地,深度信息表示树形存储结构中的节点深度。
图7示出了根据本发明的实施例的数据查询方法的流程图。
如图7所示,根据本发明的施例的数据查询方法,应用于具有树形存储结构的数据库中,该数据查询方法包括:步骤402:读取数据库中已保存的分配至某一节点的深度信息;步骤404:根据步骤402读取的节点深度信息,查询该树形数据在某一个深度的所有节点。在该技术方案中,在该技术方案中,通过为每个组织分配表示其深度的信息,当查询某一深度的组织时,可以直接通过已为该组织分配的深度信息,一次性完成查询,大幅度提高树形存储结构数据库中数据的查询效率。
在上述技术方案中,优选地,深度信息表示树形存储结构中的节点深度。
例如:参见表2,如果想查出所有大区(江苏大区、浙江大区、广东大区……)下的所有分公司,在该树形结构中,大区(江苏大区、浙江大区、广东大区……)节点在树形中的深度是“2”,大区下分公司在树形中的深度为“3”,通过以下SQL:“SELECT ID,组织FROM组织表WHERE深度=3”,一次查询就能完成。
表2:本发明中对应表1的企业各级组织节点的存储结构
ID | 组织 | 上级组织ID | 深度 | 描述 |
1 | 总部 | NULL | 1 | 树的根节点 |
2 | 江苏大区 | 1 | 2 | 上级组织的ID记录总部ID |
3 | 浙江大区 | 1 | 2 | 上级组织的ID记录总部ID |
4 | 广东大区 | 1 | 2 | 上级组织的ID记录总部ID |
5 | 南京分公司 | 2 | 3 | 上级组织的ID记录江苏大区ID |
6 | 苏州分公司 | 2 | 3 | 上级组织的ID记录江苏大区ID |
7 | 南京分公司财务部 | 5 | 4 | 上级组织的ID记录南京分公司ID |
…… | …… | …… | …… |
与现有技术相比,本发明的技术方案,通过为每个组织分配表示其深度的信息,当查询某一深度的组织时,可以直接通过已为该组织分配的深度信息,一次性完成查询,大幅度提高树形存储结构数据库中数据的查询效率。
与专利(申请)号为200910177831、名称为“一种数据存储、查询方法和装置”的专利(申请)文件公开的技术方案相比,本发明的技术方案,实现了树形数据结构的快速加载,能够更好的查询和展示树形数据。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中没有简便的、统一的针对快速高效地数据存储、查询的解决办法。现有的数据存储、查询无法完成有树形的加载参与的数据存储、查询过程。因此,本发明提出了一种数据存储装置、一种数据存储方法、一种数据查询装置和一种数据查询方法,可以在现有的数据存储、查询支持的树形结构基础上,为每个组织分配表示其深度的信息,简化对于采用树形结构存储的数据的查询过程。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据存储装置,其特征在于,应用于具有树形存储结构的数据库中,所述装置包括:
获取模块,用于获取数据库中各级节点在树形存储结构中的深度信息;
存储模块,用于将所述获取模块获取的深度信息分配至各级节点,并进行保存。
2.根据权利要求1所述的数据存储装置,其特征在于,还包括:
更新模块,用于根据某一节点和/或其上级节点在树形结构上的深度变化信息,更新数据库中该节点的深度信息。
3.根据权利要求1或2所述的数据存储装置,其特征在于,所述深度信息表示树形存储结构中的节点深度。
4.一种数据存储方法,其特征在于,应用于具有树形存储结构的数据库中,所述方法包括:
步骤202:获取数据库中各级节点在树形存储结构中的深度信息;
步骤204:将所述步骤202获取的深度信息分配至各级节点,并进行保存。
5.根据权利要求4所述的数据存储方法,其特征在于,还包括:
步骤206:根据某一节点和/或其上级节点在树形结构上的深度变化信息,更新数据库中该节点的深度信息。
6.根据权利要求4或5所述的数据存储方法,其特征在于,所述深度信息表示树形存储结构中的节点深度。
7.一种数据查询装置,其特征在于,应用于具有树形存储结构的数据库中,所述装置包括:
读取模块,用于读取数据库中已保存的分配至某一节点的深度信息;
查询模块,用于根据所述读取模块读取的节点深度信息,查询该树形数据在某一个深度的所有节点。
8.根据权利要求7所述的数据查询装置,其特征在于,所述深度信息表示树形存储结构中的节点深度。
9.一种数据查询方法,其特征在于,应用于具有树形存储结构的数据库中,所述方法包括:
步骤402:读取数据库中已保存的分配至某一节点的深度信息;
步骤404:根据所述步骤402读取的节点深度信息,查询该树形数据在某一个深度的所有节点。
10.根据权利要求10所述的数据查询方法,其特征在于,所述深度信息表示树形存储结构中的节点深度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310654730.9A CN103605797A (zh) | 2013-12-05 | 2013-12-05 | 数据存储、查询装置和数据存储、查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310654730.9A CN103605797A (zh) | 2013-12-05 | 2013-12-05 | 数据存储、查询装置和数据存储、查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103605797A true CN103605797A (zh) | 2014-02-26 |
Family
ID=50124019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310654730.9A Pending CN103605797A (zh) | 2013-12-05 | 2013-12-05 | 数据存储、查询装置和数据存储、查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103605797A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598626A (zh) * | 2015-02-04 | 2015-05-06 | 中国人民解放军总后勤部军事交通运输研究所 | 自动识别标签中数据模块化存储方法 |
CN106407303A (zh) * | 2016-08-30 | 2017-02-15 | 北京深思数盾科技股份有限公司 | 数据存储、查询方法及装置 |
CN106484591A (zh) * | 2016-09-23 | 2017-03-08 | 上海爱数信息技术股份有限公司 | 一种基于分布式系统的数据采集方法及采集系统 |
CN108063684A (zh) * | 2017-11-15 | 2018-05-22 | 烽火通信科技股份有限公司 | 一种电信接入网数据的处理方法和处理系统 |
CN110325977A (zh) * | 2017-03-20 | 2019-10-11 | 阿列克谢·彼得罗维奇·塞梅诺夫 | 电子数据库及其生成方法 |
-
2013
- 2013-12-05 CN CN201310654730.9A patent/CN103605797A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598626A (zh) * | 2015-02-04 | 2015-05-06 | 中国人民解放军总后勤部军事交通运输研究所 | 自动识别标签中数据模块化存储方法 |
CN104598626B (zh) * | 2015-02-04 | 2018-02-02 | 中国人民解放军总后勤部军事交通运输研究所 | 自动识别标签中数据模块化存储方法 |
CN106407303A (zh) * | 2016-08-30 | 2017-02-15 | 北京深思数盾科技股份有限公司 | 数据存储、查询方法及装置 |
CN106484591A (zh) * | 2016-09-23 | 2017-03-08 | 上海爱数信息技术股份有限公司 | 一种基于分布式系统的数据采集方法及采集系统 |
CN110325977A (zh) * | 2017-03-20 | 2019-10-11 | 阿列克谢·彼得罗维奇·塞梅诺夫 | 电子数据库及其生成方法 |
CN108063684A (zh) * | 2017-11-15 | 2018-05-22 | 烽火通信科技股份有限公司 | 一种电信接入网数据的处理方法和处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860598B2 (en) | Systems and methods for interest-driven business intelligence systems including event-oriented data | |
US20230334030A1 (en) | System and method for slowly changing dimension and metadata versioning in a multidimensional database environment | |
CN106156168B (zh) | 在跨分区数据库中查询数据的方法及跨分区查询装置 | |
CN110168529B (zh) | 数据存储方法、装置和存储介质 | |
US9940375B2 (en) | Systems and methods for interest-driven distributed data server systems | |
CN102521416B (zh) | 数据关联查询方法和数据关联查询装置 | |
Bugiotti et al. | Invisible glue: scalable self-tuning multi-stores | |
CN103605797A (zh) | 数据存储、查询装置和数据存储、查询方法 | |
US20160224623A1 (en) | Workflow Processing System and Method with Database System Support | |
CN106547784B (zh) | 一种数据拆分存储方法及装置 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
CN105183735A (zh) | 数据的查询方法及查询装置 | |
CN102346744B (zh) | 用于在多租户应用系统中处理物化表的装置 | |
CN102567505B (zh) | 一种分布式数据库及其数据操作方法 | |
US20150088806A1 (en) | Supporting multi-tenancy in a federated data management system | |
US20150081353A1 (en) | Systems and Methods for Interest-Driven Business Intelligence Systems Including Segment Data | |
CN102033938A (zh) | 基于二级映射的集群动态扩展方法 | |
CN104281717B (zh) | 一种建立海量id映射关系的方法 | |
CN103700010A (zh) | 一种商品轨迹系统及相关方法 | |
CN104572809A (zh) | 一种分布式关系数据库自由扩展方法 | |
CN106991190A (zh) | 一种数据库自动创建子数据库系统 | |
CN103036921A (zh) | 一种用户行为分析系统和方法 | |
CN103559247B (zh) | 一种数据业务处理方法及装置 | |
WO2014098662A1 (en) | Exposing data to query generating applications using usage profiles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160330 Address after: 100000, No. 2, building 68, 2 North Ching Road, Beijing, Haidian District Applicant after: You Pu Information Technology Co., Ltd of UFSOFT Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant before: UFIDA Software Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140226 |
|
RJ01 | Rejection of invention patent application after publication |