事务管理
事务(Transaction):
1、构成单一逻辑工作单元的操作集合
DBMS中的用户程序
DBMS外的可执行程序
对数据库的读/写操作序列
2、读
从数据库中读取数据,首先从磁盘中读到内存(Buffer Pool),然后赋给变量。
3、写
先完成内存中的数据复制,然后写入磁盘。
事务的特性-ACID:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的特性-原子性:
事务中的操作,要么全做成,要么都不做
事务是不可拆分的
事务必须以 Commit/Rollback 结束
事务的特性-一致性:
单独运行的事务,必须保证保持数据库的一致状态
从一个一致状态迁移到另一个一致状态
与原子性相关
事务的特性-隔离性:
多个并发事务之间不能相互干扰
并发不影响事务的执行
事务的特性-持久性:
一旦事务成功完成(Commit),它对数据库的更新应该是持久的
即使在写入磁盘之前,系统发生故障
在下次启动之后,也应保障数据更新的有效
事务及事务管理器:
恢复和并发控制是事务管理的重要组成部分
恢复管理部件负责保证事务的原子性与持久性
并发控制部件负责事务的并发控制机制,实现事务的隔离性与一致性
事务管理器实现事务的ACID
事务的提交与回滚:
提交( Commit
通知事务管理器一个逻辑工作单元已完成,所做的更新操作可以被提交或永久保留
表明事务成功地结束
执行有效性检验
回滚( RollBack)
通知事务管理器事务未能正常完成,数据库可能处于不一致状态,当前事务所做的所有更新操作必须撤消
表明事务不成功地结束
事务的状态:
活动状态(Active),初始状态,事务正在执行时处于此状态
部分提交状态,事务的最后一条语句被执行后
失败状态,发现正常的操作不能继续后
中止状态,事务回滚且数据库已恢复到事务开始时的状态
重启事务——不是由于内部逻辑错误导致的故障
杀死事务
提交状态,事务成功完成
事务的并发:
多个事务可能同时(交叉地)在系统中运行
提高处理器、磁盘的利用率
减少等待时间
多个事务并发运行,由事务管理器进行调度
可串行化调度
并发运行的结果,与事务按某一顺序串行运行的结果等同