前言:
在咱们的平常开发中,关系型数据库和非关系型数据库的使用已是一个成熟的软件产品开发过程当中必不可却的存储数据的工具了。那么用了这么久的关系数据库和非关系型数据库大家都知道他们之间的区别了吗?下面咱们来详细的介绍一下。
关系型数据库(SQL):
什么是(SQL)关系型数据库:
关系型数据库指的是使用关系模型(二维表格模型)来组织数据的数据库。
什么是关系模型:
关系模型能够简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
常见关系型数据库管理系统(ORDBMS):
-
Oracle
-
MySql
-
Microsoft SQL Server
-
SQLite
-
PostgreSQL
-
IBM DB2
关系型数据库的优点:
-
采用二维表结构很是贴近正常开发逻辑(关系型数据模型相对层次型数据模型和网状型数据模型等其余模型来讲更容易理解);
-
支持通用的SQL(结构化查询语言)语句;
-
丰富的完整性大大减小了数据冗余和数据不一致的问题。而且所有由表结构组成,文件格式一致;
-
能够用SQL句子多个表之间作很是繁杂的查询;
-
关系型数据库提供对事务的支持,能保证系统中事务的正确执行,同时提供事务的恢复、回滚、并发控制和死锁问题的解决。
-
数据存储在磁盘中,安全可靠。
关系型数据库存在的不足:
随着互联网企业的不断发展,数据日益增多,所以关系型数据库面对海量的数据会存在不少的不足。
-
高并发读写能力差:网站类用户的并发性访问很是高,而一台数据库的最大链接数有限,且硬盘 I/O 有限,不能知足不少人同时链接。
-
海量数据状况下读写效率低:对大数据量的表进行读写操做时,须要等待较长的时间等待响应。
-
可扩展性不足:不像web server和app server那样简单的添加硬件和服务节点来拓展性能和负荷工做能力。
-
数据模型灵活度低:关系型数据库的数据模型定义严格,没法快速容纳新的数据类型(须要提早知道须要存储什么样类型的数据)。
非关系型数据库(NOSQL):
什么是(NOSQL)非关系型数据库:
非关系型数据库又被称为 NoSQL(Not Only SQL ),意为不单单是 SQL。一般指数据以对象的形式存储在数据库中,而对象之间的关系经过每一个对象自身的属性来决定,经常使用于存储非结构化的数据。
常见的NOSQL数据库:
-
键值数据库:Redis、Memcached、Riak
-
列族数据库:Bigtable、HBase、Cassandra
-
文档数据库:MongoDB、CouchDB、MarkLogic
-
图形数据库:Neo4j、InfoGrid
非关系型数据库的优点:
-
非关系型数据库存储数据的格式能够是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景普遍,而关系型数据库则只支持基础类型。
-
速度快,效率高。 NoSQL 可使用硬盘或者随机存储器做为载体,而关系型数据库只能使用硬盘。
-
海量数据的维护和处理很是轻松,成本低。
-
非关系型数据库具备扩展简单、高并发、高稳定性、成本低廉的优点。
-
能够实现数据的分布式处理。
非关系型数据库存在的不足:
-
非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
-
非关系数据库没有事务处理,没法保证数据的完整性和安全性。适合处理海量数据,可是不必定安全。
-
功能没有关系型数据库完善。
-
复杂表关联查询不容易实现。