`
yugouai
  • 浏览: 497584 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据仓库-多维数据模型

 
阅读更多

一、维表、事实表

(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

 

  • 大小: 34.5 KB
  • 大小: 42.1 KB
  • 大小: 51.8 KB
分享到:
评论

相关推荐

    和用PowerDesigner建立数据仓库多维模型的研究

    ### 和用PowerDesigner建立数据仓库多维模型的研究 #### 摘要与关键词解析 本文主要探讨了如何使用PowerDesigner工具来构建数据仓库中的多维模型,并对其在“学生成绩分析”系统中的具体应用进行了深入分析。...

    数据仓库与多维模型设计

    数据仓库作为多维数据集的数据基础,其结构的设计直接影响了多维数据模型的设计和实现难度。良好的数据仓库设计能够有效地支持复杂的查询需求,同时降低维护成本。 #### 设计数据仓库 设计数据仓库时,需要遵循一...

    数据仓库与数据挖掘-实验报告 数据仓库的设计、实现及多维分析 共14页.pdf

    本实验报告主要探讨了数据仓库的设计、实现及多维分析,涉及到的关键概念包括数据仓库、多维数据模型、ETL过程、SQL Server Analysis Manager、度量值以及Apriori算法。 数据仓库是用于业务智能的核心组件,它是一...

    数据仓库---初学者使用

    - OLAP(在线分析处理):用于快速多维数据分析,常见的有ROLAP(关系型OLAP)、MOLAP(多维OLAP)和HOLAP(混合OLAP)。 - BI工具:如Tableau、Power BI、QlikView等,提供直观的报表和仪表板,方便用户交互式...

    Analysis Services实验教程-多维建模教程

    - 所创建的多维数据集数据库是AdventureWorks多维模型项目的简化版本,可用作学习SSAS多维建模的起点。 - 教程结束时鼓励用户探索完整的AdventureWorks多维模型项目,以进一步提高分析服务的多维建模技能。 通过...

    数据仓库--设计数据库

    数据仓库是一种特殊设计的数据库系统,其主要目的是为了支持决策制定和数据分析。它与传统的在线事务处理(OLTP)系统不同,数据仓库更注重历史数据的存储和分析,而非实时的事务操作。在这个主题中,我们将深入探讨...

    利用PowerDesigner建立数据仓库多维模型的研究

    ### 利用PowerDesigner建立数据仓库多维模型的研究 数据仓库技术自20世纪90年代初被提出以来,已经成为企业信息化建设中的一个重要组成部分。随着数据仓库技术的发展和完善,其在商业智能领域的应用也越来越广泛。...

    数据仓库的多维分析展现技术研究与应用--毕业设计论文.doc

    数据仓库的多维分析展现技术的研究方向包括数据模型的设计、数据挖掘技术、数据可视化技术等。这些技术的研究可以帮助企业更好地实现数据仓库的多维分析展现技术。 知识点5:数据仓库的多维分析展现技术的实现方法 ...

    数据仓库和多维建模.pdf

    - **数据仓库与多维模型的关系**:数据仓库作为数据基础,多维模型则是为了提供更好的分析视角和性能优化。 - **设计原则**: - **架构选择**:优先使用星型架构,适当使用雪花架构来减少冗余。 - **维度表设计**...

    数据仓库多维数据模型的设计.docx

    多维数据模型是数据仓库设计中的核心组成部分,它提供了一种结构化的框架,使得用户能够从不同角度快速、有效地分析大量数据。 1. **数据仓库基本概念**: - **主题(Subject)**:主题是数据仓库设计的核心,它...

    多维数据库和空间多维数据的数学模型与人工智能.pdf

    在传统多维数据模型中引入空间特性,可以构造出空间多维数据模型和空间立方体。这样的数据模型通过数学公式表示各种多维数据库及空间多维数据结构拓扑图,能够进行计算求解和分析证明。通过建立数学模型,可以生成新...

    数据仓库-数据建模过程

    Cube是一种多维数据集合,可以快速地支持复杂的查询和分析。通过预先计算好的汇总数据,Cube能够在极短的时间内返回结果。在设计Cube时,需要考虑数据的维度和度量值,并定义适当的层级结构以支持不同级别的汇总。...

    数据仓库多维数据模型的设计.doc

    数据仓库多维数据模型的设计 数据仓库多维数据模型的设计是数据仓库设计的核心部分,涉及到数据仓库的多维设计、主题、维度、粒度、量度、事实表和维表、星形/雪花形/事实星座等概念。 主题是数据仓库多维数据模型...

    多维数据库和空间多维数据的数学模型与人工智能 (1).pdf

    通过这样的数学模型,空间数据被放置在一个空间立方体中,这样就能够表示多维数据的空间逻辑结构,并且借助于空间多维数据模型,可以衍生出多种新的数学模型,简化多维数据的逻辑关系,使其更实用和安全。...

    行业文档-设计装置-多维指针信息平台.zip

    多维数据模型是数据分析的核心,它以“立方体”或“星型模式”的形式组织数据,将数据按照不同的维度进行分类。例如,时间、地点、产品类别等都是常见的维度。这种模型有利于快速查询和分析大量复杂信息,尤其适合于...

    BQ培训-5多维分析.pdf

    - 星形模型是最常见的数据仓库架构,其中事实表居中,周围环绕着多个维度表。 - 雪花模型是星形模型的扩展,维度表进一步分解为子维度表,形成更复杂的树状结构。 5. **BQ平台多维分析**: - BQ平台提供了多维...

Global site tag (gtag.js) - Google Analytics