1、什么是NoSQL?
NoSQL = Not Only SQL
非关系型数据库
2、为什么需要NoSQL
High performance 高并发读写
Huge Storage 海量数据的高效率存储和访问
High Scalability && High Availability 高可扩展性和高可用性
3、非关系型数据库(NOSQL)与关系型数据库(SQL)的对比
3.1关系型数据库
Mysql oracle
特点:数据和数据之间,表和字段之间,表和表之间是存在关系的。
例如:
部门表001部分, 员工表001。
用户表,用户名、密码~
分类表和商品表,一对多关系。。
优点:
①数据之间有关系,进行数据的增删改査时非常方便的。
②关系型数据库有事务操作。保证数据的完整性。
缺点:
1、因为数据和数据之间有关系的,是由底层大量算法保证,
select * from product;
select * from category;
大量算法会拉低系统运行速度。
大量算法会消耗系统资源,
- 海量数据的增删改査时会显得无能为力.
很可能宕机
- 海量数据环境下对数据表进行维护,也会变得无能为力。
update product set cname ='手机数码';//修改所有数据。
把商品表的 cname 字段,由 varchar(64), char(100)
适合一般量级数据,安全,
例如:银行转账
3.1非关系型数据库(NOSQL):
为了处理海量数据,需要将关系型数据库的关系去掉。
初是为了替代关系型数据库的。
Redis
优点:
1、海量数据的增删改査,非常轻松应对
2、海量数据的维护非常轻松。
缺点:
- 数据和数据之间没有关系,所以不能一目了然,
- 非关系型数据库,没有关系,没有强大的事务保证数据的完整和安全,
适合处理海量数据,效率,不一定安全
例如:运动健儿的奖牌总数量
关系型数据库+非关系型数据库====》项目。
重要数据 海量操作数据,不重要。
nosql是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循sql标准、ACID属性、表结果等等,这类数据库主要有以下特点:非关系型的、分布式的,开源的,水平可扩展的。
优点:
高并发读写的性能
大数据量的扩展(分布式存储)
配置简单
灵活、高效的操作与数据模型
低廉的成本
不足之处:
没有统一的标准
没有正式的官方支持
各种产品还不算成熟
4、主流的NoSQL产品
5、四类NoSQL数据库比较
■ 建值(Key - value )存储数据库
相关产品:Tokyo Cablnet/Tyrant、 Redls、 Voldemort、Berkeley DB
典型应用:内容缓存,主要用于处理大量数据的高访问负载。
数据模型:一系列键值对
优势:优秀的快速査询,稳定性强
劣势:存储的数据缺少结构化,
■ 列存储教据库,
相关产品:Cassandra, HBase, Rlak
典型应用:分布式的文件系统。
数据模型:以列簇式存储,将同一列数据存在一起
优势:査找速度快,可扩展性强,更容易进行分布式扩展寸
劣势:功能相对局限,使用极大的内存才可调配,且系统处理算法时将有数秒甚至更长时间的不可用,导致大量 处理超时
■ 文档型数据库(淘汰)
相关产品: CouchDB、 MongoDB
典型应用:Web应用(与Key-Value类似,Value是结构化的)
数据模型:一系列键值对。
优势:数据结构要求不严标
劣势:査洵性能不高,而且繰乏统一的査询语法。
■ 图形(Graph)数据库
相关数据库:Neo4Js 、InfoGrid、 Infinite 、Graphs
典型应用: 社交网络【关系网】。
数据模型:图结构
优势:利用图结构相关算法.。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。局限性过强!!
6、NoSQL的特点
易扩展
灵活的数据模型
大数据量、高性能
高可用