不断演变的数据库生态圈 “SQL过时了。” “RDBMS再也无法满足公司企业的数据管理要求了。” “像NoSQL这些新的数据库技术是适合如今企业的解决方案。” 无论在数据库技术行业里面还是外面,诸如此类的论调我们可是听多了。但是它们果真属实吗?SQL真是明日黄花,NoSQL解决方案真是未来出路吗? 我们在本文中将概述SQL和NoSQL之间的区别以及众多NoSQL技术本身之间的一大堆区别,并且探讨关系数据库管理系统(RDBMS)是否真是明日黄花。 SQL vs NoSQL一览表:
听到“NoSQL”这个术语后,你可能以为统一属于这个范畴的所有技术都有同样的数据模型,有这种想法也情有可原。实际上,NoSQL是指一整批技术,这些技术存储和处理数据的方式各不相同。一些主要的方式包括如下: 文档数据库 文档数据库解决方案CouchDB的这张图相当清楚地总结了RDBMS和文档数据库之间的区别: SQL vs NoSQL 数据存储在文档中,这些文档按集合体分门别类,而不是说数据以行和列的形式存储在表中。每个文档可能有全然不同的结构。文档数据库包括上面提到的CouchDB和MongoDB。 键值存储数据库 数据存储在键值对的相关数组中。键是个属性名称,它与值关联起来。知名的键值存储数据库包括Redis、Voldemort(由LinkedIn开发)和Dynamo(由亚马逊开发)。 图形数据库 这种数据库用于使用图形可以清楚表示关系的数据。数据存储在图形结构中,有节点(实体)、属性(关于实体的信息)和线条(实体之间的关系)。这种数据库的例子包括Neo4J和InfiniteGraph。 列式(或宽列)数据库 在列式数据库中,你拥有的是列族、而不是“表”,列族其实是行的容器。不像RDBMS,你不需要事先知道所有的列,每一行没必要拥有数量一样的列。列式数据库最适合分析庞大数据库,知名的列式数据库包括Cassandra和HBase。 如果认为SQL和NoSQL是直接的对立面、彼此竞争,这种想法未免存在缺陷,尤其是由于许多公司决定同时使用两者。与我之前探讨的所有技术一样,确实不存在“一应俱全式”的方法;选择合适的技术取决于具体的使用场合。如果你的技术需求在不断变化,就需要高吞吐量来处理病毒式增长;或者你的数据在快速增长,你需要能够迅速、高效地横向扩展,那么NoSQL可能适合你。但是如果你拥有的数据其结构没有发生变化,面临的又是易于管理的适度增长,那么SQL技术也许就能满足你的需求。当然,SQL还没有完蛋。 云头条编译|未经授权谢绝转 |
|
来自: 昵称34369088 > 《java》