ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

浅识ACID

2022-01-19 13:58:01  阅读:165  来源: 互联网

标签:200 事务 数据库 浅识 一致性 ACID 1000


文章目录


引言

ACID是关系型数据库事务的四大特性, 即原子性 (Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)

首先来看事务, 事务是一组原子性的sql执行单元, 要么全部执行成功(commit),要么全部执行失败(rollback)。而要保证事务的这种特性, 就必须借助于ACID。换一种说法, 借助于ACID, 关系型数据库的事务操作实现了CAP理论中的CA, 即一致性和可用性。


ACID特性

1.原子性(Atomicity)

单个事务,为一个不可分割的最小工作单元,整个事务中的所有操作要么全部commit成功,要么全部失败rollback,对于一个事务来说,不可能只执行其中的一部分SQL操作,这就是事务的原子性。

例如A和B原来分别有1000块钱, 现在A要去银行转账两百块给B。这个过程包含两个步骤:

  1. A: 1000-200=800
  2. B: 1000+200=1200

原子性可以保证这两个步骤一起成功,或者一起失败,不能只发生其中一个动作。


2.一致性(Consistency)

数据库总是从一个一致性的状态转换到另外一个一致性的状态。换句话说就是一致性保证了事务在执行完前,因为事务最终没有提交,所以事务中所做的修改也不会保存到数据库中,保证数据一致性。

还是上面的例子: A和B原来分别有1000块钱, 现在A要去银行转账两百块给B。这个过程包含两个步骤:

  1. A: 1000-200=800
  2. B: 1000+200=1200

一致性可以保证事务完成后,符合逻辑运算。


3.隔离性(Isolation)

同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。

比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。

4.持久性(Durability)

一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

举例: 操作前A:800,B:200 操作后A:600,B:400
如果在操作前(事务还没有提交)服务器宕机或者断电,那么重启数据库以后,数据状态应该为 A:800,B:200
如果在操作后(事务已经提交)服务器宕机或者断电,那么重启数据库以后,数据状态应该为 A:600,B:400

标签:200,事务,数据库,浅识,一致性,ACID,1000
来源: https://blog.csdn.net/qq_49723651/article/details/122578499

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有