一种基于范围语义的数据库聚集查询方法技术

技术编号:9642511 阅读:74 留言:0更新日期:2014-02-07 01:11
本发明专利技术涉及一种基于范围语义的数据库聚集查询方法,属于数据库查询技术领域。主要步骤为:采用有连接的算法得到聚集查询约简的一致性结果,并根据得到的结果计算;在计算得到根结点的连接属性值是否存在于树叶的查询子集中后,再对其键值进行分组过滤,得到无重复外键属性和分组属性表达式G的cand_G结果集;然后用cand_G结果集代替原有的根结点,在原有的连接关系上进行连接;对cand_G结果集的初始分组属性和根节点的外键属性进行分组得到聚集值的最大和最小值;最后对结果集cand的初始分组属性进行分组求和得到最终聚集值的最小值和最大值。采用本发明专利技术方法,可以有效地针对数据库进行查询,获得更好的查询效果。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及,属于数据库查询
。主要步骤为:采用有连接的算法得到聚集查询约简的一致性结果,并根据得到的结果计算;在计算得到根结点的连接属性值是否存在于树叶的查询子集中后,再对其键值进行分组过滤,得到无重复外键属性和分组属性表达式G的cand_G结果集;然后用cand_G结果集代替原有的根结点,在原有的连接关系上进行连接;对cand_G结果集的初始分组属性和根节点的外键属性进行分组得到聚集值的最大和最小值;最后对结果集cand的初始分组属性进行分组求和得到最终聚集值的最小值和最大值。采用本专利技术方法,可以有效地针对数据库进行查询,获得更好的查询效果。【专利说明】
本专利技术涉及,属于数据库查询

