数据仓库原理<1>:数据库与数据仓库
updated 2015.8.27
updated 2015.8.26
updated 2015.8.23
0. 说明
《数据仓库原理》系列博文,是笔者在学习数据仓库与商业智能时的读书笔记,现重新梳理思路,分享在这里,希望读者批评指正。
本系列主要包括以下几部分内容:
[1].数据库与数据仓库
为什么有了数据库还需要数据仓库?什么又是数据仓库?
[2].数据仓库系统的体系结构
数据仓库系统的体系结构包括哪些组成要素?各自的作用又是什么?
[3].数据仓库与ODS
什么是ODS?为什么需要ODS?DB~ODS~DW三层体系结构又是什么?
[4].联机分析处理(OLAP)
OLAP是什么?OLAP与OLTP有什么区别?多维数模型有哪几种?多维分析操作又有哪些?
每部分分别作为一篇博文进行总结。
1. 引言
本篇主要讲述什么是数据仓库?数据仓库产生的背景和原因,数据仓库的定义、特征、功能。
人类对数据的管理经历人工管理、文件系统管理、数据库系统管理三个阶段,数据库管理实现了对数据的永久存储、有序组织和共享。在数据库系统管理阶段的早期,人们对数据的使用主要集中在查、删、增、改等操作,当数据积累到一定程度时,人们希望对数据进行统计、多维分析、甚至挖掘来产生更多的价值,这时候,传统的操作型数据库就无法满足这一需求,因此便产生了数据仓库。
传统的数据库与数据仓库在存放的数据特征、性能要求、应用范围、面向人员等方面均有所差别。
2. 两种数据处理模式:操作型数据处理和分析型数据处理
计算机系统中存在着两种不同的数据处理模型:操作型数据处理和分析型数据处理,又分别称为联机事务处理(Online Transaction Process,OLTP)和联机分析处理(Online Analysis Process,OLAP)。
操作型数据处理,是指对数据库联机的日常操作,主要完成数据的收集、整理、存储以及增删查改等操作,主要由一般工作人员和基层管理人员完成。
分析型数据处理,是指对数据的再加工,通常是对海量的历史数据查询和分析,从中获取信息,主要由分析人员和中高级管理人员完成。
3. 两类数据:操作型数据与分析型数据
两种数据处理模式对应着两类数据:操作型数据和分析型数据。

