当前位置:首页 > 数码 > vs-数据库-SQL-理解它们之间的关键差异-数据仓库 (Vs数据库打断点)

vs-数据库-SQL-理解它们之间的关键差异-数据仓库 (Vs数据库打断点)

admin7个月前 (04-15)数码2985

概念定义

数据库软件

  • 一种可见且可操作的软件
  • 实现数据库的逻辑功能
  • 属于物理层

数据库

  • 一种逻辑概念,用于存储数据
  • 通过数据库软件实现
  • 由多个表组成,每个表是二维的
  • 表中的字段按行排列,对应的数据按行写入表中
  • 能够用二维表表现多维关系

数据仓库

  • 数据库概念的升级
  • 从逻辑上与数据库无异,都是通过数据库软件实现
  • 数据量比数据库更大
  • 主要用于数据挖掘和数据分析

详细说明

在 IT 架构体系中,数据库是必不可少的,因为它提供了存储数据的地方。例如,电子商务网站需要存储商品库存量、价格、用户账户余额等数据。最简单的例子是微博和 QQ 等账户的用户名和密码,这些数据存储在后台数据库中的一张名为 user 的表中,该表有两个字段:用户名和密码。 当用户登录时,他们输入的用户名和密码将传输到后台,与表中的数据进行匹配。如果匹配成功,用户将成功登录;否则,将出现密码错误或用户名不存在等错误提示。这就是数据库在生产环境中的作用:存储业务数据并支持应用程序。 而数据仓库是一种商业智能技术。由于数据库与业务应用程序紧密相关,因此一个数据库不可能容纳一家公司的所有数据。数据库通常针对特定应用程序设计表结构。例如,前面提到的登录功能的 user 表只有两个字段。但是这种表结构并不适合分析。 例如,如果想要知道哪个时间段的用户登录数量最多,或者哪个用户一年的购物金额最多,就需要重新设计数据库的表结构。对于数据分析和数据挖掘,需要引入数据仓库的概念。数据仓库的表结构根据分析需求、分析维度和分析指标进行设计。数据仓库的数据来自不断运行的后台数据库表。 从后台数据库到数据仓库的数据传输涉及另一种技术,称为 ETL(数据抽取、转换和加载)。ETL 负责将数据从来源数据库移动到数据仓库。 数据仓库

总结

数据库、数据仓库和数据库软件是相互关联但又不同的概念: 数据库软件是实现数据库逻辑功能的物理软件层。 数据库是一种逻辑数据存储,由多个二维表组成。 数据仓库是数据库概念的扩展,具有更大的数据量,主要用于数据分析和数据挖掘。 这些技术共同构成了企业数据管理的基础,支持业务应用程序并提供决策支持。

数据库和数据仓库有什么区别

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的

数据库一般存储在线交易数据,数据仓库存储的一般是历史数据

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

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

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

单从概念上讲,有些晦涩

任何技术都是为应用服务的,结合应用可以很容易地理解

以银行业务为例

数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐

数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据

比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少

如果存款又多,消费交易又多,那么该地区就有必要设立ATM了

显然,银行的交易量是巨大的,通常以百万甚至千万次来计算

事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据

而分析系统是事后的,它要提供关注时间段内所有的有效数据

这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了

数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”

那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W

Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合

“面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的

这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块

也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的

“与时间相关”:数据库保存信息的时候,并不强调一定有时间信息

数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性

决策中,时间属性很重要

同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的

数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)

因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的

数据仓库的出现,并不是要取代数据库

目前,大部分数据仓库还是用关系数据库管理系统来管理的

可以说,数据库、数据仓库相辅相成、各有千秋

补充一下,数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大

为了更好地为前端应用服务,数据仓库必须有如下几点优点,否则是失败的数据仓库方案

效率足够高

客户要求的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析

由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的

数据质量

客户要看各种信息,肯定要准确的数据,但由于数据仓库流程至少分为3步,2次ETL,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益

扩展性

之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,客户不用太快花钱去重建数据仓库系统,就能很稳定运行

主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了

数据库与数据仓库的区别 和SQL的全称是什么,为什么不同的公司都有自己的SQL

数据库与数据仓库的区别 去看看网络知道把...大体上说数据库是一种软件用来储存数据的数据仓库是一种对数据进行 加工、整理和汇总的过程SQL 全称是 Structured Query Language 结构化查询语言sql是一种操作数据库的语言而不是数据库本身数据库上边说了就是一种软件用来储存数据 不同公司虽然都有各自的数据库但是它们都支持这种语言

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: 数据库

“vs-数据库-SQL-理解它们之间的关键差异-数据仓库 (Vs数据库打断点)” 的相关文章

过去一年数据库领域的十大发展趋势 (往年数据)

过去一年数据库领域的十大发展趋势 (往年数据)

作者:朱洁 | 策划:李冬梅 前言 2023年对数据库行业来说是充满挑战的一年。行业信心跌至冰点,各行各业都在艰难恢复,裁员加剧,就业率创新低。但2023年也见证了数据库行业的一些重要...

深入了解其核心组件和工作原理-聊聊分布式数据库TDSQL的技术架构 (深入了解其核心经验)

深入了解其核心组件和工作原理-聊聊分布式数据库TDSQL的技术架构 (深入了解其核心经验)

近几年来,随着互联网和云计算的飞速发展,分布式关系型数据库逐渐成为企业核心业务系统的重要支撑。本文将以腾讯云 TDSQL 数据库技术架构为例,深入解析分布式关系型数据库的架构和实现原理,帮助读者深...

先操作数据库还是先操作缓存-并发环境下的数据操作顺序 (先操作数据库还是先删缓存)

先操作数据库还是先操作缓存-并发环境下的数据操作顺序 (先操作数据库还是先删缓存)

问题提出 在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢? 先思考一下,可能会存在哪些问题,再往下看。 缓存维护方案 方案一:先操...

具有高吞吐量-基于Apache-Scylla-Cassandra的分布式NoSQL数据库-低延迟和可扩展性 (具有高吞吐量的企业)

具有高吞吐量-基于Apache-Scylla-Cassandra的分布式NoSQL数据库-低延迟和可扩展性 (具有高吞吐量的企业)

概述 Scylla 是一款高性能、可伸缩的分布式 NoSQL 数据库,基于 Cassandra 项目开发。它以出色的性能和可伸缩性著称,能够处理大规模的数据工作负载。 设计目标 Scyll...

嵌入和矢量数据库实操指南 (嵌入和矢量数据的区别)

嵌入和矢量数据库实操指南 (嵌入和矢量数据的区别)

引言 随着生成式人工智能 (AI) 的兴起,处理复杂高维数据已成为一项至关重要的任务。矢量数据库的出现提供了应对这一挑战的突破性解决方案。 矢量数据库的定义 矢量数据库是专门设...

三种方法-数据库和缓存数据一致性维护策略 (三种方法数据比较)

三种方法-数据库和缓存数据一致性维护策略 (三种方法数据比较)

在现代web开发中,缓存已经成为提高应用程序读性能的标准做法。通过引入缓存,我们可以暂时存储经常访问的数据,避免频繁查询数据库,从而显著减少应用程序的响应时间。 引入缓存也带来了一些挑战,其...

流行的支持多数据库的ORM库 (主流支持和扩展支持的区别)

流行的支持多数据库的ORM库 (主流支持和扩展支持的区别)

Sequelize is a popular Node.js ORM (Object-Relational Mapping) library that makes it easy to inter...