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

一、关系型数据库

采用关系模型来组织数据的数据库,关系模型就是:二维表格模型。一张二维表的表名就是关系,二维表中的一行就是一条记录(对应一个POJO类),二维表中的一列就是一个字段
在这里插入图片描述

1、优点:

  • 容易理解
  • 使用方便,通用的sql语言
  • 易于维护,丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。
    三范式能减低冗余

2、缺点:

  • 由于数据保存到磁盘当中,所以磁盘I/O是并发的瓶颈
  • 海量数据查询效率低。比如说多条数据中,查询其中的一条,效率很慢。
  • 横向扩展困难,无法简单的通过添加硬件和服务节点来扩展性能和负载能力,当需要对数据库进行升级和扩展时,需要停机维护和数据迁移
  • 多表的关联查询以及复杂的数据分析类型的复杂sql查询,性能欠佳。因为要保证acid,必须按照三范式设计。
    acid:原子性、一致性、持久性

3、数据库:

Orcale,Sql Server,MySql,DB2

二、非关系型数据库

非关系型,分布式,一般不保证遵循ACID原则的数据存储系统。键值对存储,结构不固定。

1、优点:

  • 根据需要添加字段,不需要多表联查。仅需id取出对应的value。比如存一个id,整个value就是一个POJO对象。而关系型数据库是一行好多个value值是一个POJO对象。
  • 适用于SNS(社会化网络服务软件。比如facebook,微博)
  • 严格上讲不是一种数据库,而是一种数据结构化存储方法的集合。

2、缺点:

只适合存储一些较为简单的数据
不合适复杂查询的数据
不合适持久存储海量数据。长时间存储大量的数据。

3、数据库:

K-V:Redis,Memcache
文档:MongoDB。value是一个JSON字符串。比如电商的内容管理(视频、图片)
搜索:Elasticsearch,Solr
可扩展性分布式:HBase

三、区别

关系数据类型存储格式:基本数据类型:int / char /。 是不会存储一个文档、图片。而非关系数据库类型就可以。

数据一致性和事务能力是什么?

让我们举一个转账的例子来说明:小明账户里有100元,小红账户里有100元,这个时候小明往小红账户里转100元。这个时候包含两个操作:
A.先再小明账户里减100元
B.然后再往小红账户里加100元
这两个操作组合起来,就成为了一个事务。

如果在转账的时候出现了问题,小明的钱没有转到小红的账户里面,那么就需要立马将各自的钱恢复如初,同步的操作。 那么:

  • 关系型数据库的强一致性就是:时间很快各自的钱恢复如初。缓冲器非常短
  • 非关系型数据库的最终一致性:时间略慢各自的钱恢复如初。缓冲时间略长
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值