Nosql和传统的RDBMS有什么区别?
在过去的几个月里,Nosql在技术新闻中经常被提及.相对于传统的RDBMS,它最重要的特性是什么?在什么级别(物理上,逻辑上)会出现差异?
使用Nosql的最佳地点在哪里?为什么?
Nosql代表“不仅仅是sql”,通常意味着数据库不是关系数据库,在过去的几十年里它一直很受欢迎.
Nosql在过去几年中如此受欢迎的原因主要是因为当一个关系数据库从一台服务器发展出来时,它就不再那么容易使用了.换句话说,它们在分布式系统中不能很好地扩展.你提到谷歌,雅虎,Facebook和亚马逊(我不太了解Digg)的所有大型网站都有大量数据并将数据存储在分布式系统中,原因有几个.可能是数据不适合一台服务器,或者存在高可用性要求.
CAP定理
分布式系统的属性可以由CAP Theorem描述.在这三个属性中,最多只能有两个:
> C onsistency
>可用性
>对网络P的限制
Amazon Dynamo使用Eventual Consistency接近获得所有三个属性.在了解Nosql数据库和分布式系统时,值得阅读的文章Dynamo: Amazon’s Highly Available Key-value Store. Amazon Dynamo具有A和P属性.
正如我在开始时写的那样,还有许多其他类型的Nosql数据库,它们是针对不同的需求而设计的.例如.图表数据库如Neo4j,文档数据库如CouchDB和多模型/对象数据库如OrientDB.
最后,我想说关系数据库将继续流行.它们非常灵活和可维护.但它们并不总是最好的选择.