NOSQL启蒙: What? Why? When?

前言:网络上有大量的长篇大论来讲述NOSQL,刚看到这篇的精简版,权当作为NOSQL的启蒙材料。在翻译过程中,为符合启蒙特点,对部分内容作了适当的修改和补充。

原文:http://www.bodhtree.com/blog/2013/08/05/what-is-nosql-why-nosql-when-nosql/


no sql

什麽是NOSQL?
NOSQL不像它看上去的那样“No SQL”,它的实际意思是”Not Only SQL“。因为它的目标不是拒绝SQL,而是对绝大多数关系型数据库技术限制的补充。所以,NOSQL不是一种关系型数据库,它是对数据库的一种全新的思考。
正因为关系型数据库模式并不适用于所有的场景,NOSQL正变得越来越重要。那么究竟什麽是NOSQL,你可以把它理解为有着松散结构化,甚至非结构化的分布式、非关系型数据库。
在新兴行业中,NOSQL数据库广泛应用于大数据分析、实时网络应用等。


为什麽NOSQL?
在2000年,埃里克·布鲁尔( Eric Brewer)提出了现在很著名的CAP定理:
  • 一致性(Consistency):所有节点在同一时间具有相当的数据
  • 可用性(Availability):保证每个请求不管成功或失败都有响应
  • 分区容忍(Partitioning):系统中任意消息的丢失或失败不影响系统继续运作
根据定理,对于一个分布式系统只能满足上述三项中的两项,而不可能满足全部三项。
因为数据激增,一个数据库往往被分割到网络互联的多台服务器,它就不可能同时满足一致性和高可用性。为了提供了多分区的一致性和高可用性,NOSQL提供更好的解决方案。
除此之外,还有一些其他的优势:
  • 水平扩展
  • 更灵活的数据模型
  • 性能优势

何时NOSQL?
在以下场景,你可以优先考虑NOSQL数据库:
  • 实时的网络应用
  • 非结构化数据 - 通常不需要预先明确定义数据各字段
  • 大数据量 (TB以上)
  • 当可扩展性极为重要时


猜你喜欢

转载自blog.csdn.net/u011798638/article/details/10786019