数据库中ACID理论和CAP理论的示例分析

53次阅读
没有评论

共计 1660 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要为大家展示了“数据库中 ACID 理论和 CAP 理论的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“数据库中 ACID 理论和 CAP 理论的示例分析”这篇文章吧。

事务(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 理论的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计1660字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)