10分钟带你了解数据库、数据仓库、数据湖、数据中台的区别与联系(一)

上周在整理客户数据的时候,发现使用的数据库太小,数据表都挤满了,查询速度慢如蜗牛。
我问他为什么不使用数据湖。
他说数据湖太混乱了,他不知道哪些数据有用。
当时我就想,这件事确实不能简单地解释清楚。

数据库就像家里一​​个整理整齐的抽屉。
关系型数据库是分类明确的数据库,例如员工表、客户表等。
每个字段定义清晰,一目了然。
去年,当我帮助一家电子商务公司更改他们的Oracle数据库时,所有促销活动记录都是按时间顺序存储的。
后来,当检查特定活动的影响时,他们可以直接使用 SQL 执行语句,这比搜索旧账本要快得多。
但非关系型数据库更灵活,比如Redis缓存,存储用户的登录状态,秒级响应,比关系型数据库快不了半点。
然而,它也很容易变得混乱。
例如,我的朋友使用 MongoDB 来存储文档。
最后他发现,找资料比找自己的书架还难。

数据仓库是一个专门存放旧照片的阁楼。
公司的业务数据库就像一个客厅。
人来人往的时候一定要干净整洁,但里面不能有太多的旧东西。
数据仓库要定期上移,对客厅不用的旧照片进行分类和标记。
我认识一个从事零售业的人。
您已将过去三年的所有销售数据移入数据仓库。
现在报表运行速度很快,但是我想改一条记录?系统直接拒绝了它,称这是一张“只读专辑”。
最后,他们建立了一个ODS层,就像一个缓冲区。
业务数据停在那里,然后慢慢地通过筛子,这比直接通过筛子要干净得多。

数据湖就像阳台上堆积的瓦砾。
它什么都有,但没有分类。
我的邻居老王建了一个数据湖来存储监控视频。
如果他想找到某一天发生事故的录像,他必须浏览所有视频,然后进行过滤。
最终他发现他们使用的是 Hadoop 分布式处理。
不过这样的优点就是可以随时使用,不需要像数据仓库那样定期组织起来。
然而最近,公司一直在整合湖泊和仓库,将湖泊的随机性与仓库的有序性结合起来。
阿里云等平台可以在短短几分钟内将杂乱的物联网数据转换为可操作的报告。
这确实是一项黑科技。

等一下,我突然想起客户说过的话:“数据湖太混乱了。
”事实上,它就像我家的地下室。
东西堆得乱七八糟,但偶尔挖掘一下,也能发现意想不到的宝藏。
他们的问题可能不在于数据湖本身,而在于他们未能学会如何在混乱中快速找到东西。
下次我需要教他们使用 Flink 实时处理数据,将新订单信息直接转换为仪表板上的动态数字。
也许他们喜欢那样。

数据、数据库、数据库系统的区别?

数据……说白了就是一个记录,一个记录下来的东西。
例如,手机上存储的联系人、笔记等都属于数据。
仅仅记录数据是不够的。
它也必须有一些意义。
例如,如果您存储联系人,您需要知道他们是谁、他们的名字是什么以及他们的电话号码是什么。
如果你有记录而不解释有什么用呢?
数据库是计算机上存储数据的一个大空间。
它们是系统放置的,而不是随机放置的。
例如,您公司使用的客户管理系统存储所有客户信息。
这是一个数据库。
这些数据会长期存储在您的计算机上,并且可供所有人使用。

数据库管理系统就是管理这个大型仓库的软件。
想一想。
仓库需要有人来管理,这个人就是DBMS。
你需要对如何放入数据、如何查找数据以及如何确保数据没有问题负责。
如果您想去仓库提货,必须先与仓库管理员交谈。
DBMS是管理员,所以你必须通过它来运行数据库。

数据库系统是一套完整的系统。
除了数据库之外,还有管理系统、程序员编写的应用程序以及管理数据库的专家。
您需要放下整套数据才能有效地利用您的数据。

