数据查询方法及装置制造方法

文档序号:6638829阅读:124来源:国知局
数据查询方法及装置制造方法
【专利摘要】本发明公开了一种数据查询方法及装置,该数据查询方法包括:接收查询指令,其中,查询指令为用于指示从预设数据库中查询数据的指令,在预设数据库中存储有多个维度的数据,并且多个维度的数据存储于预设数据库中的一张数据表中,查询指令中包含第一维度和第二维度,第一维度和第二维度为多个维度中任意两个不同的维度;从查询指令中获取第一维度和第二维度;从预设数据库中查询与第一维度和第二维度对应的数据;以及显示查询到的与第一维度和第二维度对应的数据。通过本发明,解决了查询多维度关联的数据效率低的问题,进而达到了提高查询多维度关联的数据的效率的效果。
【专利说明】数据查询方法及装置

【技术领域】
[0001] 本发明涉及数据库领域,具体而言,涉及一种数据查询方法及装置。

【背景技术】
[0002] 目前的数据库设计,在数据量相对较小的情况下遵循第三范式,这样有效的避免 了数据冗余,节省存储空间,同时减小了冗余维护的代价。例如:设计一个数据库,用于 存储苹果、果树和果园信息三个相关联维度的信息,一个典型的设计如图1所示,建立果园 表、果树表和苹果表三个数据表分别存储果园、果树和苹果的信息,其中,果园表和果树表 通过果园标识建立果树和其所属的果园的关联关系,果树表和苹果表通过果树标识建立苹 果和其所属的果树的关联关系。用户通常需要对数据库中的数据进行分析统计,以上述果 园为例,分析某个地域的苹果产量时,由于通过苹果无法直接得到地域信息,必须关联到果 树表,通过果树表才能关联到果园表,在果园表中包含苹果的地域信息,因此,要查询某个 地域的苹果产量时,需要关联查询苹果表、果树表、果园表来汇总某个地域的苹果产量,一 个SQL实现如下:
[0003] SELECT [地域],SUM [重量]
[0004] FROM [苹果表]
[0005] LEFT JOIN [果树]ON [苹果表]· [FID]=[果树]· [FID]
[0006] LEFT JOIN [果园]ON [果树表]· [FFID]=[果园]· [FFID]
[0007] GROUP BY [地域]
[0008] 其中,FID、FFID分别为果树标识和果园标识。
[0009] 从上可以看出,采用上述方式设计的数据库在查询过程中,往往需要关联多个数 据表,当需要查询的数据量很大时,表连接将耗费大量的时间,效率较低。
[0010] 另一方面,根据数据表出具的分析报告可能是任意维度和任意指标的查询,例如, 分地域的产量报告,例如每年世界各地的产量值,得出那些地域种植苹果可以获得最大收 益;分析品种的产量值,从而得出不同品种的苹果产量,得出品种的好坏;分析不同地域、 不同品种的产量值,以衡量哪些地域适合种植某些品种的苹果;分析不同地域、不同品种的 产量值、成熟时间(结果时间-种植时间)、单位时间产量值(产量值/成熟时间),苹果的 成熟时间是关键部分,越快成熟,具有更高的种植价值,等等。用户需要根据不同的种植分 析结果,用于决策在合适的土壤种植合适的苹果,苹果种植专家将设定查询条件,根据经验 和业务进行分析,查询条件十分多样。因此,查询时可能不知道各个维度的数据之间的关联 关系,此时会出现无法查询得到需要的数据。
[0011] 针对相关技术中查询多维度关联的数据效率低的问题,目前尚未提出有效的解决 方案。


【发明内容】

