NoSQL不是不用SQL,是Not only SQL,不仅仅是结构化的查询。
NoSQL兴起的原因
在Web2.0时代新浪一分钟可以发送两万条微博,苹果可以下载4.7万次应用。
数据的高并发性,同时有90万次的查询向百度的服务器提出了搜索要求。还有高扩展性,Web应用千变万化,可能对字段的需求在不断地增加。传统的数据库无法对字段进行简单的扩展。
关系型数据库作为一个统一的数据模型,既被用于数据分析,也被用于在线业务。数据分析强调的是高吞吐量,我要产生大量的计算结果。而在线业务需要低延时,意思是需要快速告诉用户答案用户等不了多长时间。不同的数据要求导致我们需要采用不同的数据管理模式。采用MongDB这样的非关系型数据库解决低延时的问题,采用Hadoop这样的平台和它的文件系统解决数据分析的问题。
关系数据的关键属性与2.0相比,web2.0网站通常不要求严格的数据库事务。而且Web2.0不要求严格的读写实时性。同时Web2.0不包含大量复杂的结构化查询。只需要把关键字放进搜索框里面就可以得到查询结果,不需要去指定是用户名呢,还是作者呢,还是时间呢?去掉了复杂的这样一种结构化的查询。
几届图灵奖的获得者都是关系数据库的领头人。
在Web2.0时代,实际上我们很少有复杂的关系查询。
采用关系数据库的时候都知道,当你的事务被中断的时候你要被滚回的,回复到事务执行之前的状态。而对于NoSQL数据库,我们没有这样的要求,只要最终一致就行了,也就是说经过某一个时间间隔之后你能够达到一致,并不要求实时性的一致。对于一致性的条件,非关系数据库是进行了放松的,同时也就增加了它的灵活性。
关系数据库已经标准化了,已经有了结构化的查询语言。
关系数据库的优劣性
混合架构
NoSQL的四大类型:键值数据库和列族数据库
文档数据库和图形数据库
相关产品
图形数据库
文档数据库
列族数据库
键值对数据库
列族数据库
文档数据库
谷歌的排序算法就是一个典型的图计算。
小结