基于关系型数据库的数据汇总装置和方法

文档序号:6377996阅读:160来源:国知局
专利名称:基于关系型数据库的数据汇总装置和方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于关系型数据库的数据汇总装置和一种基于关系型数据库的数据汇总方法。
背景技术
在复杂的业务系统中,很多业务数据都是有层次性的,上级层次的数据需要实时对下级层次的业务数据进行自动汇总。自动汇总要求在末级维度成员的数据逐层汇总到上级成员,所有上级成员的数据都是由下级经过汇总计算得出来的。
但是在某些业务场景下,用户可能并不直接在末级录入数据,而是在上级维度录 入数据,下级维度的数据为空,这种情况下,用户仍然希望能够把录入的数据继续向上级汇总。也就是说,我们无法根据维度的层次关系来判定用户录入的数据是否是末级数据。举例如下假设在时间维度上的层次关系为[2011 年 3 季 7 月]—[2011 年 3 季]—[2011 年];在组织维度上的层次关系为[部门d]—[公司a]—[集团g];在科目维度上的层次关系为[差旅费]—[管理费用]。用户填写了两个数据[2011年3季7月][管理费用][部门d]=3000 ;[2011 年 3 季][差旅费][部门 d]=2000 ;那么作为上级[2011年3季][管理费用][部门d]是汇总数据,其数据应该是多少呢? 2000,3000,5000 还是其他 图IA展示了数据录入到末级下的汇总数据。图IB展示了数据录入到非末级下的汇总数据。这种困惑的原因在于没有确定哪些是末级数据,哪些是非末级数据,但是在企业全面预算等业务过程中,这种业务经常发生。在数据仅在末级录入的情况下,无论沿着哪条路径向上汇总,且结果都应该是一样的,但是在允许数据在非末级维度录入的情况下,不对路径的优先级进行判断,数据就会有问题。因此,需要一种新的汇总方式,允许数据在非末级维度上录入,可选择合适的路径进行汇总,能够保证上级的汇总数据是没有歧义的。