[0012] 本发明的主要目的在于提供一种数据查询方法及装置,以解决相关技术中查询多 维度关联的数据效率低的问题。
[0013] 为了实现上述目的,根据本发明的一个方面,提供了 一种数据查询方法。
[0014] 根据本发明的数据查询方法包括:接收查询指令,其中,查询指令为用于指示从预 设数据库中查询数据的指令,在预设数据库中存储有多个维度的数据,并且多个维度的数 据存储于预设数据库中的一张数据表中,查询指令中包含第一维度和第二维度,第一维度 和第二维度为多个维度中任意两个不同的维度;从查询指令中获取第一维度和第二维度; 从预设数据库中查询与第一维度和第二维度对应的数据;以及显示查询到的与第一维度和 第二维度对应的数据。
[0015] 进一步地,预设数据库包含第一数据表,第一数据表用于存储多个维度的数据,在 接收查询指令之前,方法还包括:获取多个维度的数据;以及存储多个维度的数据至第一 数据表中。
[0016] 进一步地,第一数据表包含多个表分区,在获取多个维度的数据之后,方法还包 括:确定多个维度的数据对应的表分区;以及存储多个维度的数据至多个维度的数据对应 的表分区中。
[0017] 进一步地,第一数据表包括多个数据行,多个数据行中的每一个数据行包括多个 维度的数据,多个维度的数据包括第三维度的数据和第四维度的数据,第三维度的数据从 属关联于第四维度的数据,存储多个维度的数据至第一数据表中包括存储第三维度的数据 和第四维度的数据至第一数据表中,存储第三维度的数据和第四维度的数据至第一数据表 中包括:将第三维度的数据插入至第一数据表的数据行中;从第四维度的数据中查找与第 三维度的数据关联的数据;以及将查找到的数据对应的插入至第三维度的数据插入的数据 行中。
[0018] 进一步地,在存储多个维度的数据至第一数据表中之后,方法还包括:获取第一数 据表的所有列;以及建立第一数据表的所有列的列存储索引。
[0019] 为了实现上述目的,根据本发明的另一方面,提供了 一种数据查询装置。
[0020] 根据本发明的数据查询装置包括:接收单元,用于接收查询指令,其中,查询指令 为用于指示从预设数据库中查询数据的指令,在预设数据库中存储有多个维度的数据,并 且多个维度的数据存储于预设数据库中的一张数据表中,查询指令中包含第一维度和第二 维度,第一维度和第二维度为多个维度中任意两个不同的维度;第一获取单元,用于从查询 指令中获取第一维度和第二维度;查询单元,用于从预设数据库中查询与第一维度和第二 维度对应的数据;以及显示单元,用于显示查询到的与第一维度和第二维度对应的数据。
[0021] 进一步地,预设数据库包含第一数据表,第一数据表用于存储多个维度的数据,装 置还包括:第二获取单元,用于获取多个维度的数据;以及第一存储单元,用于存储多个维 度的数据至第一数据表中。
[0022] 进一步地,第一数据表包含多个表分区,在获取多个维度的数据之后,该装置还包 括:确定单元,用于确定多个维度的数据对应的表分区;以及第二存储单元,用于存储多个 维度的数据至多个维度的数据对应的表分区中。
[0023] 进一步地,第一数据表包括多个数据行,多个数据行中的每一个数据行包括多个 维度的数据,多个维度的数据包括第三维度的数据和第四维度的数据,第三维度的数据从 属关联于第四维度的数据,存储多个维度的数据至第一数据表中包括存储第三维度的数据 和第四维度的数据至第一数据表中,第一存储单元包括:第一插入单元,用于将第三维度的 数据插入至第一数据表的数据行中;查找单元,用于从第四维度的数据中查找与第三维度 的数据关联的数据;以及第二插入单元,用于将查找到的数据对应的插入至第三维度的数 据插入的数据行中。
[0024] 进一步地,在存储多个维度的数据至第一数据表中之后,该装置还包括:第三获取 单元,用于获取第一数据表的所有列;以及建立单元,用于建立第一数据表的所有列的列存 储索引。
[0025] 通过本发明,采用将多个维度的数据存储于预设数据库的一张数据表中,从而查 询多个维度的数据时,无需数据表之间关联即可直接查询到多个维度的数据,解决了相关 技术中查询多维度关联的数据效率低的问题,进而达到了提高查询多维度关联的数据的效 率的效果。

【专利附图】

【附图说明】
[0026] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0027] 图1是根据相关技术的多维度数据存储结构的示意图;
[0028] 图2是根据本发明实施例的数据查询方法的流程图;
[0029] 图3是根据本发明实施例的多维度数据存储结构的示意图;
[0030] 图4是根据相关技术的多维度数据查询的流程图;
[0031] 图5是根据本发明实施例的多维度数据查询的流程图;以及
[0032] 图6是根据本发明实施例的数据查询装置的示意图。

【具体实施方式】
[0033] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。
[0034] 为了使本【技术领域】的人员更好地理解本申请方案,下面将结合本申请实施例中的 附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范 围。
[0035] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使 用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语"包括"和 "具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元 的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有 清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0036] 根据本发明实施例,提供了一种数据查询方法,图2是根据本发明实施例的数据 查询方法的流程图。
[0037] 如图2所示,该方法包括如下的步骤S202至步骤S208 :
[0038] 步骤S202 :接收查询指令,其中,查询指令为用于指示从预设数据库中查询数据 的指令,在预设数据库中存储有多个维度的数据,并且多个维度的数据存储于预设数据库 中的一张数据表中,查询指令中包含第一维度和第二维度,第一维度和第二维度为多个维 度中任意两个不同的维度。
[0039] 查询指令用于从预设数据库中查询数据的指令,具体地,通过查询指令可以查询 预设数据库中存储的多个维度的数据中任意维度的数据,其中,多个维度的数据具有关联 关系,例如,苹果、果树、果园三个维度,苹果关联于果树,果树关联于果园。本发明实施例以 查询指令查询预设数据库中两个维度的数据为例进行说明,即第一维度和第二维度。通常, 可以在数据库前端界面中输入查询指令。
[0040] 预设数据库将多个维度的数据存储在一张数据表中,并以业务上最小单位的表 行作为数据源的一个数据行,如表1所示,该数据表中同时存储了苹果、果树、果园三个相 关联维度的数据,由于苹果为业务上最小单位,此时,该数据表的每个数据行存储为苹果信 息,存储结构如图3所示。由于果树2尚未有苹果,此时,苹果相关的信息可以设为固定值, 例如,NULL,果园3没有任何果树或苹果,除果园相关的信息,即果园名称和地域之外,数据 表中其他数据列均存储为固定值NULL。
[0041] 表1苹果维度表
[0042]

