📅  最后修改于: 2020-11-27 07:10:16             🧑  作者: Mango
尺寸建模提供了DW设计中使用的一组方法和概念。根据DW顾问Ralph Kimball的说法,维度建模是一种用于数据库的设计技术,旨在支持数据仓库中的最终用户查询。它围绕可理解性和性能。他认为,尽管面向事务的ER对于捕获事务非常有用,但应避免在最终用户交付时使用它。
维度建模始终使用事实和维度表。事实是可以对事实值进行汇总和分析的数值。维度定义层次结构和事实值的描述。
维度表存储描述事实表中对象的属性。维度表具有一个主键,用于唯一标识每个维度行。此键用于将维度表与事实表相关联。
维度表通常会被规范化,因为它们不是为执行事务而创建的,而仅用于详细分析数据。
在以下维度表中,客户维度通常包括客户名称,地址,客户ID,性别,收入组,受教育程度等。
Customer ID | Name | Gender | Income | Education | Religion |
---|---|---|---|---|---|
1 | Brian Edge | M | 2 | 3 | 4 |
2 | Fred Smith | M | 3 | 5 | 1 |
3 | Sally Jones | F | 1 | 7 | 3 |
事实表包含称为测量值的数值。事实表具有两种类型的列-事实表和维表的外键。
事实表中的度量分为三种类型-
添加剂-可以跨任意维度添加的度量。
非加性-不能跨任何维度添加的度量。
半加性-可以跨某些维度添加的度量。
Time ID | Product ID | Customer ID | Unit Sold |
---|---|---|---|
4 | 17 | 2 | 1 |
8 | 21 | 3 | 2 |
8 | 4 | 1 | 1 |
该事实表包含时间维度,产品维度,客户维度和所售度量值单位的外键。
假设一家公司向客户销售产品。每次销售都是公司内部发生的事实,事实表用于记录这些事实。
常见事实是-售出的数量,利润,销售收入等。维度表列出了我们要用来分析数据的因素,例如客户,时间,产品等。
现在,如果我们考虑上述事实表和客户维度,那么还将有一个产品和时间维度。有了这个事实表和这三个维度表,我们可以提出类似的问题:2010年有多少只手表出售给男性顾客?
维度表和事实表之间的功能差异在于,事实表保存了我们要分析的数据,维度表保存了我们查询所需的信息。
汇总表包含可以通过使用不同的汇总函数来计算的汇总数据。
聚合函数是一种函数,其中将多行的值组合在一起作为某些条件下的输入,以形成具有更重要意义或度量的单个值。
常见的聚合函数包括-
这些聚合表用于性能优化,以在数据仓库中运行复杂的查询。
您可以使用汇总数据(例如每年(1行),每季度(4行),每月(12行))保存表,现在您必须进行数据比较,例如每年仅处理1行。但是,在未聚合的表中,将处理所有行。
MIN | Returns the smallest value in a given column |
MAX | Returns the largest value in a given column |
SUM | Returns the sum of the numeric values in a given column |
AVG | Returns the average value of a given column |
COUNT | Returns the total number of values in a given column |
COUNT (*) | Returns the number of rows in a table |
从标题为“ developer”的员工中选择Avg(工资)。该语句将返回所有标题等于“开发人员”的雇员的平均工资。
可以在数据库级别应用聚合。您可以创建聚合并将其保存在数据库的聚合表中,也可以在报告级别即时应用聚合。
注-如果在数据库级别保存聚合,则可以节省时间并提供性能优化。