发明内容
本发明正是基于上述问题,提出了一种数据汇总技术,允许数据在非末级维度上录入,可选择合适的路径进行汇总,能够保证上级的汇总数据是没有歧义的。有鉴于此,根据本发明的一个方面,提供了一种基于关系型数据库的数据汇总装置,包括定义单元,定义业务数据的每个维度的优先级;接收单元,接收用户提交的变更单元;查找单元,在所述变更单元的多个维度上的上级数据单元中,查找出在优先级最高的维度上的上级数据单元;汇总单元,从所述变更单元开始向所述优先级最高的维度上的上级数据单元进行数据汇总。在该技术方案中,预定定义每个维度的优先级,若数据在非末级录入,则选择优先级最高的维度,然后从该维度方向向上汇总,这样就可避免汇总数据的不一致。在上述技术方案中,优选的,所述汇总单元包括记录子单元,用于将本次汇总的维度优先级信息作为本次汇总路径的优先级记录在所述上级数据单元中,所述汇总单元根据汇总路径的优先级进行数据汇总。将每次的汇总路径的优先级信息记录下来,在以后的汇总过程中,根据该汇总路径的优先级来判断具体如何进行汇总。
在上述技术方案中,优选的,所述查找单元包括比较子单元,在所述上级数据单元中已记录原汇总路径时,比较所述原汇总路径的优先级与所述本次汇总路径的优先级的高低;所述汇总单元还包括替换子单元,在所述本次汇总路径的优先级高于所述原汇总路径的优先级时,在汇总时,用所述变更单元的数据替换所述优先级最高的维度上的上级数据单元中的汇总数据。这种情况说明本维度的汇总优先级高于上级原有的数据的汇总优先级,那就将本维度的汇总数据覆盖上级原来的汇总数据。在上述技术方案中,优选的,所述汇总单元还可以包括提取子单元,在所述本次汇总路径的优先级等于所述原汇总路径的优先级时,在汇总时,根据所述变更单元的维度信息从所述关系型数据库中提取出原数据单元;计算子单元,计算出所述变更单元与所述原数据单元之间的差异;累加子单元,从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有所述上级数据单元中。这种情况说明上级原有的数据的汇总优先级和本次汇总是同一个维度的,因此只需要计算出本次变更的增量数据,并把该增量数据累加到上级原汇总数据上去。在上述技术方案中,优选的,所述汇总单元还用于在所述本次汇总路径的优先级小于所述原汇总路径的优先级时,放弃本次汇总。这种情况说明上级原有的数据是由更高优先级的维度汇总上去的,放弃本维度的汇总。根据本发明的另一方面,还提供了一种基于关系型数据库的数据汇总方法,包括以下步骤步骤402,定义业务数据的每个维度的优先级;步骤404,接收用户提交的变更单元;步骤406,在所述变更单元的多个维度上的上级数据单元中,查找出在优先级最高的维度上的上级数据单元;步骤408,从所述变更单元开始向所述优先级最高的维度上的上级数据单元进行数据汇总。在该技术方案中,预定定义每个维度的优先级,若数据在非末级录入,则选择优先级最高的维度,然后从该维度方向向上汇总,这样就可避免汇总数据的不一致。在上述技术方案中,优选的,所述步骤408还可以包括将本次汇总的维度优先级信息作为本次汇总路径的优先级记录在所述上级数据单元中,根据汇总路径的优先级进行数据汇总。将每次的汇总路径的优先级信息记录下来,在以后的汇总过程中,根据该汇总路径的优先级来判断具体如何进行汇总。
在上述技术方案中,优选的,所述步骤406还可以包括在所述上级数据单元中已记录原汇总路径时,比较所述原汇总路径的优先级与所述本次汇总路径的优先级的高低;所述步骤408还包括在所述本次汇总路径的优先级高于所述原汇总路径的优先级时,在汇总时,用所述变更单元的数据替换所述优先级最高的维度上的上级数据单元中的数据。这种情况说明本维度的汇总优先级高于上级原有的数据的汇总优先级,那就将本维度的汇总数据覆盖上级原来的汇总数据。在上述技术方案中,优选的,所述步骤408还可以包括在所述本次汇总路径的优先级等于所述原汇总路径的优先级时,在汇总时,根据所述变更单元的维度信息从所述关系型数据库中提取出原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有所述上级数据单元中。这种情况说明上级原有的数据的汇总优先级和本次汇总是同一个维度的,因此只需要计算出本次变更的增量数据,并把该增量数据累加到上级原汇总数据上去。在上述技术方案中,优选的,在所述本次汇总路径的优先级小于所述原汇总路径的优先级时,放弃本次汇总。这种情况说明上级原有的数据是由更高优先级的维度汇总上去的,放弃本维度的汇总。本发明提出了一种在允许非末级数据录入的业务场景下,通过定义维度上的汇总优先级,在系统中存在多个汇总路径的情况下,通过选择一条优先路径,实现数据自底而上 的汇总,可以解决类似业务场景下的问题。