【权利要求】
1. 一种数据查询方法,其特征在于,包括: 接收查询指令,其中,所述查询指令为用于指示从预设数据库中查询数据的指令,在所 述预设数据库中存储有多个维度的数据,并且所述多个维度的数据存储于所述预设数据库 中的一张数据表中,所述查询指令中包含第一维度和第二维度,所述第一维度和所述第二 维度为所述多个维度中任意两个不同的维度; 从所述查询指令中获取所述第一维度和所述第二维度; 从所述预设数据库中查询与所述第一维度和所述第二维度对应的数据;W及 显示查询到的与所述第一维度和所述第二维度对应的数据。
2. 根据权利要求1所述的数据查询方法,其特征在于,所述预设数据库包含第一数据 表,所述第一数据表用于存储所述多个维度的数据,在接收查询指令之前,所述方法还包 括: 获取所述多个维度的数据;W及 存储所述多个维度的数据至所述第一数据表中。
3. 根据权利要求2所述的数据查询方法,其特征在于,所述第一数据表包含多个表分 区,在获取所述多个维度的数据之后,所述方法还包括: 确定所述多个维度的数据对应的表分区;W及 存储所述多个维度的数据至所述多个维度的数据对应的表分区中。
4. 根据权利要求2所述的数据查询方法,其特征在于,所述第一数据表包括多个数据 行,所述多个数据行中的每一个数据行包括所述多个维度的数据,所述多个维度的数据包 括第H维度的数据和第四维度的数据,所述第H维度的数据从属关联于所述第四维度的数 据,存储所述多个维度的数据至所述第一数据表中包括存储所述第H维度的数据和所述第 四维度的数据至所述第一数据表中,所述存储所述第H维度的数据和所述第四维度的数据 至所述第一数据表中包括: 将所述第H维度的数据插入至所述第一数据表的数据行中; 从所述第四维度的数据中查找与所述第H维度的数据关联的数据;W及 将查找到的数据对应的插入至所述第H维度的数据插入的数据行中。
5. 根据权利要求2所述的数据查询方法,其特征在于,在存储所述多个维度的数据至 所述第一数据表中之后,所述方法还包括: 获取所述第一数据表的所有列;W及 建立所述第一数据表的所有列的列存储索引。
6. -种数据查询装置,其特征在于,包括: 接收单元,用于接收查询指令,其中,所述查询指令为用于指示从预设数据库中查询数 据的指令,在所述预设数据库中存储有多个维度的数据,并且所述多个维度的数据存储于 所述预设数据库中的一张数据表中,所述查询指令中包含第一维度和第二维度,所述第一 维度和所述第二维度为所述多个维度中任意两个不同的维度; 第一获取单元,用于从所述查询指令中获取所述第一维度和所述第二维度; 查询单元,用于从所述预设数据库中查询与所述第一维度和所述第二维度对应的数 据拟及 显示单元,用于显示查询到的与所述第一维度和所述第二维度对应的数据。
7. 根据权利要求6所述的数据查询装置,其特征在于,所述预设数据库包含第一数据 表,所述第一数据表用于存储所述多个维度的数据,所述装置还包括: 第二获取单元,用于获取所述多个维度的数据;W及 第一存储单元,用于存储所述多个维度的数据至所述第一数据表中。
8. 根据权利要求7所述的数据查询装置,其特征在于,所述第一数据表包含多个表分 区,在获取所述多个维度的数据之后,所述装置还包括: 确定单元,用于确定所述多个维度的数据对应的表分区;W及 第二存储单元,用于存储所述多个维度的数据至所述多个维度的数据对应的表分区 中。
9. 根据权利要求7所述的数据查询装置,其特征在于,所述第一数据表包括多个数据 行,所述多个数据行中的每一个数据行包括所述多个维度的数据,所述多个维度的数据包 括第H维度的数据和第四维度的数据,所述第H维度的数据从属关联于所述第四维度的数 据,存储所述多个维度的数据至所述第一数据表中包括存储所述第H维度的数据和所述第 四维度的数据至所述第一数据表中,所述第一存储单元包括: 第一插入单元,用于将所述第H维度的数据插入至所述第一数据表的数据行中; 查找单元,用于从所述第四维度的数据中查找与所述第H维度的数据关联的数据;W 及 第二插入单元,用于将查找到的数据对应的插入至所述第H维度的数据插入的数据行 中。
10. 根据权利要求7所述的数据查询装置,其特征在于,在存储所述多个维度的数据至 所述第一数据表中之后,所述装置还包括: 第H获取单元,用于获取所述第一数据表的所有列;W及 建立单元,用于建立所述第一数据表的所有列的列存储索引。
【文档编号】G06F17/30GK104462434SQ201410778061
【公开日】2015年3月25日 申请日期:2014年12月15日 优先权日:2014年12月15日
【发明者】池雷 申请人:北京国双科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1