没有合适的资源?快使用搜索试试~ 我知道了~
数据库的保护
需积分: 10 16 下载量 175 浏览量
2008-05-11
10:56:43
上传
评论
收藏 116KB DOC 举报
温馨提示
试读
33页
数据库的保护和防注入
资源详情
资源评论
资源推荐
数据库的保护
一 ,数据库的事务的概念
数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态
(也称完整状态或一致状态)的功能,这就是数据恢复。
数据恢复是由数据库管理系统的恢复子系统来完成的。
提交和回滚
1.工作区
SQL 为维护数据的一致性,为每个用户设置了一个临时工作区,所有对
数据的增、删、改操作,都在这个工作区中进行,而不影响真实的数据库。
将工作区中的数据写入真实的数据库,使数据库操作永久化。
2. 提交
数据库操作永久化有三种方式:
(1)显式提交 :用户发一个 SQL 指令:commit 完成提交。
(2)隐式提交 :一些 SQL 命令执行后自动执行一个 commit 命令完成提
交 ( CREATE , ALTER , DROP , GRANT , REVOKE )
(3)自动提交 :SQL 中有一个自动提交开关 AUTO commit ,如果该
开关设置为“开”状态,所有数据操作立即提交。
Commit 操作表示事务的成功结束。此时告诉系统,数据库要进入一个新
的正确状态,该事务堆数据库的所有更改已交付实施。
3. 回滚 rollback
rollback 操作表示事务不成功的结束,此时告诉系统,已发生错误,数据
库可能处在不正确的状态。
本文档共有 33 页 ,本页为第 1 页
该事务对数据库的更新必须撤销,数据库应恢复该事务到初始状态。使工
作区恢复到最近一个 commit 的状态。
4. 事务的概念
事务是并发控制的单位,是一个操作序列。这些操作要么都作,要么都不
做。是一个不可分割的工作单位。
事 务 通 常 是 以 BEGIN TRANSACTION 开 始 , 以 COMMIT 或
ROLLBACK 操作结束。 COMMIT 即提交,提交事务的所有操作,事务正常结
束。
ROLLBACK 则撤销所有的操作,滚回到事务开始时的状态,这里的操作
是指数据库的更新操作。
事务是对数据库操作的最小单位,可能有一条或多条 SQL 命令构成。
目的是避免数据库进行共享操作时出现的矛盾性,修改消失等问题。
减少读写盘次数,维护数据的一致性。提交资源利用率。
二 ,事务的性质 :原子性、一致性、隔离性、持久性。
(1)原子性 atomicity
是保证数据库系统完整性的基础。一个事务中对数据的操作是一个不可
分割的操作序列
保证原子性是数据库系统的职责,是由 DBMS 的事务管理子系统来完成
的。
(2)一致性 consistency
一个事务的执行结果将保证数据库的一致性,即数据库不会因为事务的
本文档共有 33 页 ,本页为第 2 页
执行而遭受破坏。这个性质是由编写事务程序的程序员来完成,也可由系统测
试完整性约束自动完成。
(3)隔离性 isolation
隔离性要求在并发事务被执行时,系统应保证这些事务并发执行的结果
如同事务在单用户环境下执行的结果一样。
隔离性是由 DBMS 并发控制子系统实现的。
(4)持久性 durability
要求对数据库的全部操作完成后,事务对数据库的所有更新应永久的反
映在数据库中;
持久性是由 DBMS 的恢复管理子系统实现的。
事务的原子性、一致性、隔离性、持久性 合称为事务的 ACID 性质。
并发和并行
并发是指多个事务利用分时技术在同一 CPU 上分段执行
并行则是指多个事务在不同的 CPU 上同时执行
事务和程序
事务和程序是两个概念,一般讲,程序可以包含多个事务。
三、 故障类型和恢复方法
故障类型可分为 事务故障、系统故障、介质故障
(1)事务故障:
A 可预期的事务故障 :应用程序可以发现,并且可以利用 rollback 撤销,
恢复数据库到正确状态。
B 不可预期的事务故障:不能由事务程序处理,如运算溢出、并发操作
发生死锁而被选中撤销等。
本文档共有 33 页 ,本页为第 3 页
事务故障意味着 事务没有达到预期的终点(commit 或 rollback),因此
数据可能处于不正确的状态。系统就要强行回滚 rollback 此事务,也即撤销该
事务对数据库所作的修改,使得该事务就像没有发生一样。
(2)系统故障 也称为软故障 ,soft crash
是指造成系统停止运砖的任何事件,使得系统要重新启动,如 CPU 故障,
OS 故障,突然停电等。
这类故障不破坏数据库,但影响所有正在运行的事务,尤其是数据缓冲区
的数据全部丢失,使得运行的事务可能处于不正确状态,恢复子系统必须在重
启的时候,让所有未完成的事务滚回,把数据库恢复到正确状态。
(3)介质故障 也称为硬故障 hard crash
介质故障指的是外存的故障,如磁盘的磁头碰撞,瞬时的强磁场干扰。
这类故障破坏数据库或部分数据库数据,并影响正在存取的这部分数据的所有
事务。
硬故障发生的几率较小,但破坏性最大。可以通过 DBMS 把其他备份磁
盘或第三级介质中的内容在复制回来。
对数据库的影响有两种可能:
(1)数据自身被破坏。
(2)数据库没有被破坏,但数据可能不正确。
数据库恢复的基本原理很简单,就是冗余 ,也就是说,数据库中的任何
部分数据,可以从存储在别处的冗余数据来重建。
数据库恢复常用的两种方法: 转储 (备份)、登记日志文件。
本文档共有 33 页 ,本页为第 4 页
冗余 :数据的重复存储。
静态转储:停止数据库的一切操作,而进行的存储。
动态转储:不停止数据库的操作,而进行的转储。
海量转储:把数据库中的所有内容复制下来。
增量转储:把上一次转储以后发生改变的数据拷贝下来,其他的保持不变。
恢复
如果数据库已被破坏,则由 DBA 装入最近备份的数据库,然后利用日志
文件执行 “redo” 操作。
如果数据库未被破坏,但有些数据不可靠,则系统会自动执行“undo”操作,
恢复数据。
Redo 正向扫描日志文件,重做一次更新 (主要是事务故障)
Undo 反向扫描日志文件,撤销对数据库的更新操作,是数据库恢复到更
新前的状态。(主要是系统故障)
五 ,运行记录优先原则
运行记录优先原则是:“先记录再更新,先记完再结束”。
在数据库系统中,写一个修改到数据库中和写一个表示这种修改的登记记
录到日志文件中是两个不同的操作。
为了避免在完成这两个操作时,由于发生故障而破坏数据库的一致性,应
将运行记录先写下来,这就是“运行记录优先原则”。
运行记录优先原则又两点:
(1)至少要等到相应的运行记录已经写入日志文件后才允许事务向数据
本文档共有 33 页 ,本页为第 5 页
剩余32页未读,继续阅读
x37623412
- 粉丝: 1
- 资源: 40
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0