数据挖掘学习笔记 多维数据模型-数据立方体

多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing)。

其中,每个维对应于模式中的一个或一组属性,而每个单元存放某种聚集度量值,如count或sum。数据立方体提供数据的多维视图,并允许预计算和快速访问汇总数据。

《数据挖掘:概念与技术》中例举如下模型

数据立方体允许以多维数据建模和观察。它由维和事实定义。
维是关于一个组织想要记录的视角或观点。每个维都有一个表与之相关联,称为维表。
事实表包括事实的名称或度量以及每个相关维表的关键字。

在数据仓库的研究文献中,一个n维的数据的立方体叫做基本方体。给定一个维的集合,我们可以构造一个方体的格,每个都在不同的汇总级或不同的数据子集显示数据,方体的格称为数据立方体。0维方体存放最高层的汇总,称为顶点方体;而存放最底层汇总的方体称为基本方体。

数据仓库的概念模型
最流行的数据仓库概念是多维数据模型。这种模型可以以星型模式,雪花模式,或事实星座模式的形式存在。

1.星型模式(Star schema):事实表在中心,周围围绕地连接着维表(每维一个),事实表包含有大量数据,没有冗余。

2.雪花模式(Snowflake schema):是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加表中。结果,模式图形成类似雪花的形状。

雪花模型相较于星座模型,是把维表进行了规范化。

事实星座(Fact constellations):多个事实表共享维表,这种模式可以看作星座模式集,因此称作星系模式(galaxy schema),或者事实星座(fact constellation)

事实星座模式是把事实间共享的维进行合并。

对概念进行分层,有利于数据的汇总。

多维数据模型上的OLAP操作
上卷(roll-up):汇总数据
  通过一个维的概念分层向上攀升或者通过维规约

下钻(drill-down):上卷的逆操作
  由不太详细的数据到更详细的数据,可以通过沿维的概念分层向下或引入新的维来实现

上卷和下钻如图1所示。

切片和切块(slice and dice)
  投影和选择操作

转轴(pivot)
  立方体的重定位,可视化,或将一个3维立方体转化为一个2维平面序列

其他OLAP操作
  钻过(drill_across):执行涉及多个事实表的查询
  钻透(drill_through):使用关系SQL机制,钻到数据立方体的底层,到后端关系表

参考:

《数据挖掘:概念与技术》

《王灿-数据挖掘视频教程》

《数据仓库的多维数据模型》:http://webdataanalysis.net/web-data-warehouse/multidimensional-data-model/

时间: 2024-11-10 00:58:27

数据挖掘学习笔记 多维数据模型-数据立方体的相关文章

Python学习笔记_Chapter 6定制数据对象

1. 有用的BIF a. 判断字符串中是否包含子字符串 1 if s_a in s_b: b. pop() 描述:从指定的列表位置删除并返回一个数据项. 1 (sarah_name,sarah_dob)=l_rah.pop(0),l_rah.pop(0) 2 #pop(0)中0位置为list中第一个数据项 3 #第一次执行pop赋值给sarah_name c. strip() 输入的是字符串,返回的是列表 d.open 读文件时可以多种方式打开文件,取出的数据是不同的,可以是文本也可以是二进制.

Sharepoint2013搜索学习笔记之设置业务数据内容源(六)

Sharepoint搜索爬网组件支持爬Business Data Connectivity Service 承载的外部数据,关于Business Data Connectivity Service设置外部数据源,详请请参考:如何:在 SharePoint 2013 中为 SQL Server 创建外部内容类型,爬网设置步骤如下: 第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类

Python学习笔记_Chapter 5处理数据

1. 方法串链(method chaining).函数串链 1 import os 2 os.chdir('C:\\Users\\hwx222865\\Documents\\Pyton_lib') 3 with open('james.txt') as data: 4 s_line=data.readline() 5 james=s_line.strip().split(',') #方法串链 6 print(sorted(james_s))#函数串链 BulletPoint: 1. split(

数据挖掘学习笔记一:引论

数据挖掘(又称从数据中发现知识,KDD) 例1.1 数据挖掘把大型数据集转换成知识.Google的Flu Trends(流感趋势)使用特殊的搜索项作为流感活动的指示器.它发现了搜索流感相关信息的人数与实际具有流感症状的人数之间的紧密联系.当与流感相关的所有搜索都聚集在一起时,一个模式就出现了.使用聚集的搜索数据,Google的Flu Trends可以比传统的系统早两周对流感活动作出评估. 数据挖掘 == 数据中的知识发现.只是发现的过程由一下步骤的迭代序列组成: 数据清理(消除噪声和删除不一致数

MyCat 学习笔记 第十篇.数据分片 之 ER分片

1 应用场景 这篇来说下mycat中自带的er关系分片,所谓er关系分片即可以理解为有关联关系表之间数据分片.类似于订单主表与订单详情表间的分片存储规则. 本文所说的er分片分为两种: a. 依据主键进行数据分片,验证发现主表数据保存在第1个datanode中,子表数据根据分片规则存储. b. 依据分片关键字段进行分片,验证发现主表与子表根据分片规则存储,且保存在相同的分片内. 接下来,可以下实际配置与数据验证 2 环境说明 参考  <MyCat 学习笔记>第六篇.数据分片 之 按月数据分片 

【Spring学习笔记-MVC-9】SpringMVC数据格式化之日期转换@DateTimeFormat

作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC-8]SpringMVC之类型转换Converter>(对应链接: http://www.cnblogs.com/ssslinppp/p/4598102.html ) 中讲解了Spring MVC的类型转换,在此回顾下. 数据格式化,从本质上讲属于数据转换的范畴.Spring就是基于数据转换框架植入&q

西门子PLC学习笔记十五-(数据块及数据访问方式)

一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的. 数据块分共享数据块.背景数据块.用户自定义数据块,下面分别介绍. 1.共享数据块(全局数据块) 其用于存储全局数据,所有逻辑块(OB.FC.FB)都可以访问共享数据块中的数据. 2.背景数据块(私有存储区) 其用做功能块(FB)的"存储器".FB的参数和静态变量安排在它的背景数据块中.

Cocos2d-x学习笔记(十三)—— 数据解析(json/xml)

在我们获取网络数据时,基本上使用的都是xml以及json,因此学习对这两种数据进行解析,对我们有很大的帮助. 下面是代码: HelloParse.h: <span style="font-size:18px;">#ifndef __HELLOPARSE_H__ #define __HELLOPARSE_H__ #include "cocos2d.h" using namespace cocos2d; class HelloParse : public c

Mysql DBA 高级运维学习笔记-删除表中数据

9.11 删除表中数据 命令语法:delete from 表名 where 表达式 实践: (1)删除表student中编号为3的记录 mysql> use zbf Database changed mysql> select * from student; +----+-----------+-----+--------+ | id | name | age | dept | +----+-----------+-----+--------+ | 1 | zbf666| 29 | linux