关系型数据库和非关系型数据库的区别
关系型数据库
关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说,关系型数据库是由多张能互相连接的表组成的数据库。
优点
1.便于理解:二维表构造非常贴近逻辑;
2.应用方便:支持通用的SQL(结构化查询语言)语句;
3.易于维护:全部由表结构组成,文件格式一致;
4.复杂操作:可以用SQL句子多个表之间做非常繁杂的查询;
5.事务管理:促使针对安全性性能很高的数据信息浏览规定得到完成。
缺点
1.读写性能差,尤其是海量信息的效率高读写能力;
2.固定不动的表构造,灵便度稍欠;
3.高并发读写时,硬盘I/O存在瓶颈;
4.可扩展性不足,不像web server和app server那样简单的添加硬件和服务节点来拓展性能和负荷工作能力。
常见的关系型数据库有 Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access 和 MySQL 等.
非关系型数据库
指非关系型的,分布式系统的,且一般不确保遵照ACID标准的数据储存系统。
非关系型数据库算是一种数据结构化储存的集合,可以是文档或键值对等。
非关系型数据库的本质是传统关系型数据库的功能阉割版本,通过去掉不需要的功能来提高性能。
非关系型数据库的类型:
1.键值储存数据库
2.列储存数据库
3.文档型数据库
4.图数据库
优点
1.格式灵活:数据存储格式非常多样,应用领域广泛,而关系型数据库则只适用基础的关系模型。
2.性能优越:NOSQL是根据键值对的,不用历经SQL层的分析,因此 性能非常高。
3.可扩展性:基于键值对,数据之间耦合度极低,因此容易水平扩展。
4.低成本:非关系型数据库部署简易,且大部分可以开源使用。
缺点
1.不支持sql,学习和运用成本比较高;
2.无事务处理机制;
3.数据结构导致复杂查询不容易实现。
常见的非关系型数据库有 Neo4j、MongoDB、Redis、Memcached、MemcacheDB 和 HBase 等。
关系型与非关系型数据库的区别:
成本:Nosql数据库易部署,不用像Oracle那般花费较高成本选购。
查询速率:Nosql数据库将数据储存于缓存当中,不用历经SQL层的分析;关系型数据库将数据储存在电脑硬盘中,查询速率远不如Nosql数据库。
储存格式:Nosql的储存文件格式是key,value方式、文本文档方式、照片方式这些,能储存的对象种类灵活;关系数据库则只适用基础类型。
可扩展性:关系型数据库有join那样的多表查询机制限定造成拓展性较差。Nosql依据键值对,数据中间沒有耦合度,因此容易水平拓展。
数据一致性:非关系型数据库注重最终一致性;关系型数据库注重数据整个生命周期的强一致性。
事务处理:SQL数据库支持事务原子性粒度控制,且方便进行事务回滚;NoSQL也支持事务处理,但可靠性不足,其价值在于可扩展性和大数据量处理。
如何确定你要使用什么数据库:
1.你要处理的数据在使用行和列来表示更合适就用关系型数据库;更适合储存在一个灵活的空间里就用非关系型数据库。
2.数据集小/中等,需要进行密集的读/写操作,就用关系型数据库,需要灵活更改数据类型就用非关系型数据库。