数据库是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。
数据仓库是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,从数据量来说,数据仓库要比数据库更庞大的多。数据仓库主要用于数据挖掘和数据分析,辅助做决策。
数据库 Database (Oracle, Mysql, PostgreSQL)主要用于事务处理,数据仓库 Datawarehouse (Amazon Redshift, Hive)主要用于数据分析。用途上的不同决定了这两种架构的特点不同。
各自特点
数据库(Database)的特点是:相对复杂的表格结构,存储结构相对紧致,少冗余数据。读和写都有优化。相对简单的read/write query,单次作用于相对的少量数据。
数据仓库(Datawarehouse)的特点是:相对简单的(Denormalized)表格结构,存储结构相对松散,多冗余数据。一般只是读优化。相对复杂的read query,单次作用于相对大量的数据(历史数据)。
用图书表格系统举例子。如果是数据库储存的话,表单的设计如下:
这里有六张表,分别记录了作者,图书,图书种类,发行商以及他们之间的关系。
如果我们把以上数据用数据仓库来存储,表单设计需要对原始表单进行Denormalization(反规范化)。
实际是把这个数据库的五张表以Books.T