细说数据仓库与数据库的区别


一.数据仓库

1.数据仓库是什么?

DataWarehouse可以简化为DW或DWH,它为企业各级决策制定计划流程,提供各种类型数据的策略集合。创建该系统以分析报告和决策支持为目的。要求商业智慧、需要指导业务流程改善的企业.监测时间.成本.质量与控制;

2.数据仓库可以做什么?

(1)年度销售指标应根据以往的历史报告作出决定,不可随意制定。

(2)优化业务程序。

例如某个电商平台的某个品牌手机,在过去五年中主要买主是多少,该季节买主多,可根据这一特点为目标人群设置主需求及动态分配的产量及库存量。

3.数据仓库的特征。

(1)面向主题的数据仓库。

不像传统数据库,数据仓库是面向主题的,主题是什么?首页主题是一种较高级的概念,是企业信息系统中数据综合、分类与分析的对象。在逻辑学中,他是企业宏观分析的对象。(说人话:用户使用数据仓库进行决策时,至关重要。话题通常涉及多个运作信息系统,而运作数据库的数据组织则是面向事务处理的任务,并且每项任务彼此隔离);

(2)整合数据仓库。

对数据仓库数据进行原始分散化数据库(mysql等关系型数据库)的数据提取。运作数据库与分析数据库DSS(DSS)有很大的不同。第一,数据仓库每一个主题所对应的源数据在整个分散的数据库中存在很多重复和差异,不同联机系统的数据是捆绑在一起的;第二,数据仓库中的综合数据无法从原始数据库系统直接获取。所以,在数据进入数据仓库前,必须进行统一和综合。这个步骤是建立数据仓库中最关键的.最复杂的步骤。有待完成的工作有:

1.对来源资料中的一切矛盾进行统计,例如名称相同、异名相同、单位不统一、字长不统一等。

集成计算数据。但是,很多数据仓库都是由数据仓库产生的,但是很多都是由数据仓库产生的,进入数据仓库之后,会被综合生成。

资料仓库中的数据会随时间改变。

数据仓库中的数据不可更新的问题只适用于数据仓库中的用户,即不更新数据。但是这并不意味着所有数据仓库数据从数据集成到数据仓库到最后删除的生命周期都不会改变。

数据仓库的数据是随着时间变化而变化的,这是数据仓库的特征之一。这一特征主要有以下三个表现:

  • 数据仓库随着时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉OLTP数据库中变化的数据,追加到数据仓库当中去,也就是要不断的生成OLTP数据库的快照,经统一集成增加到数据仓库中去;但对于确实不在变化的数据库快照,如果捕捉到新的变化数据,则只生成一个新的数据库快照增加进去,而不会对原有的数据库快照进行修改。
  • 数据库随着时间变化不断删去旧的数据内容 。数据仓库内的数据也有存储期限,一旦过了这一期限,过期数据就要被删除。只是数据库内的数据时限要远远的长于操作型环境中的数据时限。在操作型环境中一般只保存有60~90天的数据,而在数据仓库中则要需要保存较长时限的数据(例如:5~10年),以适应DSS进行趋势分析的要求。
  • 数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。这些数据要随着时间的变化不断地进行重新综合。因此数据仓库的数据特征都包含时间项,以标明数据的历史时期。 数据仓库的数据是不可修改的。

数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合, 以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据进过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。因为数据仓库只进行数据查询操作,所以数据仓库当中的系统要比数据库中的系统要简单的多。数据库管理系统中许多技术难点,如完整性保护、并发控制等等,在数据仓库的管理中几乎可以省去。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,他要求采用各种复杂的索引技术;同时数据仓库面向的是商业企业的高层管理层,他们会对数据查询的界面友好性和数据表示提出更高的要求; 

二、数据仓库与数据库的区别

想了解区别之前,我们需要了解三个概念,数据库软件、数据库和数据仓库是什么?

1. 数据库软件:是一种软件(并不是链接数据库的图形化客户端)。用来实现数据库逻辑过程,属于物理层。

2. 数据库:是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。数据库由很多表组成,表是二维的,一张表里面有很多字段。字段一字排开,对数据就一行一行的写入表中。数据库的表,在于能够用二维表现多维的关系。如:oracle、DB2、MySQL、Sybase、MSSQL Server等。

3. 数据仓库:是数据库概念的升级。从逻辑上理解,数据库与数据仓库是没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大的多。数据仓库主要用于数据挖掘和数据分析,辅助领导做决策;

在IT的架构体系中,数据库是必须存在的,必须要有地方存数据。比如现在的网购等电商。物品的存货多少,货品的价格,用户的账户余额之类的。这些数据都是存放在后台数据库中。或者最简单的理解,我们现在的微信、微博和QQ等账户和密码。在后台数据库必须是一个user表,字段起码有两个码,即用户名和密码,然后我们的数据就一行一行的存在表上面。当我们登录的时候,我们填写了用户名和密码,这些数据就会回传到后台去,去跟表上面的数据匹配,匹配成功了,就能登录。匹配不成功就会报错,这就是数据库,数据库在生产环境就是用来干活的。凡是跟业务有关应用挂钩的,我们都使用数据库。

数据仓库是BI下的其中一种技术。由于数据库跟业务应用挂钩的,所以一个数据库不可能装下一家公司的所有数据。数据库的表设计往往是针对某一个应用进行设计的。比如刚刚的登录功能,这张user表上就只有这两个字段,没有别的字段了。到那时这张表符合应该,没有问题,但是这张表不符合分析。比如我想知道在哪个时间段,用户的量最多?哪个用户一年购物最多?诸如此类的指标。那就要从新设计数据库的表结构了。对于数据分析和数据挖掘,我们引入了数据仓库概念。数据仓库的表结构是依照分析需求,分析维度,分析指标进行设计的。

数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别。

(1) 操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发的支持用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。

(2) 分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing)一般面向主题历史数据进行分析,支持管理决策。