事务(Transaction)
对数据库一系列操作的集合。
事务的特性(ACID)
原子性(Atomicity):事务中的所有操作要么都执行完(然后全部提交),要么一个都不执行(全部回滚)。事务中的操作不可部分执行,更不可分割。
一致性(Consistency):事务运行结果不改变数据库中的数据一致性。例如“转账”事务,转账前后两个账户的余额总计是不变的。
隔离性(Isolation):事务并发运行过程中,一个事务不能被其他事务或操作干扰。同时执行的事务之间不能互相影响。
持久性(Durability):指事务运行完毕并成功提交后,其对数据库的所有操作结果应永久保留。以后运行的其他事务、操作甚至系统故障、意外情况等均不会影响该事务的运行结果,除非其他事务或操作更新相关数据。
调度(Schedule)
指事务的执行顺序。多个事务依次执行称为事务的串行调度(Serial Schedule);多个事务同时执行称为事务的并发调度(Concurrent Schedule)。多个事务并发调度的执行结果与它们串行调度的执行结果一致,则这个并发调度被称为“可串行化调度”(Serializable Schedule)。
冲突(Conflict)
如果事务调度中的两个操作交换执行顺序会改变它们所属的事务运行结果,则这两个操作冲突。
共有如下两种冲突情况:(1)同一事务的任何两个操作之间都是冲突的,无论这两个操作的数据对象是否相同,无论这两个操作是读还是写;(2)不同事务对同一数据对象,只要有任一操作涉及到写就一定冲突。