数据库、数据库系统和数据库管理系统之间有非常明显的区别。
数据库系统是最大的,包括数据库和数据库管理系统。
数据库管理系统是您和数据库之间的系统。
要操作数据库,必须通过数据库管理系统。

说白了,数据就像仓库里的货物。
数据库就是一个专门存放这些货物的大仓库。
数据库管理系统是一个仓库管理员,可以管理您的仓库,确保货物的安全,并让您更轻松地找到您的物品。
数据库应用系统是可以方便您操作数据库的软件。

就像Web开发中的MVC一样,数据库就像一个负责底层数据的模型。
数据库管理系统就像一个负责交互的控制器。
视图就像用户可以看到的封装视图。
整个“MVC”就是一个数据库系统,简称数据库。

阐述什么是关系、属性、元组、关系模式、关系模型、关系数据库,并解释互相之

说实话,当我第一次接触到这些概念时,我的脑子一片混乱。
但如果你说得清楚、逻辑清晰,我就能明白要点。

首先我们来谈谈“关系”。
需要明确的是,这个对象是一个二维表。
当我查看特定公司的ERP系统中的财务报表时,表中的每一行代表一个帐户记录,完全满足您提到的聚合、中断和同质性特征。
从数学上讲,它被定义为笛卡尔积的子集,看起来水平很高,但在实际应用中,只要表中没有重复的行,行和列的顺序并不重要,每行的列数和数据类型都是相同的。

功能非常熟悉。
记得刚学数据库的时候,老师举了一个例子,在学生表中,“学号”、“姓名”、“性别”是属性。
每列都有一个唯一的名称,列中的具体数据就是属性的值。
例如,对于“性别”属性,域是{男,女},不能只填写其他任何内容。
属性的数量称为元或度。
这个概念我在实际项目中用得不多,不过了解一下也没关系。

元组是表中的行,代表特定的记录。
例如“(001 号学号,张三,男)”就是一个元组。
当时不明白为什么叫元组,后来明白了。
元在会计中是会员的意思,记录就是会员。

关系模型的概念给我留下了特别深刻的印象。
他的同学正在做毕业设计。
他设计的数据库表结构是一个关系模型如“Student(StudentNumber CHAR(1 0) PRIMARY KEY, NAME VARCHAR(2 0), Gender CHAR(2 ) CHECK(Gender IN ('Male', 'Female'))))”。
关系模式定义了表的静态结构,但表中存储的实际数据是关系的一个示例。
两者可以分离,也可以连接。
有趣的是,关系模式建筑是一幅画,关系模型是一座建好的房子
关系模型是理论的基础,我完全同意很多主要的数据库像MySQL和Oracle都是基于关系模型的。
他们是成立的。
该模型描述了如何使用二维表来表示实体和关系,并提供了数学组织的方法。
当时我看到有人在IT论坛上讨论关系模型和面向对象模型的优缺点。
他表示,关系模型具有良好的数据一致性,但当查询复杂时可能需要编写较长的SQL语句。

关系数据库是模型的实现,这一点尤为重要。
我正在为一家电子商务公司做一个项目,他们正在使用关系数据库。
在关系模式中定义数据结构,使用属性和元组等基本概念来操作数据,并依靠主键和外键来保证数据链接。
例如订单表和用户表通过用户ID形成外键关系,这样查询用户的订单就特别方便。
数据完整性、多样性和相关性等技术使数据管理更加有效。

说实话,这些概念是非常密切相关的,但是单独去理解它们时,认为它们相距甚远可能有点偏激了。
但当你用SQL查询数据、用ER图设计数据库时,你会觉得这些概念是相互关联的。
例如,定义关系时需要考虑属性,存储数据时需要创建关系条件,查询数据时涉及元组……这是一个完整的过程。

我记得信息在X区,但我建议你检查一下。
可能存在认知界限。
我个人没有从事过这方面的工作,但从理论理解上来说,关系模型提供了数学基础,关系是模型的特殊应用,属性和元组构成基本单元,关系模式定义了结构,关系数据库整合了这些概念来实现高效的管理。