一、SQL
遵循ACID原则
二、NoSQL
遵循 CAP原则 :分布式系统只能满足此三项中的两项而不可能满足全部三项
C :一致性(Consistency)(所有节点在同一时间具有相同的数据)
A :可用性(Availability)(保证每个请求不管成功或者失败都有响应)
P :分区容忍性(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作)
补充1:
一致性有两种类型:
(1)strong consistency – ACID(Atomicity Consistency Isolation Durability):对于关系型数据库,要求更新过的数据能被后续所有的访问都看到,这是强一致性。
(2) weak consistency – BASE(Basically Available Soft-state Eventual consistency),弱一致性有以下三种:
-- Basically Available - system seems to work all the time (基本可用)
-- Soft State - it doesn't have to be consistent all the time (不要求所有时间都一致)
-- Eventually Consistent - becomes consistent at some later time ( 最终一致性 )
补充2:
对于分布式数据系统(scale out),分区容忍性是基本要求,否则就失去了价值。
因此只能在一致性和可用性上做取舍,如何处理这种取舍正是目前NoSQL数据库的核心焦点。
几乎所有的情况都是牺牲一致性而换取高可用性。
当然,牺牲一致性, 只是不再要求关系数据库中的强一致性,而是只要系统能达到最终一致性即可。
考虑到客户体验, 这个最终一致的时间窗口,要尽可能的对用户透明 ,也就是需要保障“ 用户感知到的一致性 ”。
通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的。
遵循ACID原则
二、NoSQL
遵循 CAP原则 :分布式系统只能满足此三项中的两项而不可能满足全部三项
C :一致性(Consistency)(所有节点在同一时间具有相同的数据)
A :可用性(Availability)(保证每个请求不管成功或者失败都有响应)
P :分区容忍性(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作)
补充1:
一致性有两种类型:
(1)strong consistency – ACID(Atomicity Consistency Isolation Durability):对于关系型数据库,要求更新过的数据能被后续所有的访问都看到,这是强一致性。
(2) weak consistency – BASE(Basically Available Soft-state Eventual consistency),弱一致性有以下三种:
-- Basically Available - system seems to work all the time (基本可用)
-- Soft State - it doesn't have to be consistent all the time (不要求所有时间都一致)
-- Eventually Consistent - becomes consistent at some later time ( 最终一致性 )
补充2:
对于分布式数据系统(scale out),分区容忍性是基本要求,否则就失去了价值。
因此只能在一致性和可用性上做取舍,如何处理这种取舍正是目前NoSQL数据库的核心焦点。
几乎所有的情况都是牺牲一致性而换取高可用性。
当然,牺牲一致性, 只是不再要求关系数据库中的强一致性,而是只要系统能达到最终一致性即可。
考虑到客户体验, 这个最终一致的时间窗口,要尽可能的对用户透明 ,也就是需要保障“ 用户感知到的一致性 ”。
通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的。