常规的关系数据库是为获得最佳存储结构而进行的大量研究和测试的产物。但是,它们的缺点是它们具有刚性的结构,如果有不同的规格,则不能改变。为了解决这个问题,创建了NoSQL数据库。
NoSQL数据库有许多不同类型,具有不同的规范。其中一些是-
列 -数据以列形式存储。这类数据库的一些示例是:Accumulo,Cassandra,Druid,Vertica等。
键值-这些数据库组织为键值对,其中每个键仅出现一次。按键通常以排序的方式排列。这类数据库的示例包括:Aerospike,ArangoDB,Couchbase,Dynamo等。
图形 -数据库以图形的形式排列,使用它们之间的关系连接元素。例如AllegroGraph,InfiniteGraph,MarkLogic等。
文档 -数据库以使用唯一键访问的文档的形式存储。单个键引用文档。基于Domument的数据库的示例包括:Apache CouchDB,BaseX,Clusterpoint erc。
资料模型 | 性能 | 可扩展性 | 灵活性 | 复杂 | 功能性 |
面向文档 | 高 | 高 | 高 | 低 | 低 |
图数据库 | 变量 | 变量 | 高 | 高 | 图形理论 |
键值数据库 | 高 | 高 | 高 | 没有 | 变量 |
列导向 | 高 | 高 | 中等 | 低 | 最小的 |
NoSQL数据库中的数据不如传统关系数据库中的数据一致。此外,尽管SQL数据库保留ACID属性并提供可靠的事务,但NoSQL数据库通常会牺牲ACID属性以提高速度和可伸缩性。
基本上,从长远来看,SQL和NoSQL数据库都提供不同的功能并相互补充。用户可以选择最适合自己需求的数据库类型。