技术介绍
随着计算机应用技术的不断普及和发展,数据库系统正越来越多的走进人们的日常生活。在要求查询结果正确无误的同时,人们越来越关心查询的效率问题。影响查询效率的因素很多,诸如处理器的速度、I/o速度、存储器的容量、操作系统、采取何种的数据库服务系统等。但是对于特定服务器来说查询的效率主要取决于DBA (数据库管理员)所给定的查询语句。数据库服务器对数据进行访问一般采用下面的两种方式:①索引扫描,通过索引访问数据表扫描,读表中的所有页。当对一个表进行查询时,如果返回的行数占全表总行数的10%到15%时,使用索引可以极大的优化查询的性能。但是如果查询涉及到全表40%以上的行时,表扫描的效率比使用索引扫描的效率高。索引有助于提高检索性能,但过多或不当的索引也会导致系统低效。因为用户在表中每添加一个索引,数据库就要做更多的工作。过多的索引甚至会导致索引碎片。
技术实现思路
本专利技术的目的在于提供,以便更好地针对数据库进行查询。为了实现上述目的,本专利技术的技术方案如下。`,具体包括以下步骤: (I)采用有连接的算法得到聚集查询约简的一致性结果,并根据得到的结果计算R0CA,与无聚集的连接查询重写算法不同的是,根结点得到的结果集兄添加了外键属性;在计算得到根结点的连接属性值是否存在于树叶的查询子集中后,再对其键值进行分组过滤,得到关于根结点的无重复外键属性和分组属性表达式G的cmd—G结果集。(2)然后结果集作为根结点代替原有的根结点,其他子结点不变,在原有的连接关系上,进行连接;对^/7(6结果集的初始分组属性和根节点的外键属性进行分组,得到聚集值的最大和最小值;最后对结果集cand的初始分组属性进行分组求和,得到最终聚集值的最小值和最大值。上述有连接的聚集查询基于无连接的聚集查询,首先采用聚集查询约简判断连接图中每个顶点(关系)的一致性,并考虑相邻顶点的连接属性。聚集查询约简对应的连接图是基于初始查询的树根,而聚集查询重写对应的连接图则根据聚集查询约简计算得到的一致性结果集作为树根。因此,这类算法的聚集查询约简是求出没有聚集的情况下的一致性结果,然后在已经求得的一致性结果基础上,再计算聚集属性的最大值和最小值。进一步地,上述无聚集的查询重写算法,其基本思想如下:(I)最小值由于存在可能值(即冲突元组的最小值为0),必须要把可能值排除掉,得到必然值(一致性元组),然后再求最大值。首先对初始查询加入键属性,对初始分组属性和键属性进行聚集求最大值和最小值,得到Cmd结果集。(2)由于冲突元组的最小值为O, min_candl用于剔除中的初始分组属性值相冲突的元组。在ASC的条件选择谓词中,可能有不满足选择条件的情况,如选择条件相反(采用NSC表示)和选择条件属性值为空(采用ISNULL (SCA)表示),这种情况表明对于键属性值来说,由于存在多个选择分组属性值,则可能是不满足初始查询的元组出现,因此其最小值也为O,需要在min_candl的过滤基础上,再过滤掉不满足初始查询的元组,得到cand2结果集。(3)然后再对过滤产生的最小值必结果集与候选结果集进行连接产生过滤的初始分组属性的最小值O。由于最大值是可能的最大的候选值,因此对结果集的初始分组属性聚集求和产生的?结果集中的最大值是确定的,没有被过滤的最小值是确定的。(4)最后max_cand结果集左连接结果集,如栗min_canc/3的初始分组属性为空,则返回为0,否则返回确定的最小值和最大值。该专利技术的有益效果在于:通过采用上述方法,可以有效地针对数据库进行查询,获得更好的查询效果。【专利附图】【附图说明】图1是本专利技术实施例中无连接的聚集查询重写算法截图。图2是本专利技术实施例中聚集算法的标记图。图3是本专利技术实施例中有连接的聚集查询重写算法截图。【具体实施方式】下面结合附图和实施例对本专利技术的【具体实施方式】进行描述,以便更好的理解本专利技术。实施例聚集是非常普通的,在普通的聚集查询中,一般都能获得确定的数值。聚集操作符的结果是对整个表中的所有声明的属性(列)的值进行计算的结果。如果在一个查询里面声明了组,那么这种(聚集)计算将只发生在一个组的值上。SQL允许把一个表里面的记录分成组。然后上面描述的聚集操作符可以应用于这些组上,也就是说,聚集操作符的值不再是对所有声明的列值进行操作,而是对一个组的所有值进行操作。这样,聚集函数为每个组独立地进行计算。对记录的分组是通过GROUP BY实现的,GROUP BY后面跟着一个定义组的构成的属性列表。然而,由于在非一致性数据库中元组数值的不确定性,聚集查询对于每个候选数据库返回不同的结果,不能返回一致性结果,因此需要对CQA语义进行调整,在范围语义下,关系的数字属性的最大值和最小值的计算可以被一阶查询表示。在有限的情况下,聚集查询基于函数依赖,由一个标准的聚集操作符应用(MIN(A),MAX(A), COUNTS),COUNT⑷,SUM⑷和AVG⑷)组成。,具体包括: 定义区间(interval):给定一组完整性约束i:和数据库实例/,如果聚集查询^在每个候选数据库上返回到值rc ,则<7在/上的一致性结果是区间 ( —m〈a < K m ),表不为/ l=<7i:e 。如果IaM是一致性结果,则a为下界泌为上界。如果没有子区间是一致性结果,则Ca,幻是最优的一致性结果,a为最大下界j为最小上界。因为SQL查询可以有一些属性在GROUP BY语句中但没有出现在SELECT语句中(虽然反过来不是)。本专利技术中,给出如下的假设。假定查询中GROUP BY语句中属性也出现在SELECT语句中。进一步地,定义聚集查询<7表示为如下形式,其中^是一组分组属性,…,aggjej是聚集表达式。SELECT G,aggj (el) el,…,aggn、e) enFROM R 进一步地,定义聚集查询约简办是去掉聚集查询中的聚集与分组,办的形式为: SELECT G FROM R 。聚集查询约简的目的是先得到一致性查询结果,再进行聚集计算。由于聚集查询约简是无聚集的,因此可以有效地利用无聚集查询重写算法。对聚集表达返回范围(边界值),而不是准确的数值。基于范围语义,需要调整CQA的语义,叫做一致性查询范围。定义4-11给出了范围保证G的每个值是一致性结果。进一步地,定义一致性查询范围(rangeof consistent answer, R0CA)。设D是一个数据库,Q是一个聚集查询,&本文档来自技高网
...

【技术保护点】
一种基于范围语义的数据库聚集查询方法,其特征在于:具体包括以下步骤:?(1)采用有连接的算法得到聚集查询约简的一致性结果,并根据得到的结果计算ROCA,根结点得到的结果集cand_Rm添加了外键属性;在计算得到根结点的连接属性值是否存在于树叶的查询子集中后,再对其键值进行分组过滤,得到关于根结点的无重复外键属性和分组属性表达式G的cand_G结果集;(2)然后cand_G结果集作为根结点代替原有的根结点,其他子结点不变,在原有的连接关系上,进行连接;对cand_G结果集的初始分组属性和根节点的外键属性进行分组,得到聚集值的最大和最小值;最后对结果集cand的初始分组属性进行分组求和,得到最终聚集值的最小值和最大值。

【技术特征摘要】

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:湖南人文科技学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1