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是文档数据库的一个例子。有关文档数据库的更多信息,请访问什么是文档数据库?

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

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

  • 图形数据库将数据存储在节点和边中。节点通常存储关于人、地点和事物的信息,而边存储关于节点之间关系的信息。图数据库擅长于你需要遍历关系来寻找模式的用例,比如社交网络、欺诈检测和推荐引擎。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的首选数据库)的好处。亚博贵宾会贴吧