SQL和NoSQL之间有什么区别(有哪些区别?)

在选择数据库时,最大的决定是选择关系(SQL)或非关系(NoSQL)数据结构。
虽然这两种数据库都是可行的选择,但两者之间仍有一些关键的区别,用户在做决定时必须记住。
主要区别:
类型–
SQL数据库主要被称为关系数据库(RDBMS)。而NoSQL数据库主要被称为非关系数据库或分布式数据库。
语言 –
SQL数据库定义和操作基于数据的结构化查询语言(SQL)。从侧面看, 这种语言非常强大。 SQL是最通用和广泛使用的选项之一, 这使其成为安全的选择, 尤其是对于复杂的查询。但是从另一方面来看, 这可能是限制性的。 SQL要求你在使用数据之前使用预定义的架构来确定数据的结构。同样, 你的所有数据都必须遵循相同的结构。这可能需要进行大量的前期准备, 这意味着结构更改既困难又破坏整个系统。
NoSQL数据库具有用于非结构化数据的动态架构。数据以多种方式存储, 这意味着它可以面向文档, 面向列, 基于图或组织为KeyValue存储。这种灵活性意味着无需先定义结构即可创建文档。每个文档也可以有自己独特的结构。语法因数据库而异, 并且可以随时添加字段。
可扩展性–
在几乎所有情况下, SQL数据库都是垂直可伸缩的。这意味着你可以通过增加RAM, CPU或SSD之类的内容来增加单个服务器上的负载。但是另一方面, NoSQL数据库是水平可伸缩的。这意味着你可以通过分片或在NoSQL数据库中添加更多服务器来处理更多流量。这类似于向同一建筑物添加更多楼层而不是向邻域添加更多建筑物。因此, NoSQL最终将变得更大, 功能更强大, 从而使这些数据库成为大型或不断变化的数据集的首选。
结构 –
另一方面, SQL数据库是基于表的数据库, 而NoSQL数据库则是键值对, 基于文档的图形数据库或宽列存储。对于需要多行事务的应用程序(例如记帐系统)或为关系结构构建的旧版系统, 这使关系SQL数据库成为更好的选择。
紧随其后的财产–
SQL数据库遵循ACID属性(原子性, 一致性, 隔离性和持久性), 而NoSQL数据库遵循Brewers CAP定理(一致性, 可用性和分区容限)。
支持–
他们的供应商为所有SQL数据库提供了强大的支持。也有很多独立的咨询人员可以为大型部署的SQL数据库提供帮助, 但是对于某些NoSQL数据库, 你仍然必须依靠社区的支持, 并且只有有限的外部专家才可以设置和部署大型NoSQL。部署。
SQL数据库的一些示例包括PostgreSQL, MySQL, Oracle和Microsoft SQL Server。 NoSQL数据库示例包括Redis, RavenDB Cassandra, MongoDB, BigTable, HBase, Neo4j和CouchDB。
【SQL和NoSQL之间有什么区别(有哪些区别?)】SQL vs NoSQL的主要亮点:

SQL NoSQL
关系数据库管理系统(RDBMS) 非关系或分布式数据库系统。
这些数据库具有固定或静态或预定义的架构 它们具有动态模式
这些数据库不适合分层数据存储。 这些数据库最适合分层数据存储。
这些数据库最适合复杂的查询 这些数据库不适用于复杂的查询
垂直可扩展 水平可扩展

    推荐阅读