第四章数据库管理系统与数据库保护

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
4.1.1 事务
事务(Transaction)是数据库环境中的一个逻辑工作单元。 事务由一系列的操作序列构成的程序执行单元,这些操作要 么全部成功完成,要么全部失败,即不对数据库留下任何影 响。事务是数据库系统工作的基本单位,既是保持数据库完 整性约束或逻辑一致性的单位,又是数据库恢复的单位。事 务的概念相当于操作系统中的进程。
4.1.4 更新事务的执行与恢复
涉及插入、删除和修改等操作的事务统称更新事务,数据 库管理系统必须确保其原子性和一致性。 1.更新事务的执行
为了确保事务的原子性和一致性,更新事务在活动状态 下对数据库的任何修改都不能直接在磁盘中进行,而只能在 内存缓冲区中进行。
15
4.1.4 更新事务的执行与恢复
第4章 数据库管理系统 与数据库保护
1
主要内容:
4.1 事务处理 4.2 数据库的故障与恢复 4.3 并发控制 4.4 数据库的完整性 4.5 数据库的安全性
2
4.1 事务处理
保持数据的一致性与稳定性是正确使用数据库 的关键。 4.1.1 事务 4.1.2 事务的性质 4.1.3 事务的状态 4.1.4 更新事务的执行与恢复
(3)隔离性(Isolation) 系统必须保证事务不受其它并发执行事务的影
响。 多个并发事务之间不能相互干扰 并发不影响事务的执行。
隔离性通过DBMS并发控制子系统实现。
8
4.1.2 事务的性质
(4)持久性(Durability) 事务的持久性是指一个事务的成功完成之后,其工作的
结果就会永远保存在数据库中,是永久有效的,即使随后系 统发生故障,也能保持或恢复。 一旦事务成功完成(Commit),它对数据库的更新应该是持久 的 即使在写入磁盘之前,系统发生故障 在下次启动之后,也应该保障数据更新的有效 持久性通过DBMS恢复管理子系统实现。
完整性检查可以分为以下几种:
(1)在事务的每个维护操作(插入、删除、修改)执行
后检查完整性,如果这时查出完整性受到破坏,则将该事务
转为失败状态。这样的完整性约束称为立即约束
(Immediate Constraint)。
(2)在整个事务完成之后检查完整性,这种完整性约束
称为延迟约束(Deferred Constraint)。 (3)在事务的某些特定点检查完整性,这样的点称为检
5
4.1.2 事务的性质
事务具有以下4个重要特性,通常称为ACID性质。 (1)原子性(Atomicity) 从终端用户(End-User)的角度看,事务是不可再分的
原子工作。 从系统的角度看,事务是完成某件原子工作的程序的一
次执行。它要么全部成功地完成;要么全部不完成,对数据 库毫无影响。(nothing or all)原则。 事务必须以Commit/Rollback结束。
9
4.1.2 事务的性质
对数据库的访问是建立在读和写两个操作的基础上。 read(X):从数据库传送数据项X到事务的工作区。 write(X):从事务的工作区中将数据项X写回数据库。
10
4.1.2 事务的性质
举例: 银行转帐:事务Ti从帐户A过户100¥到帐户B。 T: read(A); A=A-100; write(A); read(B) B=B+100; write(B); read(X):从数据库传送数据项X到事务的工作区。 write(X):从事务的工作区中将数据项X写回数据库。
由DBMS的事务管理子系统完成。
6
4.1.2 事务的性质
(2)一致性(Consistency) 独立运行的事务,必须保证数据库的一致状态, 即数据不会因为事务的执行而遭到破坏。 数据库的一致性状态有编写事务的程序员来负责,也可
以有系统测试完整性约束来自动完成。 由DBMS的完整性子系统完成。
7
4.1.2 事务的性质
1.数据库系统中可能发生的故障 (1)事务故障
非预期的事务故障 事务由于某些内部条件无法继续正常执行
如:非法输入、找不到数据、出错等
可预期的事务故障 应用程序可以发现的事务故障
该事务可在以后的某个时间重新执行。 19
此时数据库中的数据处于非一致状态
4.2.1 故障类型
4.2 数据库的故障与恢复
4.2.1 故障类型 4.2.2 恢复的基本原则和实现方法 4.2.3 SQL中的恢复操作
18
4.2.1 故障类型
在运行数据库系统时,可能回出现各种各样的故障。发 生故障时,可能丢失数据库中的数据。DBMS的恢复管 理子系统采取一系列措施,保证在任何情况下保持事务 的原子性和持久性,确保数据不被破坏。
查点。
(4)在一个维护操作请求之后且执行之前检查完整性。
(5)在数据库管理员或审计员发出检查请求时检查完整
性。
wenku.baidu.com
16
4.1.4 更新事务的执行与恢复
2.更新事务的恢复 (1)从活动状态转入失败状态的恢复 (2)从局部提交状态转入失败状态的恢复。 这种对事务操作的撤销也称为回滚(ROLLBACK)。
17
活动 状态
局部提交 状态
提交 状态
失败 状态
中止 状态
事务状态图
13
4.1.3 事务的状态
(1)活动状态(Active)。 (2)局部提交状态(Partially Committed)。 (3)失败状态(Failed)。 (4)中止状态(Aborted)。 (5)提交状态(Committed)。
14
事务可以是一个包含有对数据库进行各种操作的一个完 整的用户程序(长事务),也可以是只包含一个更新操作 (插入、修改、删除)的短事务。
4
4.1.1 事务
SQL中事务的定义 事务以Begin transaction 开始,以Commit work或
Rollback work结束。 Commit work表示提交,事务正常结束。 Rollback work表示事务非正常开始时状态。
11
练习:
1.DBMS的并发控制子系统,保证了事务(
)的
实现。
2.事务的独立执行不会破坏DB的完整性,称为 ()
3.DBMS中实现事务持久性的子系统是:
()
1.隔离性 2.事务的一致性 3.DBMS恢复管理子系统
12
一个事务从开始到成功地完成或者因故中止,中间可能经 历不同的状态。
4.1.3 事务的状态
相关文档
最新文档