事务处理技术包括数据库恢复技术和并发控制技术。
事物的基本概念
-
定义:用户定义的一个数据库操作序列,是一个不可分割的工作单位。
-
特点:操作要么全做,要么全不做。
-
事物与程序的区别:一般来说,一个程序中包含多个事物。
-
定义事物的语句(在SQL中):
- BEGIN TRANSACTION:开始
- COMMIT:提交事物的所有操作
- ROLLBACK:事物运行过程中发生故障,撤销全部操作,回滚到事物开始时的状态
- ACID特性
- A:原子性(Atomicity)
- C:一致性(Consistency)
- I:隔离性(Isolation)
- D:持久性(Durable)
故障种类
- 事物内部的故障:可预期的事物故障和非预期的事务故障
-
非预期的事务故障,如,运算溢出,并发事务发生死锁而被选中撤销该事物,违反某些完整性限制而被终止
-
恢复操作:UNDO(撤销),用于抹除内存数据,修改磁盘的数据(改回事物开始时的数据)
- 系统故障(属于软故障),如CPU故障,操作系统故障,DBMS代码错误,系统断电。分为未完成事物和已完成事物,即发生故障时是否修改磁盘上的事物。
- 恢复操作:未完成事物采用UNDO(撤销);已完成事物采用REDO(重做)
-
介质故障(属于硬故障),如,磁盘损坏,磁头碰撞。可能性最小,破坏性最大,修复需要数据库管理员的介入。
-
计算机病毒
恢复的基本原理
-
建立冗余数据:数据转存和登记日志文件。
-
数据转储:数据库管理员定期讲整个数据库复制到磁带,磁盘等存储介质上保存起来的过程。有两种状态,静态转存和动态转存;两种方式,海量转存和增量转存。
-
静态转储:转储期间不允许对数据库的任何存储和修改活动。优点,简单。缺点,降低数据库的可用性。
-
动态转储:转储期间允许对数据库进行存取和修改。必须建立日志文件,将转储过程中各事物对数据库的修改活动登记下来。
-
海量转储:每次转储全部数据库
-
增量转储:每次只转储上一次转储后更新过的数据。
-
数据转储方法有四类,动态海量转储,动态增量转存,静态海量转储,静态增量转储。
- 登记日志文件
-
日志文件是用来记录事物对数据库的更新操作的文件
-
作用:
-进行事物故障恢复和系统故障恢复;
-动态转储(必须建立日志文件);
-静态转储(可以建立) -
必须遵守的两条原则:
-登录的次序必须严格按照并发事物执行的时间顺序;
-必须先写日志文件,后写数据库