扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要为大家展示了“数据库中ACID理论和CAP理论的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中ACID理论和CAP理论的示例分析”这篇文章吧。
创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为乐东黎族企业提供专业的网站制作、成都网站建设,乐东黎族网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
事务(Transaction):
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。
ACID:RDBMS中的四个要素
ACID是只指数据库中事务正确执行的四个要素的缩小,包含原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。一个支持事务(Transaction)的数据库必须,必须满足这四个特性,否则在事务过程(Transaction Processing)中无法保证数据的正确性
原子性(Atomicity):
整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个阶段,事务执行过程中如果发生错误的话,会被会滚(Rollback)到事务开始之前的状态,就像这个事务从来没有执行过一样。
例子:
A给B转账100元
一致性(Consistency):
在事务开始之前和事务结束之后,数据库的完整性约束没有被破坏。
隔离性(Isolation):
隔离状态执行事务,使他们好像是系统在给定的时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时成为成为串行化,为了防止事务操作间的混淆,必须串行化或者序列化请求,使得在同一时间仅有一个请求用于同一数据。
持久性(Durability):
在事务完成以后,该事务对数据库的操作便持久性的保持在数据库中,并不会回滚。
事务的(ACID)特性是由关系数据库管理系统(RDBMS,数据库系统)来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。
目前主要有两种方式实现ACID:第一种是Write ahead logging,也就是日志式的方式。第二种是Shadow paging
CAP定理:
CAP定理又称CAP原则,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。CAP定理明确了分布式系统所能实现系统的局限性,目前互联网中的很多分布式系统是基于首要满足可用性和分区容忍性而设计的。
同时CAP原则是NoSql数据库的基石,是NOSQL的理论基础。
Consistency(一致性):
即数据一致性,简单的说,就是数据复制到了N台机器,如果有更新,要N机器的数据是一起更新的。
Availability(可用性):
每个请求都能接受到一个响应,无论响应成功或失败
Partition tolerance(分区容错性):
在大规模分布式数据系统中,网络分区现象,即分区间的机器无法进行网络通信的情况是必然发生的,所以系统应该能够在这种情况下仍然继续工作。
以上是“数据库中ACID理论和CAP理论的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流