Logo
Section 1 / 5

NoSQL数据库

掌握各类数据库的区别。

检查点

NoSQL数据库

掌握各类数据库的区别。

数据库

重要性

现代应用程序依赖数据运行,数据就是新的石油。除了应用服务器之外,数据还需要被持久化存储。数据库正是用于长期保存数据的工具。这意味着即使我们关闭应用程序或服务器发生故障,数据依然能安全地保存在某个数据库中。数据至关重要,因此数据库成为任何应用程序中最关键的组成部分之一。数据库为我们提供了一种将数据组织并存储在低成本存储介质中的方式。没有数据库还能被认真对待的智能应用几乎不存在。

数据库选型

我们主要可以选择两大类数据库:

1. 关系型数据库

2. NoSQL 数据库

接下来我们将详细讨论这两类数据库。

关系型数据库

关系型数据库最早诞生于20世纪70年代。我们可能之前听说过一些常见的关系型数据库,例如 PostgreSQL、MySQL 和 Oracle。在关系型数据库中,表及其之间的关系是基本结构单元。数据以行的形式存储在表中,而这些表通过外键和主键属性相互关联。关系型数据库使用 SQL 语言进行增删改查(CRUD)操作。至今,它们仍然是许多应用的首选方案。

关系型数据库的优势

当应用中的数据天然具有结构化特征时,关系型数据库是一个理想选择。这类应用很容易建模为关系模式,银行类应用就是典型的例子。

关系型数据库在写入操作期间能保证数据一致性。因此,当多个应用同时访问数据时,使用关系型数据库非常合理,它能确保所有应用读取到一致的数据。

此外,SQL 作为关系型数据库的标准语言,已被广泛认知,开发者学习和使用的门槛较低。

关系型数据库的局限性

自关系型数据库问世以来,时代已经发生变化。如今互联网上的大多数数据是非结构化的,并且持续演变。例如,你在 YouTube 上喜欢的音乐相关数据,在关系型数据库中就很难有效建模。随着平台发展,数据的新特性会不断涌现。

应用程序实际数据结构与关系模型之间的不匹配被称为 阻抗失配(Impedance Mismatch)。虽然关系型数据库适用于某些场景,但对于现代应用而言,它们并非最优雅的解决方案。

由于强调强一致性,关系型数据库在横向扩展方面表现不佳。当数据分布在多台机器上时,每次写入操作都需要同步更新所有副本,这会导致大规模数据写入性能下降。

此外,随着敏捷开发方法的普及,频繁修改数据库模式已成为常态。而在关系型数据库中进行模式变更往往非常繁琐。

NoSQL 数据库

NoSQL 数据库旨在解决传统 SQL 数据库的局限性。它们采用无固定模式的设计,提供快速访问能力和良好的水平扩展性。“NoSQL” 是一个统称,涵盖所有非关系型的现代数据库,其全称为“Not Only SQL”。该术语起源于一次同名技术交流会,旨在探讨这类新型数据库。如今,MongoDB、DynamoDB 等 NoSQL 数据库支撑着大多数社交媒体网站、电商网站及其他现代应用,已经成为不可或缺的技术。

NoSQL 数据库的类型

主要包括以下几类:

- 键值型(Key-Value)

- 文档型(Document-Based)

- 图数据库(Graph-Based)

- 列式数据库(Column Based)

NoSQL 数据库的优势

NoSQL 数据库在高并发和大数据量场景下表现出色。它们通过在多台机器间横向扩展来提升性能。同时,其数据模型更贴近业务领域,提供了更高的灵活性。NoSQL 数据库的学习成本相对较低,适合小型团队快速上手。目前市场上有大量托管型 NoSQL 服务,使得部署和运维更加简便,减轻了使用负担。

Quiz

单选题

关系型数据库通过添加新服务器可以很好地扩展。

1 / 3

欢迎!

DynamoDB