关系型数据库和非关系型区别
当前主流的关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
非关系型数据库:
NoSql、Cloudant。
临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)
非关系型数据库的优势:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性,基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
4、成本低:nosql数据库部署简单,基本都是开源软件。
5、易于数据的分散,分布式数据库
各个数据之间存在关联是关系型数据库得名的主要原因,为了进行join处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散,这也是关系型数据库并不擅长大数据量的写入处理的原因。相反NoSQL数据库原本就不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。
缺点:
1、不提供关系型数据库对事物的处理。NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
关系型数据库的优势:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可以进行Join等复杂查询,可用于一个表以及多个表之间非常复杂的查询。
3. 事务支持使得对于安全性能很高的数据访问要求得以实现。
4. 由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
缺点(不擅长):
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。