【数据库概览】关系型到非关系型

来源:互联网 发布:java中的cgi 编辑:程序博客网 时间:2024/05/20 21:48

【关系型数据库】

<概念>

       关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。所谓关系模型,就是指二维表格模型,因而一个关系型数据库就是由二维表机器之间的联系组成的一个数据组织。当前主流的关系型数据库有:SQL Server、MySQL、Oracle、Access、DB2、PostgreSQL等。

<优点>

1.使用方便:标准数据查询语言SQL就是一种基于关系数据库的语言。

2.容易理解:现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。贴近生活,逻辑 易懂。

3.数据一致性维护:关系模型由关系数据结构、关系操作集合、关系完整性约束组成。所以,使得关系型数据库具有很好的完整性、数据一致性等。

4.事务性强:关系型数据库非常善于处理事务的更新操作,尤其是处理更新过程中复杂一致性的问题。

<不足>

1.不能有效的处理多维数据:关系数据库天生的二维表格特性使得不能很有效的处理多维数据。

2.不能有效处理互联网应用中半结构化和非结构化的海量数据:如音频、图片、视频等

3.高并发读写情况下性能低:一定规模下,关系型数据库非常容易发生思索等并发问题,每秒上万次的读写请求,导致读写能力下降。

4.不适于动态变更:关系型数据库需要在添加数据前先定义好模式,如你需要存储用户的姓名、性别、电话、地址等。如果开发过程中想做一下改动,就要进行反复的表结构变更。即便可以预先设定一下大量的预备字段,也是很麻烦。

【非关系型数据库】

<概念>

         NoSQL,泛指非关系型的数据库。典型的NoSQL数据库有:Memcached、ROMA、HBase、MongoDB、CouchDB、Flare、Todyo Cabinet、ThruDB、Cassandra、Redis等。

<优势>

        对非关系型数据库没有特别明确的定义,但是NoSQL恰恰弥补了之前所列举的关系型数据库的不足之处。且都有这样的普遍特征:

1.不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。

2.无共享架构:将数据划分后存储在各个本地服务器上,因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能。

3.弹性可扩展:可以在系统运行时,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。

4.大数据量,高性能:NoSQL数据库都具有非常高的读写性能,尤其在大数据量方面。

<劣势>

1.兴起时间短,不提供SQL支持,学习和使用成本较高。

2.无事务处理

【总结】

       关系型和非关系型数据库都有各自的优缺点和各自合适的应用场景,并不对立,反而能够相辅相成,让关系型数据库更好的实现关系,让非关系型更好的实现存储。


0 0
原创粉丝点击