1、什么是NoSQL
NoSQL = Not only SQL (不仅是SQL),即泛指非关系型数据库。随着Web2.0时代诞生!NoSQL在当今大数据的环境下发展十分迅速!
NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
特点:
- NoSQL方便扩展(数据之间没有关系,很好扩展!)
- 大数据量高性能!(Redis一秒写8万次,读11万次)
- 数据类型是多样的!(不需要事先设计数据库!)
传统的EDBMS和NoSQL的区别:
传统的EDBMS:
- 结构化组织;
- SQL;
- 数据和关系都存在单独的表中;
- 操作操作,数据定义语言;
- 严格的一致性;
- 基础的事务;
- …
NoSQL:
- 不仅仅是数据;
- 没有固定的查询语言;
- 键值对存储,列存储,文档存储,图形数据库(社交关系);
- 最终一致性;
- CAP定理BASE;
- 高性能、高可用、高可护;
- …
2、NoSQL的四大分类
分类 | 栗子🌰 | 应用场景 | 数据模型 | 优点 | 缺点 |
---|---|---|---|---|---|
键值对数据库 | Redis、Oracle DBD | 内容缓存,主要用于处理大量数据的高访问负载 | Key-Value | 查找速度快 | 数据无结构化,通常只被当作字符串或者二进制数据 |
文档型数据库 | MongoDb、CouthDB | Web应用 | Key-Value,Value为结构化数据 | 数据结构要求不严格,表结构可变,不需要预先定义表结构 | 查询性能不高,缺乏统一查询语句 |
列存储数据库 | HBase、Cassandra | 分布式的文件系统 | 列簇存储 | 查找速度快、可扩展性强、更容易分布式扩展 | 功能相对局限 |
图形数据库 | Neo4J | 社交网络、推荐系统 | 图结构 | 可利用图结构相关算法 | 很多时候需要对整个图进行计算,而且不容易实现分布式集群 |