事务是数据库管理系统执行过程中的一个逻辑单位,它包含了一组不可分割的数据库操作序列,这些操作要么全部成功执行,要么全部不执行。事务具有四个特征,简称ACID特性,具体如下:
- 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。例如,在银行转账操作中,从一个账户扣款和向另一个账户存款这两个操作必须作为一个事务,要么都完成,要么都不做,不能出现只扣款不存款或者只存款不扣款的情况。
- 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态是指数据库中的数据满足所有的完整性约束。例如,在转账事务中,转账前后两个账户的总金额应该保持不变,这就是一种一致性的体现。
- 隔离性(Isolation):多个事务并发执行时,一个事务的执行不能被其他事务干扰。每个事务都感觉不到系统中其他事务在并发地执行,就好像它是系统中唯一执行的事务一样。例如,在多个用户同时进行转账操作时,每个用户的转账事务应该相互隔离,不会相互影响。
- 持久性(Durability):一旦事务成功提交,它对数据库所做的修改就会永久保存到数据库中,即使数据库系统遇到故障也不会丢失。例如,当一个转账事务成功提交后,即使数据库所在的服务器突然断电,账户的余额变化也不会丢失。