数据库ACID和CAP理论
数据库ACID和CAP理论
1、ACID是RDBMS的理论基石;
A原子(Atomiclty )事务原子性;
C一致(Consistency)插入一张表数据,会影响其它(索引/其它表)等一致。
I 隔离性(ioslation)事务独立,封闭;隔离性强度;
D持久性(Durabilty)数据永存。
对应分布式数据库,某些业务不需全部一致性事务,可采用弱化其中之一,提供其它响应速度等。
理解:
A 事务原子性,指对一个事务要么完全提交要么完全回滚,保证提交成功的给数据库的和外部反应的一致。或者提交不成功,完全回滚,数据库完全没反应于外部。这种事务原子保证了现实生活很多业务现象的合理。例如:银行存款,如果确定成功存入,数据库必须完整修改。如果存入失败,数据库必须完全回滚。不能在数据库只存一半或回滚一半。
C 事务一致性:一个事务执行前和执行后在数据库必须保证一致状态;例如:表a和表b有主外键约束,更新a,级联b值需要保持一致性更新。
I 是事务的隔离性 ,事务的隔离有4个级别(read Uncommitted,read committed ,rapeatable read,可串行)数据库为了防止出现数据库读取不一致,可设置不同等级的事务的隔离性;
D、 持久性 :在事务完成以后,数据持久的保存在数据库之中,并不会被回滚。
2、
著名 CAP理论:在分布式数据库应用中,任何分布式系统只可同时满足CAP其中两点,无法三者兼顾。
Consistency(一致性), 数据一致更新,所有数据变动都是同步的。
Availability(可用性), 好的响应性能。
Partition tolerance(分区容错性) 可靠性。
CA 系统是要求高可用用并且实时一致性。单点数据库是符合这种架构的,例如超市收银系统,图书管理系统。
AP 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。例如博客系统。
CP 系统是要求满足一致性,分区容忍性,通常性能不是特别高。例如火车售票系统。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。
3、 最终一致性的系统是符合AP理论架构,对可用和分区容错要求较高,对数据实时一致要求较低。网络论坛或weibo的系统架构都符合最终一致性的应用。
4、数据库中间件服务时是对分布式数据库的一个管理系统,其中负载均衡和扩展性相对来说是它的核心所在。