SQL和NoSQL的区别

一、CAP理论

Condidtency            一致性
Availbaility    	   可用性
Partition Tolerance    分区容错性

数据库最多支持3个中的两个

在这里插入图片描述

二、SQL(RDBMS)

(一)首先了解两个概念:

事务:

事务:保持逻辑数据一致性与可恢复性,必不可少的利器。
	
	什么是保持逻辑数据的一致性和可恢复性?
		假如你要执行两条sql语句来修改原始数据,但是其中一条没有执行成功,那么事务就会回滚,将数据恢复到修改之前的状态,
		另外一条语句肯定不会执行,确保关系逻辑的一致性。
	
	举一个生活中具体的例子:银行的转账:
			你去银行转账,你向一个账户转了5000元,那么另外那个账户就会多5000元,你的账户就会少5000元,
			假如你这一边转账失败或者对方失败,那么这个就没有执行成功,事务就会回滚,恢复账户内原始的余额,
			确保原始数据的一致。

事务:具有原子性,一致性,隔离性,持久性。
	原子性:事务要么全部执行成功,要么全部不执行。
	一致性:事务结束的时候,所有的内部数据都是正确的。
	隔离性:并发多个事务时,各个事务不干涉内部数据,处理的都是另外一个事务处理之前或之后的数据。
	持久性:事务提交之后,数据是永久性的,不可再回滚。

锁:

锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写。
	 
	 例如:在多用户都用事务同时对数据进行增删改操作时,另外用户进行读取时,就会造成数据读写异常:
	
	然而锁定,就是为解决这些问题所生的,他的存在使得一个事务对他自己的数据块进行操作的时候,而另外一个事务则不能插足这些数据块。这就是所谓的锁定。分为:
		共享锁(S):还可以叫他读锁。可以并发读取数据,但不能修改数据。也就是说当数据资源上存在共享锁的时候,所有的事务都不能对这个资源进行修改,直到数据读取完成,共享锁释放。
排它锁(X):还可以叫他独占锁、写锁。就是如果你对数据资源进行增删改操作时,不允许其它任何事务操作这块资源,直到排它锁被释放,防止同时对同一资源进行多重操作。

(二)、SQL特点:

事务:继承了CAP理论中的C和A:

	强一致性:
		锁:
			默认查询:不加锁
			可以添加锁:select ... lock in share mode/
			增删改查:自动加行锁(独占锁)
		
		事务:ACID
			开启事务:(关闭自动提交)-->commit/bollback
			Atomic
			Consistenct
			Isolated
			Durable

三、 NoSQL

(一)、NoSQL:非关系型数据库

特点:自由扩展:基于Hadoop[列式存储]数据库
		告诉读写:block(块)  cache/bloom filter
		 最终一致性:中间过程的数据不强制要求,最后结果一致

基于CAP理论:非关系型数据库的一个重要特性就是分区容错
			 P
		   /   \	
		 C       A
	    /         \
	HBase     	  Dynamo
	Big Table     CouchDB
	MongDB        Cassandra
	Redis         Voldemort
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值