图IA示出了从末级录入数据的汇总示意图;图IB示出了从非末级录入数据的汇总示意图;图2A至图2C示出了根据本发明的实施例的维度结构图;图3示出了根据本发明的实施例的基于关系型数据库的数据汇总装置的框图;图4示出了根据本发明的一个实施例的基于关系型数据库的数据汇总方法的流程图;图5示出了根据本发明的又一实施例的基于关系型数据库的数据汇总方法的流程图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。首先结合图2A至图2C来说明在本发明的实施例中的多维数据的表达和存储。对于业务数据,需要预先设定数据的维度(Dimension)。
维度(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维度,例如时间维度,组织维度,产品维度等等。维度的层次(Level):是对维度的进一步的细分,如时间维度可以细分为,年层次,季度层次,月层次。维度的成员(Member):维度的具体取值,是数据在某个维度中位置的描述,如“2012年3月”是数据在时间维度上的位置的描述。通过定义多个不同的维度,能够更加灵活地观测和分析数据,每个维度的层次关系是以树形结构进行存储的,这样便于数据的汇总。多维数据集(Cube):由多个维度组成的数据载体,Cube就像一个坐标系,其中的每一个维度(Dimension)代表一个坐标轴。为了便于更加清晰的理解本发明,在本发明的实施例中以三维为例,给出了维度 结构图,如图2A至图2C所示。在下面的实施例中,使用RDBMS(relational database management system,关系
型数据库管理系统)来存储多维数据集,多维数据集的数据表结构如下表所示
权利要求
1.一种基于关系型数据库的数据汇总装置,其特征在于,包括 定义单元,定义业务数据的每个维度的优先级; 接收单元,接收用户提交的变更单元; 查找单元,在所述变更单元的多个维度上的上级数据单元中,查找出在优先级最高的维度上的上级数据单元; 汇总单元,从所述变更单元开始向所述优先级最高的维度上的上级数据单元进行数据汇总。
2.根据权利要求I所述的基于关系型数据库的数据汇总装置,其特征在于,所述汇总単元包括记录子単元,用于将本次汇总的维度优先级信息作为本次汇总路径的优先级记录在所述上级数据单元中,所述汇总単元根据汇总路径的优先级进行数据汇总。
3.根据权利要求2所述的基于关系型数据库的数据汇总装置,其特征在干,所述查找単元包括比较子单元,在所述上级数据单元中已记录原汇总路径时,比较所述原汇总路径的优先级与所述本次汇总路径的优先级的高低; 所述汇总单元还包括替换子単元,在所述本次汇总路径的优先级高于所述原汇总路径的优先级时,在汇总时,用所述变更単元的数据替换所述优先级最高的维度上的上级数据单元中的汇总数据。
4.根据权利要求2所述的基于关系型数据库的数据汇总装置,其特征在干,所述汇总单元还包括提取子単元,在所述本次汇总路径的优先级等于所述原汇总路径的优先级吋,在汇总时,根据所述变更单元的维度信息从所述关系型数据库中提取出原数据单元; 计算子単元,计算出所述变更単元与所述原数据单元之间的差异; 累加子単元,从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有所述上级数据单元中。
5.根据权利要求2所述的基于关系型数据库的数据汇总装置,其特征在于,所述汇总単元还用于在所述本次汇总路径的优先级小于所述原汇总路径的优先级时,放弃本次汇总。
6.一种基于关系型数据库的数据汇总方法,其特征在于,包括以下步骤 步骤402,定义业务数据的每个维度的优先级; 步骤404,接收用户提交的变更单元; 步骤406,在所述变更単元的多个维度上的上级数据単元中,查找出在优先级最高的维度上的上级数据单元; 步骤408,从所述变更单元开始向所述优先级最高的维度上的上级数据单元进行数据汇总。
7.根据权利要求6所述的基于关系型数据库的数据汇总方法,其特征在干,所述步骤408还包括将本次汇总的维度优先级信息作为本次汇总路径的优先级记录在所述上级数据单元中,根据汇总路径的优先级进行数据汇总。
8.根据权利要求7所述的基于关系型数据库的数据汇总方法,其特征在于,所述步骤406还包括在所述上级数据单元中已记录原汇总路径时,比较所述原汇总路径的优先级与所述本次汇总路径的优先级的高低; 所述步骤408还包括在所述本次汇总路径的优先级高于所述原汇总路径的优先级时,在汇总时,用所述变更単元的数据替换所述优先级最高的维度上的上级数据単元中的数据。
9.根据权利要求7所述的基于关系型数据库的数据汇总方法,其特征在干,所述步骤408还包括在所述本次汇总路径的优先级等于所述原汇总路径的优先级时,在汇总时,根据所述变更单元的维度信息从所述关系型数据库中提取出原数据单元,并计算出所述变更単元与所述原数据单元之间的差异; 从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更単元的所有所述上级数据单元中。
10.根据权利要求7所述的基于关系型数据库的数据汇总方法,其特征在于,在所述本次汇总路径的优先级小于所述原汇总路径的优先级时,放弃本次汇总。
全文摘要
本发明提供了一种基于关系型数据库的数据汇总装置,包括定义单元,定义业务数据的每个维度的优先级;接收单元,接收用户提交的变更单元;查找单元,在变更单元的多个维度上的上级数据单元中,查找出在优先级最高的维度上的上级数据单元;汇总单元,从变更单元开始向优先级最高的维度上的上级数据单元进行数据汇总。根据本发明的技术方案,能够允许数据在非末级维度上录入,可对汇总路径的优先级进行判断,保证上级的汇总数据是没有歧义的。本发明还提供了一种基于关系型数据库的数据汇总方法。
文档编号G06F17/30GK102867065SQ20121036987
公开日2013年1月9日 申请日期2012年9月28日 优先权日2012年9月28日
发明者童志杰 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1