关于自考的考前复习资料,已经排版好了,可以直接打印
ACTIVE-LIST 。这里建立两个事务队列 : ? UNDO-LIST: 需要执行 undo 操作的事务集合; ? REDO-LIST: 需要执行 redo 操作的事务集合;把 ACTIVE-LIST 暂时放入 UNDO-LIST 队列, REDO 队列暂为空。 ③ 从检查点开始正向扫描日志文件 ? 如有新开始的事务 Ti ,把 Ti 暂时放入 UNDO-LIST 队列; ? 如有提交的事务 Tj ,把 Tj 从 UNDO-LIST 队列移到 REDO-LIST 队列,直到日志文件结束; ④ 对 若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 3 、可串行化
4 、并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。 ( 1 )丢失修改( Lost Update ) 两个事务 T1 和 T2 读入同一数据并修改, T2 提交的结果破坏了(覆盖了) T1 提UNDO-LIST 中的每个事务执行 UNDO 操作 , 对 REDO-LIST 中的每个事务执行 REDO 操作。
22 、数据库镜像即根据 DBA 的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时, DBMS 自动把更新后的数据复制过去,即 DBMS 自动保证镜像数据与主数据的一致性。数据库镜像的用途有:一是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时 DBMS 自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。二是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。
1 . 并发操作带来的数据不一致性包括: ________ 、 ________ 和________ 。
2 . 在数据库中为什么要并发控制?
3 . 多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为 ________ 的调度。
4 . 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?
5 . 基本的封锁类型有两种: ________ 和 ________ 。 6 . 什么是封锁?
7 . 在数据库并发控制中,两个或多个事务同时处在相互等待状态,称为 ________ 。
8 . 基本的封锁类型有几种?试述它们的含义。
9 . 什么是封锁协议?不同级别的封锁协议的主要区别是什么? 10 .________ 被称为封锁的粒度。封锁对象的大小 11 . 不同封锁协议与系统一致性级别的关系是什么? 12 . 什么是活锁?什么是死锁 ? 13 . 试述活锁的产生原因和解决方法。 14 . 请给出预防死锁的若干方法。
15 . 请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?16 . 什么样的并发调度是正确的调度? 17 . 试述两段锁协议的概念。
18 . 试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的。
19 . 为什么要引进意向锁? 意向锁的含义是什么?
20 . 试述常用的意向锁: IS 锁, IX 锁, SIX 锁,给出这些锁的相容矩阵。
1 、丢失修改 不可重复读 读“脏”数据
2 、数据库是共享资源,通常有许多个事务同时在运行。 当多个事务并发地存取数据库时就会产生同时读取和 / 或修改同一数据的情况。
交的结果,导致 T1 的修改被丢失。 ( 2 )不可重复读( Non-Repeatable Read ) 不可重复读是指事务 T1 读取数据后,事务 T2 执行更新操作,使 T1 无法再现前一次读取结果。不可重复读包括三种情况:详见《概论》 8.1 p266 。 ( 3 )读“脏”数据( Dirty Read )读“脏”数据是指事务 T1 修改某一数据,并将其写回磁盘,事务 T2 读取同一数据后, T1 由于某种原因被撤销,这时 T1 已修改过的数据恢复原值, T2 读到的数据就与数据库中的数据不一致,则 T2 读到的数据就为“脏”数据,即不正确的数据。 避免不一致性的方法就是并发控制。最常用的并发控制技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。
5 、排它锁 (Exclusive Locks ,简称 X 锁 ) 共享锁 (Share Locks ,简称 S 锁 )
6 、封锁就是事务 T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务 T 释放它的锁之前,其他的事务不能更新此数据对象。 封锁是实现并发控制的一个非常重要的技术。 7 、死锁
8 、基本的封锁类型有两种 : 排它锁 (Exclusive Locks ,简称 X 锁 ) 和共享锁 (Share Locks ,简称 S 锁 ) 。 排它锁又称为写锁。若事务 T 对数据对象 A 加上 X 锁,则只允许 T 读取和修改 A ,其他任何事务都不能再对 A 加任何类型的锁,直到 T 释放 A 上的锁。这就保证了其他事务在 T 释放 A 上的锁之前不能再读取和修改 A 。 共享锁又称为读锁。若事务 T 对数据对象 A 加上 S 锁,则事务 T 可以读 A 但不能修改 A ,其他事务只能再对 A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。这就保证了其他事务可以读 A ,但在 T 释放 A 上的 S 锁之前不能对 A 做任何修改。
9 、在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用 X 锁和 S 锁对数据对象加锁时,要约定何时申请 X 锁或 S 锁、何时释放封锁等。这些约定或者规则称为封锁协议( Locking Protocol )。对封锁方式约定不同的规则,就形成了各种不同的封锁协议。不同级别的封锁协议,例如《概论》 8.3 中介绍的三级封锁协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。 一级封锁协议:事务 T 在修改数据 R 之前必须先对其加 X 锁,直到事务结束才释放。 二级封锁协议:一级封锁协议加上事务 T 在读取数据 R 之前必须先对其加 S 锁,读完后即可释放 S 锁。 三级封锁协议:一级封锁协议加上事务 T 在读取数据 R 之前必须先对其加 S 锁,直到事务结束才释放。 10 、封锁对象的大小
11 、不同的封锁协议对应不同的一致性级别。一级封锁协议可防止丢失修改,并保证事务 T 是可恢复的。在一级封锁协议中,对读数据是不加 S 锁的,所以它不能保证可重复读和不读“脏”数据。 二级封
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库自考数据库系统原理与技术复习资料(13)在线全文阅读。
相关推荐: