写在前面
本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和文献引用请见100个问题搞定大数据理论体系
解答
数据库是面向事务的设计,数据仓库是面向主题设计的。
数据库一般存储在线交易数据,有很高的事务要求;数据仓库存储的一般是历史数据。
数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。
维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。
补充
数据库和数据仓库对比
功能 | 数据仓库 | 数据库 |
---|---|---|
数据范围 | 存储历史的、完整的、反应历史变化的 | 当前状态数据 |
数据变化 | 可添加、无删除、无变更的、反应历史变化的 | 支持频繁的增、删、改、查操作 |
应用场景 | 面向分析、支持战略決策 | 面向业务交易流程 |
设计理论 | 违范式、适当冗余 | 遵照范式(第一、二、三等范式)、避免冗余 |
处理量 | 非频繁、大批量、高吞吐、有延迟 | 频繁、小批次、高并发、低延迟 |
OLTP和OLAP
数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别。
详情可见我的另一篇博客——OLTP和OLAP的区别?
事实表和维表
详情请见我的另一篇博客——什么是事实表和维度表?