数据库系统.

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

24

因此,为了充分利用数据库资源,很多时候数 据库用户都是对数据库系统并行存取数据,这 样就会发生多个用户并发存取同一数据块的情 况,如果对并发操作不加控制可能会产生不正 确的数据,破坏数据的完整性,并发控制就是 解决这类问题,以保持数据库中数据的一致性, 即在任何一个时刻数据库都将以相同的形式给 用户提供数据。
数据库系统
第11讲
1
例 :某单位有一资料室,它管理的数据有读者信息、 图书信息、借阅信息。 读者信息:书证编号,姓名,性别,所在部门,职 称,家庭住址,联系电话,办证日期
2
图书信息:书籍编号,书名,分类编号,作者姓 名,出版社名称,出版日期,书籍页数,登记日 期等; 借阅信息:书证编号,图书编号,借出日期,还 书日期等

什么是系统故障

系统故障是指造成系统停止运转的任何事 件,使得系统要重新启动。
18
系统故障的常见原因

操作系统或DBMS代码错误;
操作员操作失误; 特定类型的硬件错误(如CPU故障); 突然停电;
19
介质故障

硬件故障使存储在外存中的数据部分丢失或全 部丢失;
介质故障比前两类故障的可能性小得多,但破 坏性大得多。
25
并发控制(续)
(2)交叉并发方式(interleaved concurrency)
ห้องสมุดไป่ตู้
事务的并行执行是这些并行事务的并行操作轮流交 叉运行

是单处理机系统中的并发方式,能够减少处理机的 空闲时间,提高系统的效率
26
并发所引起的问题 当同一数据库系统中有多个事务并发运行时,如果不加以适当控制, 可能产生数据的不一致性。 [例1]并发取款操作。假设存款余额R=1000元,甲事务T1取走存款100 元,乙事务T2取走存款200元,如果正常操作,即甲事务T1执行完 毕再执行乙事务T2,存款余额更新后应该是700元。但是如果按照 如下顺序操作,则会有不同的结果: 甲事务T1读取存款余额R =1000元; 乙事务T2读取存款余额R =1000元; 甲事务 T1 取走存款 100 元,修改存款余额 R =R - 100=900 , 把R =900写回到数据库; 乙事务 T2 取走存款 200 元,修改存款余额 R =R - 200=800 , 把R =800写回到数据库。 结果两个事务共取走存款 300 元,而数据库中的存款却只少了 200 元。
可见事务的一致性与原子性是密切相关的。
10
.隔离性(Isolation) 如果多个事务并发地执行,应像各个事务独立 执行一样,一个事务的执行不能被其他事务干 扰。 即一个事务内部的操作及使用的数据对并发的 其他事务是隔离的。 并发控制就是为了保证事务间的隔离性。
11
持久性(Durability) 指一个事务一旦提交,它对数据库中数据的改 变就应该是持久的,即使数据库因故障而受到 破坏,DBMS也应该能够恢复。

BEGIN TRANSACTION COMMIT ROLLBACK
BEGIN TRANSACTION表示事务的开始;
6

COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止

事务运行的过程中发生了故障,不能继续执行,回滚事务的 所有更新操作 事务回滚到开始时的状态

20
介质故障的常见原因


磁盘损坏
磁头碰撞
操作系统的某种潜在错误 瞬时强磁场干扰
21
介质故障的恢复

装入数据库发生介质故障前某个时刻的数据副 本
重做自此时始的所有成功事务,将这些事务已 提交的结果重新记入数据库

22
恢复操作的基本原理

恢复操作的基本原理:冗余

利用存储在系统其它地方的冗余数据来重建数据库 中已被破坏或不正确的那部分数据 一个大型数据库产品,恢复子系统的代码要占全部 代码的10%以上
一致性状态: 数据库中只包含成功事务提交的结果 不一致状态: 数据库中包含失败事务的结果
9
银行转帐:从帐号A中取出一万元,存入帐号B。 定义一个事务,该事务包括两个操作
A A=A-1 B=B+1 B
这两个操作要么全做,要么全不 做,数据库都处于一致性状态。如果只做一个操作, 数据库就处于不一致性状态。

恢复的实现技术:复杂

23
并发控制概述
数据库并发性的含义
完整性是保证各个事务本身能得到正确的数据, 只考虑一个用户使用数据库的情况,但实际上数据库 中有许多用户。 每个用户在存取数据库中的数据时,可能是串行 执行,即每个时刻只有一个用户程序运行,也可能是 多个用户并行地存取数据库。 数据库的最大特点之一就是数据资源是共享的, 串行执行意味着一个用户在运行程序时,其他用户程 序必须等到这个用户程序结束才能对数据库进行存取, 这样如果一个用户程序涉及大量数据的输入/输出交 换,则数据库系统的大部分时间将处于闲置状态。
12

事务上述四个性质的英文术语的第一个字母为 ACID。因此,这四个性质以称为事务的ACID准 则。 保证事务ACID特性是事务处理的任务
破坏事务ACID特性的因素


多个事务并行运行时,不同事务的操作交叉执行 事务在运行过程中被强行停止
13
数据库恢复

故障是不可避免的



计算机硬件故障 系统软件和应用软件的错误 操作员的失误 恶意的破坏

7
事务的特征
原子性(Atomicity) 一个事务是一个不可分割的工作单位,事务在 执行时,应该遵守“要么不做,要么全做” (nothing or all)的原则,即不允许事务部 分的完成。 即使因为故障而使事务未能完成,它执行的部 分结果要被取消。
8
一致性(Consistency) 事务对数据库的作用必须是数据库从一个一致 状态转变到另一个一致状态。

故障的影响

运行事务非正常中断 破坏数据库
14

DBMS提供恢复子系统 保证故障发生后,能把数据库中的数据从错误状态 恢复到某种逻辑一致的状态。
15
故障的种类

事务故障 什么是事务故障

某个事务在运行过程中由于种种原因未运行至正常 终止点就夭折了 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁

事务故障的常见原因

16
事务故障的恢复


发生事务故障时,夭折的事务可能已把对数据 库的部分修改写回磁盘,这时需要强行回滚 (ROLLBACK)该事务,清除该事务对数据 库的所有修改,使得这个事务象根本没有启动 过一样。 事务故障的恢复操作称为:事务撤消(UNDO)
17
系统故障
3
书证编号
姓名
书籍编号
书名
读者
借阅
图书
借书日期
还书日期
4
什么是事务

事务(Transaction)是用户定义的一个 数据库操作序列,这些操作要么全做, 要么全不做,是一个不可分割的工作 单位。
5

事务的开始与结束可以由用户显式控制。如果 用户没有显式地定义事务,则由DBMS按照缺省 规定自动划分事务。在 SQL 语言中,定义事务 的语句有三条:
相关文档
最新文档