关系型数据库的ACID规则
2024-09-24 15:43:15
1、A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
2、C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。
3、I (Isolation) 隔离性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。
4、D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
最新文章
- iOS 杂笔-25(不要用copy修饰NSMutableString)
- DeviceIoControl 应用层如何和驱动层通信?
- EF自动生成的模型edmx代码分析
- java杂记——数组拷贝
- salt进程查看插件&salt批量创建用户
- Bootstrap 表格和按钮
- TFS build dotCover StyleCop
- Why does uitableview cell remain highlighted?
- 软交换和IMS是什么关系
- C#“简单加密文本器”的实现
- tp框架之对列表的一系列操作及跳转页面(详细步骤)
- 对于mariadb安装后可以默认使用无密码登录的问题解决方案
- luogu P5301 [GXOI/GZOI2019]宝牌一大堆
- Gvim:unable to load python
- JavaScript 对象属性底层原理
- C#中struct和class的区别详解
- 洛谷P1414又是毕业季二题解
- thinkphp模板继承
- File类_常见的方法(获取,创建与删除,判断,重命名)
- C/C++.全文件名全路径名分割拆分分解
热门文章
- C语言函数重入
- Python设置默认编码为UTF-8
- JDK源码分析之concurrent包(四) -- CyclicBarrier与CountDownLatch
- Powershell Exchange Server UP Time
- Powershell About Active Directory Group Membership of a domain user
- shell输出颜色
- 定时备份DB和WEB文件
- <;2014 08 28>; 大学学习小结
- python基础之类的继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法
- tomcat和jboss的区别