数据库是面向事务的设计,数据仓库是面向主题设计的。数据库通常存储在线交易数据,数据仓库存储的通常是历史数据。
数据库设计是尽可能避免冗余,通常采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。(维是看问题的角度,好比时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID) 数据库
数据仓库,是在数据库已经大量存在的状况下,为了进一步挖掘数据资源、为了决策须要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不一样呢?让咱们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。 数据库设计
“面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工做,是按照主题存储的。这一点,相似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,若是它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。
“与时间相关”:数据库保存信息的时候,并不强调必定有时间信息。数据仓库则不一样,出于决策的须要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。一样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不一样的。
“不可修改”:数据仓库中的数据并非最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并非不少数据库处理的那种平常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。所以,数据仓库中的数据是极少或根本不修改的;固然,向数据仓库添加数据是容许的。
数据仓库的出现,并非要取代数据库。目前,大部分数据仓库仍是用关系数据库管理系统来管理的。能够说,数据库、数据仓库相辅相成、各有千秋。设计
概况的说,数据仓库与数据库的主要区别在于:
(1)数据库是面向事务的设计,数据仓库是面向主题设计的。
(2)数据库通常存储在线交易数据,数据仓库存储的通常是历史数据。
(3)数据库设计是尽可能避免冗余,数据仓库在设计是有意引入冗余。
(4)数据库是为捕获数据而设计,数据仓库是为分析数据而设计。
事务