Coursera 笔记

Module 01 · Introducing NoSQL

Challenges in Migrating from RDBMS to NoSQL Databases从 RDBMS 到 NoSQL 数据库迁移的挑战

Coursera ↗

欢迎观看关于 从 RDBMS 到 NoSQL 数据库迁移的挑战 的介绍视频。通过本视频,您将能够:

  • 了解在什么情况下 RDBMS 和 NoSQL 各自最适用,
  • 描述 RDBMS 和 NoSQL 之间的主要区别。

 RDBMS 与 NoSQL 的选择

有时会出现一种误解,认为 NoSQL 是 RDBMS 的替代品,或者你必须在关系型数据库和 NoSQL 数据库之间做出选择。实际上,RDBMS 和 NoSQL 数据库 并不是相互竞争的,因为它们面向的是完全不同的需求和使用场景。

虽然从 RDBMS 系统 迁移到 NoSQL 系统 是可能的,但这应该根据最终解决方案所需的特点来决定。无论是出于性能、灵活性,还是其他原因,您都需要根据 NoSQL 能为您提供的功能进行分析和评估。


 RDBMS 和 NoSQL 适用场景

何时选择 RDBMS(关系型数据库)

  • 如果您需要确保 数据的一致性。
  • 如果您的数据是 结构化的。
  • 如果您需要 多文档事务 和 复杂的连接操作。

在这种情况下,关系型数据库 会更合适。

何时选择 NoSQL(非关系型数据库)

  • 如果您的数据是 非结构化的,并且能够从 灵活的架构 中获益。
  • 如果您的系统需要 高可用性 和 可扩展性。

在这种情况下,NoSQL 数据库 会更合适。

同时使用 RDBMS 和 NoSQL 的情况

  • 如果您的数据量非常庞大,且需要高性能系统支持,同时还需要事务支持和复杂的 连接操作,那么可能需要结合使用 RDBMS 和 NoSQL。

 从 RDBMS 迁移到 NoSQL 时的注意事项

当从关系型数据库迁移到 NoSQL 时,您需要注意以下几点:

数据模型驱动查询

在 RDBMS 中,解决方案设计从数据本身出发,定义实体及其关系。而在 NoSQL 中,设计从查询出发,即数据模型是由您的应用如何访问数据和您将要执行的查询来驱动的。换句话说,在 NoSQL 中,数据模型应基于应用程序如何与数据交互,而不是如何将其存储为表格中的行。

数据规范化与反规范化

在 RDBMS 中,数据是 规范化 的,即数据被分成多个表以减少冗余。而在 NoSQL 中,数据通常是 反规范化的,这意味着您可能需要根据查询需求,将相同的数据以不同的方式存储在不同的地方,从而提高查询效率。

一致性与可用性的权衡

在迁移到 NoSQL 数据库时,您需要了解有时服务可能更需要 可用性,而非 一致性。当 可用性 和 性能 都是必需时,分布式系统的 一致性 就不能得到保证。您需要记住 CAP 定理,许多现代在线服务更看重 可用性,而不是 一致性。

NoSQL 与事务和复杂查询

NoSQL 数据库并不设计支持事务、连接操作或复杂处理,除非在某些有限的情况下。您在从 RDBMS 迁移到 NoSQL 时需要考虑这一点。


 总结

通过本视频,您了解了:

  • NoSQL 系统 并不是 RDBMS 的替代品,它们面向不同的应用场景。
  • RDBMS 和 NoSQL 可以根据不同的需求结合使用。
  • 从 RDBMS 迁移到 NoSQL 可能是由于 性能、数据量、架构灵活性 或 系统可扩展性 等因素的驱动。
  • 迁移到 NoSQL 需要采纳 NoSQL 的基本概念。