# 数据库恢复技术
## 什么是事务
### 事务(Transaction)是用户定义的一个数据库操作序列，这些操作要么全做，要么全不做，是一个不可分割的工作单位
### 事务和程序是两个概念
* 在关系数据库中，一个事务可以是一条SQL语句，一组SQL语句或整个程序
* 一个应用程序通常包含多个事务
### 事务是恢复和并发控制的基本单位
## 事务结束
### COMMIT
* 事务正常结束   
* 提交事务的所有操作（读+更新）
* 事务中所有对数据库的更新永久生效
### ROLLBACK
* 事务异常终止
    * 事务运行的过程中发生了故障，不能继续执行
    * 回滚事务的所有更新操作
    * 事务滚回到开始时的状态
## 事务的特性(ACID特性)
### 原子性（Atomicity）
* 事务是数据库的逻辑工作单位
* 事务中包括的诸操作要么都做，要么都不做
### 一致性（Consistency）
* 事务执行的结果必须是使数据库从一个   一致性状态变到另一个一致性状态
* 一致性状态：
    * 数据库中只包含成功事务提交的结果
* 不一致状态：
    * 数据库中包含失败事务的结果
### 隔离性（Isolation）
* 对并发执行而言一个事务的执行不能被其他事务干扰

* 一个事务内部的操作及使用的数据对其他并发事务是隔离的
* 并发执行的各个事务之间不能互相干扰
### 持续性（Durability ）
* 持续性也称永久性（Permanence）
* 一个事务一旦提交，它对数据库中数据的改变就应该是永久性的。
* 接下来的其他操作或故障不应该对其执行结果有任何影响。
## 故障
### 故障原因
* 计算机硬件故障
* 系统软件和应用软件的错误
* 操作员的失误
* 恶意的破坏
### 故障的影响
* 运行事务非正常中断
* 破坏数据库
### 故障的种类
* 事务故障
* 系统故障
* 介质故障
* 计算机病毒
## 恢复操作的基本原理
### 恢复操作的基本原理：冗余
### 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据
## 恢复的实现技术
### 数据转储（backup）
### 登录日志文件（logging）
*XMind: ZEN - Trial Version*