问:在数据库中,汇总表和汇总事实表是什么? 答:从一般意义上讲,汇总表是简单的数据库表,只不过它包含合计数据。好,我承认:这个答案是正确的但是没什么用。下面,我们重新试一次,并且这次我们将以事实表为例。想象一下你有一张这样的事实表,其字段包括date,product和customer: Customer IDItem NoOrder DateUnit SalesProfit114304/05/201211.52115004/05/201233.91810/06/201212.4817710/06/201211.3719210/06/201211.3319510/06/201212.8711……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:在数据库中,汇总表和汇总事实表是什么?
答:从一般意义上讲,汇总表是简单的数据库表,只不过它包含合计数据。好,我承认:这个答案是正确的但是没什么用。下面,我们重新试一次,并且这次我们将以事实表为例。想象一下你有一张这样的事实表,其字段包括date,product和customer:
Customer ID | Item No | Order Date | Unit Sales | Profit |
1 | 143 | 04/05/2012 | 1 | 1.52 |
1 | 150 | 04/05/2012 | 3 | 3.9 |
1 | 8 | 10/06/2012 | 1 | 2.48 |
1 | 77 | 10/06/2012 | 1 | 1.37 |
1 | 92 | 10/06/2012 | 1 | 1.33 |
1 | 95 | 10/06/2012 | 1 | 2.87 |
1 | 18 | 28/07/2012 | 1 | 2.3 |
1 | 37 | 28/07/2012 | 1 | 1.03 |
1 | 61 | 28/07/2012 | 1 | 2.01 |
1 | 83 | 28/07/2012 | 1 | 2.37 |
1 | 120 | 28/07/2012 | 1 | 2.24 |
1 | 8 | 13/08/2012 | 1 | 2.48 |
1 | 58 | 13/08/2012 | 1 | 2.79 |
1 | 100 | 16/12/2012 | 1 | 2.18 |
1 | 122 | 16/12/2012 | 1 | 2.47 |
1 | 83 | 12/05/2013 | 1 | 2.37 |
1 | 148 | 12/05/2013 | 1 | 2.17 |
1 | 37 | 29/11/2013 | 1 | 1.03 |
1 | 116 | 29/11/2013 | 1 | 2.03 |
2 | 46 | 07/04/2012 | 1 | 2.24 |
2 | 110 | 07/04/2012 | 1 | 2.84 |
2 | 49 | 06/05/2012 | 1 | 2.2 |
2 | 60 | 06/05/2012 | 1 | 1.91 |
2 | 26 | 22/05/2012 | 1 | 1.69 |
你看到了unit sales的每一个值都是在某天卖给某个客户某个产品的汇总。另外,我意识到这种欧洲风格的日期是未来日期 – 但是我们在这里就把它们当作过去时间。
我们可以查询这张事实表,它将返回数据。例如,我们可以要求返回2010年5月4日Item No为150,Customer为1的unit sales的总量,我们得到的结果是3 。
我们也可以执行查询来获取Item No.为150在整个5月份的销售总量是。为此,系统将扫描事实表,以查询5月份31天的产品销售记录,并从第一位客户起列出产品的销售量,然后从返回的记录中汇总unit-sale值。 这将是个相对较慢的过程。
一个可选的操作是创建事实表,但是它已经包含了一个或多个级别的汇总。例如,我们可以按月汇总此事实表。那将包含查询CustomerID为1、ItemNo.为150的全部销售记录。也就是说,2012年1月汇总数据,并将结果放到一条记录里。然后,我们可以对其它月份、产品、客户做同样的操作。
新表将会是这样:
Customer ID | Item No | Order date | Unit Sales | Profit |
1 | 150 | Jan 2012 | 11 | 11.52 |
1 | 150 | Feb 2012 | 3 | 3.9 |
1 | 150 | March 2012 | 2 | 2.48 |
1 | 150 | April 2012 | 1 | 1.37 |
1 | 150 | May 2012 | 1 | 1.33 |
1 | 150 | June 2012 | 2 | 2.87 |
现在,我们有一条可以查找月销售总量的查询,我们可以执行它,相比事实表,它可以更快地返回结果。当然,这也不是我们唯一能够生成的汇总表。例如,如果我们知道客户所在的不同郡,我们可以生成基于郡的汇总表。
我们也可以同时通过日期和客户来汇总月级和郡级数据,就像摘选的这张表(说明:Herefordshire郡是英格兰的一个郡)
Customer ID | Item No | Order date | Unit Sales | Profit |
Herefordshire | 150 | Jan 2012 | 111 | 121.52 |
Herefordshire | 150 | Feb 2010 | 63 | 73.9 |
换言之,我们可以创建一系列汇总事实表,当查询进来,我们可以运行在适当汇总表中。
到现在为止,已经很清楚了,所有这些都说明:汇总事实表简单的包含多条数据记录,不包含明细数据,只包含汇总后的数据。
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。