什么是事务
数据库几乎是所有系统的核心模块,它将数据有条理地保存在储存介质(磁盘)中,
并在逻辑上,将数据以结构化的形态呈现给用户。支持数据的增、删、改、查,并在过程中保障数据的正确且可靠。
要做到这点并非易事,常见的例子就是银行转账,A账户给B账户转账一个亿(T1),买一块地盖房子。在这种交易的过程中,有几个问题值得思考:
- 如何同时保证上述交易中,A账户总金额减少一个亿,B账户总金额增加一个亿? A
- A账户如果同时在和C账户交易(T2),如何让这两笔交易互不影响? I
- 如果交易完成时数据库突然崩溃,如何保证交易数据成功保存在数据库中? D
- 如何在支持大量交易的同时,保证数据的合法性(没有钱凭空产生或消失) ? C
要保证交易正常可靠地进行,数据库就得解决上面的四个问题,这也就是事务
诞生的背景,它能解决上面的四个问题,对应地,它拥有四大特性:
- 原子性(Atomicity): 事务
要么全部完成,要么全部取消
。 如果事务崩溃,状态回到事务之前(事务回滚&#