“NoSQL”表示非关系类型数据库,这些数据库采用不同于关系表的格式存储数据。但是,NoSQL 数据库可以使用惯用语言 API、声明性结构化查询语言以及按示例查询语言进行查询,这也正是它们被称为“不仅仅是 SQL”数据库的原因所在。
得益于其高可扩展性和高可用性,NoSQL 数据库广泛应用于实时 Web 应用和大数据。
NoSQL 数据库也是开发人员的首选方案,因为它们可快速适应不断变化的需求,自然也适合敏捷开发范式。NoSQL 数据库支持以更直观、更易于理解的方式来存储数据,或者更接近于应用使用数据的方式。使用 NoSQL 风格的 API 存储或检索时所需的转换更少。此外,NoSQL 数据库还可以充分利用云技术来实现零停机。
SQL 数据库是关系型的,而 NoSQL 数据库是非关系型的。关系数据库管理系统 (RDBMS) 是结构化查询语言 (SQL) 的基础,可允许用户访问和操作高度结构化表中的数据。这是 MS SQL Server、IBM DB2、Oracle 和 MySQL 等数据库系统的基础模型。但是对于 NoSQL 数据库,数据访问语法可能因数据库而异。
要掌握 NoSQL 数据库,了解 RDBMS 与非关系数据库类型之间的差异非常重要。
RDBMS 中的数据存储在称为表的数据库对象中。表是相关数据条目的集合,由列和行组成。这些数据库需要预先定义架构,即需要提前知道所有列及其相关联的数据类型,以便于应用将数据写入数据库。它们还存储通过键链接多个表的信息,从而创建跨多个表的关系。在简单的用例中,键用于检索特定行以便于进行检查或修改。
相反,在 NoSQL 数据库中,无需预先定义架构即可存储数据 — 这意味着您可以快速移动和迭代,从而动态定义数据模型。这适用于特定的业务需求,包括基于图形、面向列、面向文档以及作为键值存储。
关系数据库近期还是非常广泛使用的模型,它们仍然在许多企业得到了广泛采用。然而,面对当今多样化、高速和海量的数据,有时需要用一个高度不同的数据库来补充关系数据库。这促进了 NoSQL 数据库在某些领域的采用,该数据库也称为“非关系数据库”。由于支持快速横向扩展,因此非关系数据库可以处理高流量,这也使其具有很强的适应性。
对于需要快速创新的企业和组织而言,保持敏捷性并继续以任何规模运营至关重要。NoSQL 数据库提供灵活的架构,并且还支持各种数据模型,非常适用于构建需要大量数据、低延迟或快速响应的应用,例如在线游戏和电子商务 Web 应用。
NoSQL 数据库通常依赖于非规范化数据,可支持使用较少表(或容器)的应用类型,并且其数据关系不是使用引用建模,而是作为嵌入式记录(或文档)。财务、会计和企业资源规划中的许多经典后台业务应用均依赖高度规范化的数据来防止数据异常和数据重复。这些应用类型通常不适用于 NoSQL 数据库。
NoSQL 数据库的另一个特点是查询复杂性。NoSQL 数据库在查询单个表时性能出众。然而,随着查询复杂性的增加,关系数据库则是更好的选择。NoSQL 数据库通常不会在 WHERE 子句中提供复杂的联接、子查询和查询嵌套。
但有时并不需要在关系数据库与非关系数据库之间做出选择。在许多情况下,公司会选择支持融合模型的数据库,以便于结合使用关系数据模型和非关系数据模型。这种混合方法在处理不同类型的数据时可提供更高的灵活性,同时还将确保读写一致性,而不会降低性能。
NoSQL 数据库与其他类型数据库之间的一项主要差异就是 NoSQL 数据库通常使用非结构化存储。经过过去二十年的开发过程,NoSQL 数据库专为快速、简单查询、海量数据和频繁的应用更改而设计。此外,这些数据库还大幅简化了开发人员的编程工作。
NoSQL 数据库的另一项重要差异化优势是依赖于“分片”流程来进行横向扩展,这意味着可以添加更多机器来处理跨多个服务器的数据。而其他 SQL 数据库中的垂直扩展需要为现有机器增加更多处理能力和内存。随着对存储的需求日益增长,这种方式是不可持续的。
NoSQL 数据库的横向扩展能力意味着可以更加有效地处理海量数据,同时可支持数据增长。垂直扩展类似于为房屋添加新楼层,而横向扩展则是在原始房屋的隔壁建造另一所房屋。
经过二十年的发展,数字交互和数据使用已经达到前所未有的水平,这要求企业采用更加现代化且流畅的方法来存储数据以及访问数据。随着全球范围内的用户要求实现不间断的内容和功能流,数据库也就需要具备快速适应的能力。有鉴于此,以下是开发人员选择 NoSQL/非关系数据库的一些关键原因:
NoSQL 数据库可分为四种主要类型:
Oracle NoSQL Database Cloud Service 支持开发人员轻松使用文档、列和键值数据库模型来构建应用,通过数据复制获得高可用性,实现可预测的个位数毫秒级响应能力。它提供 ACID 事务、无服务器扩展、全面的安全性以及按用量付费的低定价模式。
Oracle NoSQL Database Cloud Service 现已是 Oracle Cloud 免费套餐的一部分,其中包括免费限时促销试用,让您可以探索各种云技术服务以及一系列 Always Free 服务。
注:为免疑义,本网页所用以下术语专指以下含义: