一、什么是非关系型数据库?
1、非关系型数据库就是区别于关系型数据库的数据库。
2、虽然说起来有点绕嘴,但是非关系型数据库就是因为,关系型数据库处理不了的一些读写问题而产生的数据库
3、我们常用的非关系型数据库有:Redis,HBase,Mongodb;关系型数据库有:mysql,oracle,DB2
二、非关系型数据库相对于关系型数据库的比较
1、成本低,nosql数据库相对于关系型数据库来说,简单易部署,基本都是开源的软件,不用花钱去购买
2、查询速度快,nosql数据库将数据存储到缓存中,关系型数据库将数据存储到磁盘上
3、存储类型多样,nosql数据库可以存储key-value形式的数据,文档,图片等基础数据类型或者集合等多种形式,而关系型数据库只能存储基本数据类型
4、扩展性好,关系型数据库中有类似于join这种查询机制的限制,而nosql没有
5、虽然nosql有很多优点,但是他毕竟相对于sql来说还很年轻,属于新技术,所以nosql的维护工具和资料不多,而且不提供关系型数据库对事物的处理技术。
三、非关系型数据库与关系型数据库各自的优势
1、nosql的优势
1)nosql是基于键值对存储的,不需要经过sql层的解析,所以性能很高
2)用键值对形式存储的数据之间没有耦合性,容易进行水平扩展
2、关系型数据库的优势
1)可以用sql语句进行多表的联查
2)提供事务支持,从而可以访问一些安全性能高的数据。
四、sql与nosql区别总结
1、基于的模型:
由于sql是有事务的,所以他是基于ACID模型(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))的;而nosql是基于CAP模型(分区容错性Partition tolerance,一致性Consistency,可用性Availability )的。
2,、数据存储结构:
关系型数据库一般都有固定的表结构需要通过DDL(创建表需要用的SQL语句Create,Drop等)来改变表结构,不容易进行扩展
非关系型数据库的存储机制很多,比如k-v键值对,文档,图片等,对存数的数据格式要求很少,表结构也很灵活,方便扩展
3、可扩展性
sql型数据库横向扩展很难,不好对数据进行分片等,而nosql性能数据库天生就支持数据的水平扩展
4、数据一致性
由于他们基于的模式不同,对数据的一致性要求也就不尽相同,sql基于ACID模型,要求数据的强一致性,数据在存储过程中要求一直相同,而nosql基于的模型是CAP,要求的是数据最终一致性,不要求中间也要相同。