写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

数据库是面向事务的设计,数据仓库是面向主题设计的。

数据库一般存储在线交易数据,有很高的事务要求;数据仓库存储的一般是历史数据。

数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。

数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。

维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。

补充

数据库和数据仓库对比

功能数据仓库数据库
数据范围存储历史的、完整的、反应历史变化的当前状态数据
数据变化可添加、无删除、无变更的、反应历史变化的支持频繁的增、删、改、查操作
应用场景面向分析、支持战略決策面向业务交易流程
设计理论违范式、适当冗余遵照范式(第一、二、三等范式)、避免冗余
处理量非频繁、大批量、高吞吐、有延迟频繁、小批次、高并发、低延迟

OLTP和OLAP

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

详情可见我的另一篇博客——OLTP和OLAP的区别?

事实表和维表

详情请见我的另一篇博客——什么是事实表和维度表?

Q.E.D.


大数据开发工程师,精通 Spark,擅长 Java 和 Scala