志达IT
做快乐程序员

数据库和数据仓库的区别与联系

数据库和数据仓库的区别与联系

一位做数据分析的朋友问我:老师,你的商业智能BI团队总是谈论数据仓库和数据仓库。我觉得在数据仓库中,您仍然可以像其他数据库一样编写SQL来运行一些数据。我认为它与数据库没有太大区别。他们有什么不同?
数据库和数据仓库之间的区别
事实上,数据仓库和数据库之间有什么区别?很多人也问过这个问题。简单地说,数据仓库的本质是数据库,存储方法也是一样的。只是两者的定位和服务对象不同,内部的数据组织形式也不同。
可以从以下角度进行描述:
首先,数据库通常为业务服务,而数据仓库通常为分析服务。我们通常所指的数据库通常用于服务于业务应用软件,无论是B/S架构还是C/S架构,例如企业常用的ERP系统和OA系统,或者我们手机上的订餐应用和在线票务应用等应用。
这些业务系统的特点是用户在这些软件系统上进行操作,如登录、填写个人信息、修改个人信息、查询记录等。数据通过这些软件程序与底层数据库交互,并在底层数据表上进行添加、删除和查询操作。因此,通常这些数据库服务于运行在操作系统之上的各种业务系统和应用软件,并且更面向业务流程和业务管理。ssh
商业数据-派克数据商业智能BI可视化分析平台
数据仓库是不同的。它不为业务信息系统服务,而是为分析应用程序服务。更常见的情况是,通过各种商业智能BI前端可视化和分析工具或报告工具访问数据仓库,最终针对报告查询和数据分析服务。
其次,数据库的数据源来自各种业务系统软件程序或用户与这些业务系统软件交互生成的数据,而数据仓库的数据源直接是这些业务系统的一个或多个数据库或文件,如SQL Server、Oracle、MySQL、Excel、文本文件等。它也可以简单地理解为许多业务系统数据库将数据传输到数据仓库,数据仓库是各种数据库和更大数据库的集合。数据仓库的建立就是将这些基础数据库的数据连接起来。
商业智能BI-派克数据商业智能BI可视化分析平台
第三,数据库很少被设计用于存储历史数据,通常只描述某个业务时间的数据,而该业务时间会随着业务系统的变化而变化。数据仓库存储大量历史数据用于分析,因为它从业务系统数据库中提取数据并每天存储,其中大多数数据是静态的。
第四,核心区别在于建模方法和数据冗余。为了实现业务流程,业务系统的数据库在表设计中通常采用三范式3NF建模方法,不细分最小原子列、主键和外键等,通过一对多或多对多的形式减少数据冗余。在数据仓库的建模方法方面,既有三种标准形式的3NF建模,也有维度建模,如星形或雪花形建模。通常使用Kimball的Dimensional建模。ssh
建模方法-派克数据商业智能BI可视化分析平台
像Kimball这样的Dimensional建模方法是去标准化的,并保留了大量的数据冗余以提高查询效率。因此,业务系统的数据库更多的是添加、删除和修改操作,而数据仓库更多的是查询操作,这决定了建模方法会有显著差异。一个用于业务流程,另一个用于分析服务。
同时,为了确保底层架构的稳定性和健壮性,数据仓库还对底层表进行分层设计,如常见的ODS层、Staging层、Trans层、Dimension层、Fact层、data Mart层等。这种分层的优点是解耦,隔离底层业务系统的更改对上层模型和页面的影响,并促进后期的数据维护。
数据仓库-派克数据商业智能BI可视化分析平台

赞(0)
未经允许不得转载:志达IT网站 » 数据库和数据仓库的区别与联系
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

志达IT网站 每天分享编程和互联网的IT技术博客

登录/注册联系我们