操作型数据处理主要应用于企业的日常事务处理工作,数据库中存放的是细节的数据,也是当前的数据,反映的是最近一次修改后的结果。对数据的操作主要是数据的增删查改。数据库中的数据是可以修改的。数据的组织以方便事务处理、提高事务处理性能为目标。
分析型数据处理主要应用于企业的管理工作,数据库中主要存放的是历史数据和综合数据。对数据的操作主要集中在查询和统计分析,需要涉及大量数据,数据的组织方式以方面查询分析为主要目标,为了提高查询效率允许存在某种程度上的数据冗余。
4. 数据库的局限性
传统的数据库在操作型数据处理上取得了巨大的成功,但是在分析型数据处理上却遇到了瓶颈。主要有以下几个原因:
(1) 数据的分散。操作型数据处理往往只需要涉及一个部门业务或者一个系统的数据,因此现在企业的数据是分散在各个操作型数据库,而分析型操作往往面向整个企业、跨部门进行。
(2) 数据不一致的问题。从各个操作型数据库中抽取数据会存在数据不一致的问题,比如同名异义、异名同义、单位不统一、字长不一致等,因此在分析操作前必须首先对这些数据进行预处理。
(3) 历史数据问题。分析型数据操作往往需要大量的历史数据,但是操作型数据库一般存放的是短期数据。
(4) 数据粒度问题。分析型数据操作往往关注的是综合性数据,但是操作型数据库中存放的是细节数据,如果在分析前对细节数据进行综合,会严重影响分析的效率。
因此,为了克服以上问题,使两种数据操作都能够有效的进行,就产生了数据仓库。
总结:数据库和数据仓库分工不同,数据库存放操作型数据,用于操作型数据处理,关注的事务处理的效率;数据仓库存放分析型数据,用于分析型数据处理,关注的是分析和查询的效率;两者功能不同、用途不同,因此结构也会不同。
5. 数据仓库的定义
“数据仓库之父” William H.Inmon在其
《Building the Data Warehouse》中这样定义数据仓库:“数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的用来更好地支持企业或组织决策分析的数据集合。”
这一定义指出了数据仓库中的数据应该具备以下4个特征:
- 面向主题的;
- 集成的;
- 不可更新的;
- 随时间不断变化的。
也指出了数据仓库的用途:面向企业决策分析。
简单地说,数据仓库就是一种面向决策主题的,从多个数据源集成数据的,拥有当前数据、细节级和综合级的历史数据的,以查询和分析为主的数据库系统,目的是支持企业决策。
6. 数据仓库数据的特征
(1)面向主题的
面向主题的数据组织方式是相对面向应用的数据组织方式而言的。
什么是面向主题的数据组织方式?
面向主题的数据组织方式就是在较高层次上对分析对象的数据的一个完整的、一致的描述,能完整、统一地刻画各个分析对象所涉及企业的各项数据,以及数据之间的联系。
企业在信息化建设时通常会按照业务类别来建立子系统,比如采购、销售、库存、人事、财务,子系统背后就是各种操作型数据库。基于这样的数据环境,如果需要对“顾客”这一对象进行相关的分析处理,就需要从各个操作型数据库中提取数据,即使能够取出来也会面临各种问题,比如数据不一致。这就是面向应用的数据组织方式,显然不能满足分析需要。
面向主题就是根据分析需要,将分析对象所涉及的数据以及数据之间的联系从企业各个方面进收集、汇聚,形成一个完整的、一致的、统一的数据集合。这里的主题就是分析对象,比如:“顾客”、“商品”、“供应商”。
面向主题的数据组织方式强调的就是要形成关于主题的一致的信息集合。
(2)集成的
由于数据仓库中的数据是按照主题组织的,因此所涉及的数据来源于各个操作型数据库、数据文件或者网络。由于数据来源不同,就可能存在不一致的情况,比如同名异义、异名同义、单位不同、字长不同,因此在进入数据仓库前就需要对数据进行清洗、转换等操作。又因为之前的数据是面向应用的,因此需要将数据从面向应用到面向主题进行转变。而数据仓库中不仅有细节数据,还需要大量的综合性数据,所以就需要对数据进行综合、计算。完成这几步后,数据才能被加载到数据仓库中。
(3)不可更新的
不可更新是指数据一旦进入到数据仓库中,就不允许修改,并且会被长期保留。
数据仓库中的数据反映的是一段相当长时间内的历史数据,一般会按照一定的周期(月、日)进行加载和刷新。
(4)随时间不断变化的
数据仓库会随着时间的变化不断增加新的数据。因为数据仓库中的数据是来源于操作型数据库等数据源的历史数据和综合性数据,所以就需要定期的去捕捉这些数据源中的新数据,将其加载到数据仓库中。
数据仓库中的数据会有一定的存储期限,当超过这个期限后,数据就会被删除掉。
数据仓库中有大量的综合数据,而很多数据是按照时间进行组织的,比如月记录、日记录,所以就需要按照这一时间周期定期的加载新数据。
7. 数据仓库的功能
数据仓库是一种数据存储,将不同来源的异构数据进行清洗、转换、加工,集成并存储起来,支持分析查询需求,从而为企业决策提供支持。
8. 参考文献
[1] 数据仓库(原书第4版),William H.Inmon著,王志海等译,机械工业出版社,2006.8
[2] 数据仓库与数据分析教程,王珊等编著,高等教育出版社,2012.8
数据仓库原理<1>:数据库与数据仓库的更多相关文章
- 数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别
什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它出于分析性报告和决策支持目的而创建. ...
- 【clickhouse专栏】数据库、数据仓库之间的区别与联系
从本篇文章开始,笔者打算写一个系列的<clickhouse专栏>,其全称是Click Stream,Data WareHouse,简称ClickHouse.从其全称中的"Data ...
- Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx 1.1. 数据库的类型,网状,层次,树形数据库,kv数据库.oodb2 1.2. Er模型2 1.3. Sql2 ...
- 数据仓库原理<2>:数据仓库系统的体系结构
1. 引言 本篇主要讲述数据仓库系统的体系结构与组成要素.数据集市与数据仓库之间的关系.元数据的定义与作用. 在上一篇,笔者介绍了数据仓库的定义: "数据仓库是一个面向主题的.集成的.不可更 ...
- 十一、Hadoop学习笔记————数据库与数据仓库
数据仓库是集成的面向主题的数据库的集合 面向主题主要是宏观上解决某一类问题,集合性指数据集 数据库主要处理用于事务处理,数据仓库用于分析处理,数据库适用于操作型数据,便于增删改查, 数据仓库则用于挖掘 ...
- 数据仓库原理<4>:联机分析处理(OLAP)
本文转载自:http://www.cnblogs.com/hbsygfz/p/4762085.html 1. 引言 本篇主要介绍数据仓库中的一项重要分析技术——联系分析处理(OLAP). 在第一篇笔者 ...
- 数据仓库原理<3>:数据仓库与ODS
1. 引言 本篇主要讲述操作数据存储(ODS)系统产生的背景.定义.特点,以及它与数据仓库的区别. 在前两篇,笔者介绍了什么是数据仓库?为什么需要数据仓库?数据仓库系统的体系结构是什么?因此可能在读者 ...
- 数据库与数据仓库的比较Hbase——Hive
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented).集成的(Integrate).相对稳定的(Non-Volatile).反映历史变化(Time Varian ...
- HIVE---基于Hadoop的数据仓库工具讲解
Hadoop: Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用来开发分布式程序.充分利用集群的威力进行高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Dist ...
随机推荐
- iOS文件存储路径规定
Storing Your App’s Data Efficiently https://developer.apple.com/icloud/documentation/data-storage/in ...
- Delphi10 安装Graphics32
一.下载Graphics安装包 官网:www.graphics32.org 下载地址:http://sourceforge.net/projects/graphics32/files/graphics ...
- C++ Set
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值:另外,还 ...
- SNMP协议
SNMP(Simple Network Management Protocol,SNMP)简单网络管理协议,其定义了传送管理信息的协议消息格式及管理站和设备代理相互之间进行消息传送的规程 ...
- JS匿名函数的理解
js匿名函数的代码如下:(function(){ // 这里忽略jQuery 所有实现 })(); 半年前初次接触jQuery 的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的 ...
- Java锁之自旋锁详解
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类 ...
- windows和linux下mysql的重启命令
在 Windows 下: 开始->运行->cmd启动:net start mysql停止:net stop mysql 无重启,必须先停止再启动!!! 在LINUX 下: 启动:/etc/ ...
- php 301
2013年7月1日 13:35:45 PHP在301跳转的时候,如果是跨域跳转,记着把要跳转到的URL添上"http://"
- C#模拟百度登录
目录: 1.fiddler解析百度登录地址 2.处理传入参数 1.fiddler解析百度登录地址 因工作需要,所以研究了下百度的登陆.首先打开https://passport.baidu.com/v2 ...
- hdu 1113 Word Amalgamation 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1113 题意:输入一个字典,然后再输入若干单词(每行中,1 <= 单词数 <= 100,并且 ...