事务特性(ACID):
1. 原子性:事务是原子的,要么都做,要么都不做。
2. 一致性:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性的状态。因此,当数据库只包含成功事务提交的结果时,称数据库处于一致性状态。
3. 隔离性:事务相互隔离,当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
4. 持续性:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。
封锁协议:
共享锁(S锁):若事务T对数据对象A添加了S锁,则只允许T读取A,但不能修改A。并且其他事务只能对A加S锁,不能加X锁。
排他锁(X锁):若事务T对数据对象A添加了X锁,则只允许T读取和修改A,其他事务不能再对A加任何锁。
并发产生的问题:
丢失更新, 不可重复读,读“脏”数据