一、维表、事实表
(1)维是透视或关于一个组织想要记录的实体,描述试题的元信息。如:item:item 的维表可以包含属性item_name, branch, 和type。维表可以由用户或专家设定,或者根据数据分布自动产生和调整(即从事实表中抽取维度表)
(2)事实是数值度量的。如:事实表sales包括dollars_sold, units_sold 和amount_budgeted,也可以说是指标值。事实表包括事实的名称或度量,以及每个相关维表的关键字(索引)
二、星型、雪花型与事实星座:多维数据库模式
(1)星型:一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余。
(2)雪花型:雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表,通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。
(3)事实星座:又称星系模式,复杂的应用可能需要多个事实表共享维表。这种模式可以看作星形模式集。
三、数据挖掘查询语言:DMQL
(1)数据仓库和数据集市可以使用两种原语定义:一种是方定义,一种是维定义。方定义语句具有
如下语法形式:
define cube <cube_name> [<dimension_list>] : <measure_list>
(2)维定义语句具有如下语法形式:
define dimension <dimension_name> as (<attribute_or_subdimension_list>)
例子说明:
(1)图一定义的星形模式用DMQL 定义如下:
define cube sales_star [time, item, branch, location]:
dollars_sold = sum(sales_in_dollars), units_sold = count(*)
define dimension time as (time_key, day, day_of_week, month, quarter, year)
define dimension item as (item_key, item_name, brand, type, supplier_type)
define dimension branch as (branch_key, branch_name, branch_type)
define dimension location as (location_key, street, city, province_or_state, country)
define cube 语句定义一个方,叫做sales_star,它对应于例2.1 的中心表sales 事实表。该命令
说明维表的关键字和两个度量,dollars_sold 和units_sold。数据方具有四个维,分别为time, item,
branch 和location。一个define dimension 语句定义一个维。
(2)图2定义的雪花模式用DMQL 定义如下:
define cube sales_snowflake [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier(supplier_key, supplier_type)) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city(city_key, city, province_or_state, country))
在sales_snowflake 数据方中,sales_star 数据方的item 维被规范化成两个维表,item 和supplier。注意:
supplier 的维定义在item 的定义中说明。用这种方式定义supplier,隐式地在item 的定义中创建了
一个supplier_key。类似地,在sales_snowflake 数据方中,sales_star 数据方的location 维被规范化成
两个维表,location 和city。city 的维定义在location 的定义中说明。用这种方式,city_key 在location
的定义中隐式地创建。
(3)图3定义的星座模式用DMQL 定义如下:
define cube sales [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country) define cube shipping [time, item, shipper, from_location, to_location]: dollars_sold = sum(cost_in_dollars), units_sipped = 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 location in cube sales define dimension to_location as location in cube sales
define cube 语句用于定义数据方sales 和shipping,分别对应于图3 模式的两个事实表。注意,
数据方sales 的time, item 和location 维可以与数据方shpping 共享。例如,time 维,在定义数据方
shipping 语句之下,用“define dimension time as time in cube sales”说明。
四、度量:分类与计算
(1)分布的:
一个聚集函数是分布的,如果它能以如下分布方式进行计算:设数据被划分为n 个集合,函数在每一部分上的计算得到一个聚集值。如果将函数用于n 个聚集值得到的结果,与将函数用于所有数据得到的结果一样,则该函数可以用分布方式计算。例如,count()可以这样计算:首先将数据方分割成子方的集合,对每个子方计算count(),然后对这些子方得到的计数求和。因此,count()是分布聚集函数。同理,sum(), min()和max()是分布聚集函数。一个度量是分布的,如果它可以用分布聚集函数得到。
(2)代数的
一个聚集函数是代数的,如果它能够由一个具有M(其中,M 是一个整数界)个参数的代数函数计算,而每个参数都可以用一个分布聚集函数求得。例如,avg()可以由sum()/count()计算,其中sum()和count()是分布聚集函数。类似地,可以表明min_N(), max_N()和standard_deviation()是代数聚集函数。一个度量是代数的,如果它可以用代数聚集函数得到。
(3)整体的
一个聚集函数是整体的,如果描述它的子聚集所需的存储没有一个常数界。即,不存在一个具有M个(其中,M是常数)参数的代数函数进行这一计算。整体函数的常见例子包括median(),mode()(即,最常出现的项),和rank()。一个度量是整体的,如果它可以用整体聚集函数得到。
五、DMQL翻译
设关系数据库模式如下:
time(time_key, day, day_of_week, month, quarter, year) item(item_key, item_name, branch, type) branch(branch_key, branch_name, branch_type) location(location_key, street, city, province_or_state, country) sales(time_key, item_key, branch_key, location_key, number_of_units_sold, price)
例1中DMQL 说明被翻译成如下SQL 查询,这些查询产生所需要的sales_star 数据方。这里,聚集函数sum 用于计算dollars_sold 和units_sold:
select s.time_key, s.item_key, s.branch_key, s.location_key, sum(s.number_of_units_sold*s.price), sum(s.number_of units_sold) from time t, item i, branch b, location l, sales s where s.time_key=t.time_key and s.item_key=i.item_key and s.branch_key=b.branch_key and s.location_key=l.location_key group by s.time_key,s.item_key,s.branch_key,s.location_key
相关推荐
数据仓库多维数据模型的设计.docx数据仓库多维数据模型的设计.docx数据仓库多维数据模型的设计.docx数据仓库多维数据模型的设计.docx数据仓库多维数据模型的设计.docx数据仓库多维数据模型的设计.docx数据仓库多维...
和用PowerDesigner建立数据仓库多维模型的研究
数据仓库多维数据模型的设计.doc
介绍了利用PowerDesigner建立数据仓库多维模型
数据仓库多维数据模型的设计说明.doc
建设数据模型既然是整个数据仓库建设中一个非常重要的关键部分,那么,怎么建设我们的数据仓库模型就是我们需要解决的一个问题。这里我们将要详细介绍如何创建适合自己的数据模型。大千世界,表面看五彩缤纷,实质上...
为⽀持统⼀的指标运算,⼀些数据仓库也建⽴了统⼀计算层,统⼀对于基于数据仓库上的各类指标进⾏统⼀计算,并提供给各集市进 ⾏展⽰ 为⽀持数据分析与挖掘应⽤,⼀些数据仓库⽣成⾯向客户、⾯向产品、⾯向员⼯的宽...
模型构架 尽量使用星型架构,使用雪花架构的目的是使事实表第一级的维表数量达到最小。
数据仓库多维数据库模型PPT学习教案.pptx
5.20 多维DBMS和数据仓库 104 5.21 双重粒度级 109 5.22 数据仓库环境中的元数据 109 5.23 上下文和内容 111 5.24 上下文信息的三种类型 111 5.25 捕获和管理上下文信息 113 5.26 刷新数据仓库 113 5.27 小结 114 第...
5.20 多维DBMS和数据仓库 104 5.21 双重粒度级 109 5.22 数据仓库环境中的元数据 109 5.23 上下文和内容 111 5.24 上下文信息的三种类型 111 5.25 捕获和管理上下文信息 113 5.26 刷新数据仓库 113 5.27 小结 114 第...
5.20 多维DBMS和数据仓库 104 5.21 双重粒度级 109 5.22 数据仓库环境中的元数据 109 5.23 上下文和内容 111 5.24 上下文信息的三种类型 111 5.25 捕获和管理上下文信息 113 5.26 刷新数据仓库 113 5.27 小结 114 第...
5.20 多维DBMS和数据仓库 104 5.21 双重粒度级 109 5.22 数据仓库环境中的元数据 109 5.23 上下文和内容 111 5.24 上下文信息的三种类型 111 5.25 捕获和管理上下文信息 113 5.26 刷新数据仓库 113 ...
EDW_(DM数据仓库数据建模)模型设计 关于bi工具选型的参考依据 商务智能技术在银行业务中基于数据仓库的研究与实现 数据仓库_历史与现在发展状况 数据仓库分析系统整体设计方案 数据仓库基本操作 数据仓库设计 数据...
构建数据仓库模型,他包括两部分,一是要考虑原来的数据源能够提供哪些有用的数 据,也就是经过数据的筛选之后能够为数据仓库所用。二是要看公司业务层需要什么样的分析结果。这要和公司的高级决策层紧密配合,完全...
5.20 多维DBMS和数据仓库 104 5.21 双重粒度级 109 5.22 数据仓库环境中的元数据 109 5.23 上下文和内容 111 5.24 上下文信息的三种类型 111 5.25 捕获和管理上下文信息 113 5.26 刷新数据仓库 113 5.27 小结 114 第...
数据仓库是多维数据库,它扩展了关系数据库模型,以星型架构为主要结构方式的,并在它的基础上,扩展出理论雪花形架构和数据星座等方式,但是不管是哪一种架构,维度表、事实表和事实表中的度量都是必不可少的组成...