NoSQL数据库(又名“not only SQL”)是非表格数据库,与关系表存储数据的方式不同。NoSQL数据库根据其数据模型有多种类型。主要类型有文档、键值、宽列和图形。它们提供了灵活的模式,并且可以在大量数据和高用户负载的情况下轻松伸缩。

NoSQL是什么?

当人们使用术语“NoSQL数据库”时,它们通常会使用它来引用任何非关系数据库。有人说,“NoSQL”一词代表“非SQL”,而其他人则表示它代表“不仅仅是SQL”。无论哪种方式,大多数人都同意noSQL数据库是存储除关系表以外的格式的数据库。

一个常见的误解是,NoSQL数据库或非关系数据库不能很好地存储关系数据。NoSQL数据库可以存储关系数据——只是与关系数据库的存储方式不同。事实上,与SQL数据库相比,很多人发现在NoSQL数据库中建模关系数据是更容易而不是在SQL数据库中,因为相关数据不必在表之间拆分。

NoSQL数据模型允许将相关数据嵌套在单个数据结构中。

NoSQL数据库在2000年代后期出现,因为储存成本显着下降。仅需要创建复杂,难以管理的数据模型的日子,仅用于减少数据复制的目的。开发人员(而不是存储)正在成为软件开发的主要成本,因此NoSQL数据库针对开发人员生产力进行了优化。亚博科技彩票yabogame

随着存储成本的迅速降低,需要存储和查询的数据量也随之增加。这些数据具有各种形状和大小(结构化、半结构化和多态),提前定义模式几乎是不可能的。NoSQL数据库允许开发人员存储大量非结构化数据,给他们提供了很大的灵活性。

此外,敏捷宣言越来越受欢迎,软件工程师正在重新考虑他们开发的软件的方式。亚博科技彩票yabogame他们认识到需要快速适应不断变化的要求。他们需要快速迭代的能力并在整个软件堆栈中更改 - 一直到数据库模型。亚博科技彩票yabogameNoSQL数据库给了他们这种灵活性。

云计算也越来越流行,开发人员开始使用公共云来承载他们的应用程序和数据。他们希望能够跨多个服务器和区域分布数据,使他们的应用程序具有弹性,能够向外扩展,而不是向外扩展,并能够智能地定位他们的数据。一些NoSQL数据库(如MongoDB)提供了这些功亚博贵宾会贴吧能。

什么是sql?

既然我们对NoSQL数据库有了解,让我们将它们与传统上最流行的数据库进行了对比:由SQL(结构化查询语言)访问的关系数据库。您可以使用SQL与关系数据库交互时,其中数据存储在具有固定列和行的表中。

SQL数据库在20世纪70年代初开始流行。当时,存储非常昂贵,所以软件工程师将数据库规范化,以减少数据重复。亚博科技彩票yabogame

yabogame亚博科技彩票20世纪70年代的软件工程师也普遍遵循瀑布式软件开发模型。在开发开始之前,项目已经进行了详细的计划。yabogame亚博科技彩票软件工程师煞费苦心地创建了复杂的实体关系(E-R)图,以确保他们仔细考虑了所有需要存储的数据。由于这种预先计划模型,如果在开发周期中需求发生了变化,软件工程师就很难适yabogame亚博科技彩票应。结果,项目经常超出预算,超过最后期限,无法满足用户需求。

NoSQL数据库的类型是什么?

随着时间的推移,出现了四种主要的NoSQL数据库类型:文档数据库键值数据库、宽列存储和图形数据库。让我们检查每一种类型。

  • 文档数据库将数据存储在类似于JSON(JavaScript对象符号)对象的文档中。每个文档都包含对字段和值对。这些值通常可以是各种类型,包括字符串,数字,布尔值,阵列或对象,它们通常与对象开发人员对齐的结构与代码一起使用。由于它们各种字段价值类型和强大的查询语言,文档数据库非常适合各种用例,可用作通用数据库。它们可以水平缩放以容纳大数据量。亚博贵宾会贴吧MongoDB始终如一地排名为世界上最受欢迎的NoSQL数据库DB-engines是一个文档数据库的例子。有关文档数据库的更多信息,请访问什么是文档数据库?

  • 键-值数据库是一种更简单的数据库类型,其中每个项都包含键和值。值通常只能通过引用其键来检索,因此学习如何查询特定的键-值对通常很简单。键值数据库非常适合在需要存储大量数据但不需要执行复杂查询来检索数据的情况下使用。常见的用例包括存储用户首选项或缓存。Redis和DynamoDB是流行的键值数据库。

  • 宽栏商店将数据存储在表、行和动态列中。宽列存储相对于关系数据库提供了很大的灵活性,因为每一行不需要具有相同的列。许多人认为宽列存储是二维键值数据库。当您需要存储大量数据,并且可以预测查询模式时,宽列存储非常适合。宽列存储通常用于存储物联网数据和用户资料数据。Cassandra和HBase是两个最受欢迎的宽列商店。

  • 图形数据库将数据存储在节点和边缘中。节点通常存储有关人员,地方和事物的信息,而边缘存储有关节点之间的关系的信息。图表数据库Excel在使用情况下,您需要跨越关系寻找诸如社交网络,欺诈检测和推荐引擎等模式。Neo4j和Janusgraph是图形数据库的示例。

NoSQL数据库如何工作

从设计的角度理解NoSQL数据库的吸引力的一种方法是,在使用地址数据的过度简化示例中,看看SQL和NoSQL数据库的数据模型是什么样子的。

SQL。对于SQL数据库,为地址设置数据库首先要对格式进行逻辑构造,并期望存储的记录保持相对不变。在分析了预期的查询模式之后,SQL数据库可能会优化两个表中的存储,一个用于存储基本信息,另一个用于存储客户信息,姓氏是两个表的关键字。每个表中的每一行都是一个客户,每一列都有以下固定属性:

  • 姓::名::中间首字母::地址字段::电子邮件地址::电话号码
  • 姓::出生日期::账号::客户年::通信首选项

NoSQL的情况。在上面的NoSQL数据库的部分类型中,有四种类型描述,每个类型都有自己的数据模型。

每种类型的NoSQL数据库都会以特定的客户方式设计,并且有如何组织各种数据库的技术原因。描述的最简单类型是文档数据库,其中将基本信息和客户信息组合在一个JSON文档中是自然的。在这种情况下,每个SQL列属性都是字段,并且客户记录的详细信息将是与每个字段关联的数据值。

例如:last_name:“jones”,first_name:“mary”,middle_initial:“s”, 等等

尝试NoSQL数据库

如果你想尝试NoSQL数据库,亚博贵宾会贴吧MongoDB阿特拉斯是一个很棒的地方。Atlas是一个由MongoDB完全管理的数据库服务,并在所有领先的云提供商上提供。亚博贵宾会贴吧阿特拉斯拥有一个永恒的层,你可以用来踢到轮胎并发现基础知识。

不知道你现在有什么用地图集帐户吗?前往亚博贵宾会贴吧曼德布大学在哪里可以从MongoDB工程师获得免费的在线培训。亚博贵宾会贴吧亚博贵宾会贴吧MongoDB大学超过了140万课程注册。这快速启动教程是另一个开始的好地方,因为他们将帮助您快速上编程语言快速启动和运行。

这篇文章是由Lauren Schaefer.Mong亚博贵宾会贴吧oDB开发人员的支持者。

了解有关关键差异之间的更多信息NoSQL VS SQL数据库

开始使用MongoDB Atlas亚博贵宾会贴吧

体验在云上使用MongoDB的好处,这是最重要的NoSQL数据库。亚博贵宾会贴吧