除了 MySQL,这些数据库你都认识么?

什么是数据库?

这个问题相信对学编程的朋友们来说过于简单了,大家想必都是增删改查的好手。

但如果让你说出 10 种不同类型的数据库,阁下该如何应对?

这篇文章,是对数据库技术的一个小科普,希望能帮大家了解到更多元化的数据库,便于拓宽学习思路和项目的技术选型。

关系型数据库

首先是我们接触最多的、也是入门后端必学的 关系型数据库 。

在关系型数据库中,数据以  的形式进行组织和存储,每个表就像一个 Excel 表格,包含多个  和多个  。

就比如我们经典的学生管理系统,把学生信息存储到关系型数据库中,结构大概是这样的:

学号 学生姓名 所属班级号
1 小李 1
2 小鱼 2
3 小皮 3

上述学生表格中,每一行代表一个学生的信息,每一列代表学生的一个属性。我们可以使用结构化查询语言 SQL 来对关系型数据库表的数据进行灵活地查询、选择、过滤等。

而关系型数据库最大的特点,就是表和表之间可以 存在关系 。比如学生管理系统中还可以有班级表,结构如下:

班号 班级名称
1 快乐班
2 泰酷班
3 躺平班

那如果我想知道某个学生所属的班级信息,只需要在查询时将学生表的 所属班级号 和班级表的 班号 进行关联,而不用把所有表格的列存储在一起,非常灵活。

通过 SQL 可以连接查询多张表,得到下面的查询结果:

学号 学生姓名 所属班级号 班级名称
1 小李 1 快乐班
2 小鱼 2 泰酷班
3 小皮 3 躺平班

除了查询灵活、数据表间存在关系外,关系型数据库还具有很多其他的优点。

比较重要的是 数据一致性 ,关系型数据库遵循 ACID 原则(原子性、一致性、隔离性和持久性),支持事务,可以保证多个操作同时进行时,数据的状态保持一致。比如 A 给 B 转账,A 扣钱 的同时 B 也会加钱,不会出现 A 扣了钱 B 却没收到钱的情况。

兼顾查询的灵活和写入的准确性,使得关系型数据库几乎可以被应用于任何项目中!比如 CRM(客户关系管理)和 HRM(人力资源管理)等各类管理系统、数据分析系统、金融银行系统等。

比较经典的关系型数据库产品有 MySQL、Oracle、PostgreSQL、Microsoft SQL Server 等。其中,MySQL 由于开源又易学,已经成为后端开发同学必学的数据库技术。

关系型数据库的底层核心实现是 基于关系模型的数学理论 ,最常见的实现方式是使用 B+ 树来存储索引结构,基于其平衡性,能够在存储大量数据时保持高效的查询性能,并且兼顾增删改操作的性能。

图片

对于大多数项目,用 MySQL 等关系型数据库来存储数据就足够了。但关系型数据库不是银弹!在某些场景下,比如要存储的数据间没有关系时,它并不是最佳的选择。

举个例子,当我们要写一篇文章,没有必要把数据存储到 Excel 表格里,可能直接将单篇文本放到 Word 里会更方便阅读和修改。

这个时候,我们就需要与之互补的 非关系型数据库

非关系型数据库

非关系型数据库又叫 NoSQL。最简单的理解方式:关系型数据库适用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值