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

1.关系型数据库

1.1 概念

  关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。
  主要代表SQL server,Oracle,Mysql

1.2 优点

  1.容易理解,二维表的结构非常贴近现实世界
  2.使用方便,使用sql语句使得操作关系型数据库非常方便
  3.易于维护,数据库的ACID属性,大大降低了数据的冗余和数据不一致的问题

1.3 瓶颈

  1.海量数据的读写效率
  对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘IO是一个很大的挑战
  2.高扩展性和高可用性
  在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web server那样简单的通过添加更多的硬件和服务结点来拓展性能和负载能力。

2.从关系型到非关系型

  关系型数据库的最大优点就是事务的一致性,这个特性,是的关系数据库可以适用于一切要求一致性比较高的系统中。比如银行系统

  但是在网页应用中,对这种一致性的要求不是那么严格,允许有一定的时间间隔,所以非关系型数据库这个特点不是那么重要了。相反,关系型数据库为了维护一致性所付出的巨大代价就是读写性能较差。而像微博、facebook这类应用,对于并发读写能力要求极高,关系型数据库已经无法应付。所以必须用一种新的数据结构存储来代替关系型数据库。所以非关系型数据库出现了。

3.非关系型数据库

3.1概念

  NoSQL非关系型数据库,主要是指那些非关系的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CounchDB。
  NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据中,需要进行多表查询。仅仅需要根据key来取出相应的value值即可。

3.2分类

  非关系型数据库大部分是开源的,实现比较简单,大都是针对一些特性的应用需求出现。根据结构化方法和应用场景的不同,分为一下几类。
  1.面向高性能并发读写的key-value数据库
  主要特点是具有极高的并发读写能里,例如Redis,Tokyo Cabint等
  2.面向海量数据访问的面向文档数据库
  特点是,可以在海量的数据库快速查询数据。例如MongoDb以及CouchDB
  3.面向可拓展的分布式数据库
  解决的主要问题是传统数据库的扩展性上的缺陷

3.3 缺点

由于NoSQL的约束少,所以不能够像sql哪样提供where字段属性的查询。因此适合存储较为简单的数据。

4.对比

4.1 存储上

  关系型数据库是以表格的形式进行存储的,而非关系型数据库是以key-value的形式存储的

4.2 事务

  关系型数据库汇总有事务的概念,而非关系型数据库中没有,它的每一个数据集都是原子级别的

4.3 数据集

  关系型数据库的是表格型的,存储在数据表的行和列中,彼此关联,容易提取。而非关系型是大块存储的再一起的。

4.4 结构

  关系型数据库的结构是预先定义好的的,例如主键、索引、外键等,定义好这些结构之后才能添加数据。
  在非关系型数据库中,数据可以在任何时候任何地方添加。不需要预先定义。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Listen·Rain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值