非关系型数据库与关系型数据库的区别

当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。

非关系型数据库有 NoSql、Cloudant,mogondb。

一、非关系型数据库和关系型数据库比较:
非关系型数据库优点:
1)成本:非关系型数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。
2)查询速度:非关系型数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及非关系型数据库。
3)存储数据的格式:非关系型数据库的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。
非关系型数据库缺点:
1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。
3)不提供关系型数据库对事物的处理。

非关系型数据库的优势:

  1. 性能非关系型数据库是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高
  2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

关系型数据库的优势:1. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
2. 事务支持使得对于安全性能很高的数据访问要求得以实现。对于这两类数据库,对方的优势就是自己的弱势,反之亦然。

关系型数据库把所有的数据都通过行和列的二元表现形式表示出来。

关系型数据库的优势:

  1. 保持数据的一致性(事务处理)

2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)

  1. 可以进行Join等复杂查询

其中能够保持数据的一致性是关系型数据库的最大优势。

关系型数据库的不足:

不擅长的处理

  1. 大量数据的写入处理

  2. 为有数据更新的表做索引或表结构(schema)变更

  3. 字段不固定时应用

  4. 对简单查询需要快速返回结果的处理

大量数据的写入处理

读写集中在一个数据库上让数据库不堪重负,大部分网站已使用主从复制技术实现读写分离,以提高读写性能和读库的可扩展性。

所以在进行大量数据操作时,会使用数据库主从模式。数据的写入由主数据库负责,数据的读入由从数据库负责,可以比较简单地通过增加从数据库来实现规模化,但是数据的写入却完全没有简单的方法来解决规模化问题。

二、总结:
非关系型数据库:是以键、值对的形式存储的,数据之间没有耦合性,可以随时对某个字段进行修改,插入,删除。
关系型数据库:是以二维表结构存储的,不能随意插入某个字段,有一定的约束与关系的耦合性。

你可能感兴趣的:(数据库)