数据立方体:
数据仓库和数据仓库技术基于多维数据模型。这个模型把数据看成数据立方体形式。多维数据模型围绕中心主题组织,该主题是事实表表示。事实是数值度量的。
数据立方体允许以多维数据建模和观察。他是维和事实定义的。
维是关于一个组织想要记录的视角或观点。每个维都有一个表与之相关联,称为维表。
事实表包括事实的名称或度量以及每个相关维表的关键字。
一个n维数据的立方体叫做基本方格。给定一个维的集合,我们可以构造一个方格的格,每个都在不同的汇总级或不同的数据子集显示数据,方格称为数据立方体。
数据仓库的概念模型:
多维数据模型是数据仓库的概念模型。
星型(star schema):事实表在中心,周围围绕地连接着维表,事实表含有大量数据,没有冗余。
雪花模式(snowflake schema):是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加表中。结果,模式图形成类似于雪花的形状。
事实星座(fact constellation):多个事实表共享维表,这个模式可以看成星型模式集,因此称为星系模式(galaxy schema),或者事实星座(factc onstellation)。
DMQL包括数据仓库和数据集市的语言原语,包括两种原语定义:
立方体定义(事实表)
define cube<cube_name>[<dimension_list>]:<measure_list>
维定义(维表)
define dimension <dimension_name> as
(attribute_or_subdimension_list)
特殊案例(共享维表定义)
第一次作为维表定义”cube definition“
然后 : define dimension <dimension_name> as
<dimension_name_first_time> in cube
<cube_name_first_time>
使用DMQL定义星型模式:
第一次定义:
define cube sales_star[time,item,branch,location]:
dollars_sold = sum( sales_in_dollars ), avg_sales = avg( sales_in_dolars ), units_sold = count(*)
define dimension time as (time_key,day,day_of_week,month,quarter,year)
define dimension itme as( item_key, item_name, brand, type, supplier_type )
define dimension branch as(location_key,branch_name, branch_type)
define dimension location as (location_key,street , city , province_or_state,contry)
第二次定义是可以引用第一次定义的cube
define cube shipping [time ,item, shipper, from_location,to_location]:
dollar_cost = sum( cost_in_dollars ),unit_shipped = count(*)
define dimension time as time in cube sales
define dimension item as item in cube sales
define dimension shipper as (shipper_key,shipper_name,location as location in cube sales, shipper_type)
define dimension from_location as locaton in cube sales
deine dimension to_loacation as location in cuve sales
度量分类:
数据立方体的度量是一个数值函数,该函数可以对数据立方体的每个点求值。
分布式(distributive):将函数用于n个聚集值得到的结果和将函数用于所有数据得到的结果一样。
如:count() , sum() , min () , max() 等
代数(algebraic):函数可由一个带M个参数的代数函数计算(M为有界整数),而每个参数数值可以有一个分布的聚集函数求得
如: avg() , min_N() , standard_deviation()
整体的(holistic): 描述函数子聚集所需的存储没有一常数界
如: median() , mode() , rank()
概念分层:location 维的一个概念分层
all
|
region
|
country
|
city
|
office
多维数据模型上的OLAP操作::
上卷(roll_up) : 汇总数据
通过一个维的概念分层向上攀升或通过维归约
下钻(drill_down): 上卷逆操作
由不太详细的数据到更详细的数据,可以通过沿维的概念分层向下或引人新的维实现
切片(slice and dice)
投影和选择操作
转轴(pivot)
立方体的重定位,可视化,或将一个3维立方体转化为一个2维平面序列
其他OLAP操作
钻过(drill_across):执行涉及多个事实表的查询
钻透(drill_through): 使用关系SQL机制,钻到数据立方体的底层,到后端关系表
数据仓库的体系结构:
数据仓库设计:商务分析框架::商务技巧、技术技巧、程序管理技巧
数据参考设计:
*自定而下视图:允许选择数据仓库所需相关信息
*数据源视图:揭示被操作数据库系统所捕获、存储和管理的信息
*数据仓库视图:有事实表和维表组成
*商务查询视图:从最终用户视角透视数据仓库的数据
数据设计过程:
*自顶向下法、自底向上或两者混合方法:
自顶向下有总体设计和规划开始(成熟)
自底向上以实验和原型分析(快速)
选取商务过程、选取商务过程粒度、选取每个设计事务表的维
数据源==> 数据仓库服务器==>OLAP服务器==>前端工具
DBs Data warehouse OLAP server Analysis,Query,Reports, Data Mining
三种数据仓库模型
企业仓库:搜集了跨越整个组织的主题的所有数据
数据集市:企业范围数据的一个子集,对于特定的客户是有用的。其范围限定于选定的主题
虚拟仓库:操作数据库上的一系列视图;只有一些可能汇总视图被物化(对数据视图汇总了存储在一些表格中)
OLAP服务器类型:
关系OLAP服务器(ROLAP):
*使用关系数据库或扩展的关系数据库存放并管理数据仓库的数据,而用OLAP中间件支持其余部分
*包括每个DBMS后端优化,聚集导航逻辑的实现,附加的工具和服务
*较大的可扩展性
多维OLAP服务器(MOLAP)
*基于数组的多维存储引擎(稀疏矩阵技术)
*能对预计算的汇总数据快速索引
混合OLAP服务器(HOLAP):结合上述两种技术,更大的使用灵活性
特殊的SQL服务器:在星型和雪花型上支持SQL查询