数据库与数据仓库
一、数据库,数据仓库概述
1.1数据库概述
关系数据库本质上是一个二元关系,简单说就是一个二维表格,这种数据库类型具有结构化程度高,独立性强,冗余度低等特点。
1.2操作型数据库与分析型数据库
随着关系数据库理论的提出,诞生了一系列经典的RDBMS,如Oracle,MySQl,SQLServer等,这些RDBMS成功推向市场,然而随着数据库使用范围的不断扩大,他逐步划分为两大基本类型:
操作型数据库
主要用于业务支撑。一个公司往往会使用并维护若干个操作型数据库,这些数据库保存着公司 的日常操作数据,比如商品购买、酒店预订、学生成绩录入等;
分析型数据库
主要用于历史数据分析。这类数据库作为公司的单独数据存储,负责利用历史数据对公司各 主题域进行统计分析;
为什么不将两种类型的数据库设计在一起?
操作型任务和分型任务可能会抢资源而且两者之间已经有太多不同
1.3操作型数据库与分析型数据库的区别
1)数据组成差别-数据时间范围查差别
一般来讲,操作型数据库只会存放90天以内的数据,而分析型数据库存放的则是数年内的 数据。这点也是将操作型数据和分析型数据进行物理分离的主要原因。
2)数据组成差别-数据细节层次差别
操作型数据库中自然也有汇总需求,但汇总数据本身不存储而只存储其生成公式。这是因 为操作型数据是动态变化的,因此汇总数据会在每次查询时动态生成。
3)技术差别-数据更新差别
操作型数据库允许用户进行增,删,改,查;分析型数据库用户则只能进行查询。
4)
数据的意义是什么?就是减少数据冗余,避免更新异常。而如3所述,分析型数据库中没有 更新操作。因此,减少数据冗余也就没那么重要了。
5)功能差别-数据读者差别
操作型数据库的使用者是业务环境内的各个角色,如用户,商家,进货商等;分析型数据 库则只被少量用户用来做综合性决策。
6)功能差别-数据定位差别
这里说的定位,主要是指以何种目的组织起来。操作型数据库是为了支撑具体业务的,因 此也被称为"面向应用型数据库";分析型数据库则是针对各特定业务主题域的分析任务创建 的,因此也被称为"面向主题型数据库"。
2.1数据仓库概述
数据仓库之父比尔·恩门,1991年提出数据仓库就是为了解决数据库不能解决的问题而提出的。什么问题是数据库无法解决的?首先了解什么是OLAP和OLTP。(重点)
2.2.OLTP和OLAP(重点)
2.2.1OLTP
2.2.2OLAP
比如说,沃尔玛超市的数据库里有很多张表格,记录着各个商品的交易记录。超市里销售一种运动饮料,我们不妨称之为红牛。数据库中有一张表A,记录了红牛在一年的各个月份的销售额;还有一张表B,记录了红牛每个月在美国各个州的销售额:;甚至还有一张表C,记录了这家饮料公司在每个州对红牛饮料的宣传资金投入;甚至后来沃尔玛又从国家气象局拿到了美国各个州的一年365天每天的天气表D。好,最后问题来了,请根据以上数据分析红牛在宣传资金不超过三百万的情况下,什么季节,什么天气,美国哪个州最好卖?凭借我们的经验,可能会得出,夏季的晴天,在美国的佛罗里达,最好卖,而且宣传资金投入越高销售额应该也会高。可能这样的结论是正确的,但决策者想要看到的是确凿的数据结论,而不是“可能”这样的字眼。
2.3数据仓库的概念
随着更多的使用OLAP来为决策者进行分析,探究深层次的关系和信息。很显然不同的数据库之间根本做不到数据共享,为解决企业的数据集成问题,1988年IBM两位研究员创造性的提出了一个术语:数据仓库(Data Warehouse)。
数据仓库的定义:
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理中的决策制定。
首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库; 其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
我们可以不用管这个定义,简单的理解,其实就是我们为了进行OLAP,把分布在各个散落独立的数据库孤岛整合在了一个数据结构里面,称之为数据仓库。
这个数据仓库在技术上是怎么建立的读者朋友们并不需要关心,但是我们要知道,原来各个数据孤岛中的数据,可能会在物理位置(比如沃尔玛在各个州可能都有自己的数据中心)、存储格式(比如月份是数值类型,但但天气可能是字符类型)、商业平台(不同数据库可能用的是Oracle数据库,有的是微软SQL Server数据库)、编写的语言(Java或者Scale等)等等各个方面完全不同,数据仓库要做的工作就是将他们按照所需要的格式提取出来,再进行必要的转换(统一数据格式)、清洗(去掉无效或者不需要的数据)等,最后装载进数据仓库(我们所说的ETL工具就是用来干这个的)。这样,拿我们上面红牛的例子来说,所有的信息就统一放在了数据仓库中了。
自从数据仓库出现之后,信息产业就开始从以关系型数据库为基础的运营式系统慢慢向决策支持系统发展。这个决策支持系统,其实就是我们现在说的商务智能(Business Intelligence)即BI。
2.4
面向主题
面向主题特性是数据仓库和数据库的根本区别。
操作型数据库是为了支撑各种业务而建立的而分析型数据库则是为了对从各种繁杂业务中抽象出来的分析主题(如用户、成本、商品等)进行分析而建立;所谓主题:是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。
集成性
企业范围
数据仓库内的数据是面向公司全局的。比如某个主题域为成本,则全公司和成本有关的信息都会被汇集进来;
历史性
较之操作型数据库,数据仓库的时间跨度通常比较长。前者通常保存几个月,后者可能几年甚至几十年;
时变性
2.5数据仓库建设方法论
1)面向主题
从公司业务出发,是分析的宏观领域,比如供应商问题,商品主题,客户主题和仓库主题
2)为多维数据分析服务
数据报表;数据立方体,上卷、下钻、切片、旋转等分析功能。
3)反范式数据模型
以事物表和维度表组成的星型数据模型
数据仓库层的划分:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本