《《数据库原理及应用》总复习.doc》由会员分享,可在线阅读,更多相关《《数据库原理及应用》总复习.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库并发数据库并发一、一、 单选题单选题1. 下面( )不是数据库系统必须提供的数据控制功能。A.安全性 B可移植性 C完整性 D并发控制答案:B 2保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据 的( )。 A安全性B完整性C并发控制D恢复 答案:A 3数据库的( )是指数据的正确性和相容性。 A安全性B完整性C并发控制D恢复 答案:B 4在数据系统中,对存取权限的定义称为( )。 A命令 B授权 C定义 D审计 答案:B 5数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现 数据库的( )。 A可靠性B一致性C完整性D安全性 答案:
2、D 6授权编译系统和合法性检查机制一起组成了( )子系统。 A安全性B完整性C并发控制D恢复 答案:A 7. ( )是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不 可分割的工作单位A.程序 B命令 C事务 D文件答案:C 8. 事务的原子性是指( )。A事务中包括的所有操作要么都做,要么都不做B事务一旦提交,对数据库的改变是永久的C一个事务内部的操作及使用的数据对并发的其他事务是隔离的D事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:A 9. 事务的持续性是指( )。A事务中包括的所有操作要么都做,要么都不做B事务一旦提交,对数据库的改变是永久的C一个事务内部
3、的操作及使用的数据对并发的其他事务是隔离的D事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:B 10. 事务是数据库操作的基本工作单位。如果一个事务执行成功,则全部更新提交;如果 一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样 保持了数据库处于( )状态。A安全性 B一致性 C完整性 D可靠性答案:B 11. 多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一 样使用它,为此,数据库系统必须进行( )。A安全性控制 B完整性控制 C并发控制 D可靠性控制答案:C12. 对并发操作若不加以控制,可能会带来( )问题。A不安全 B
4、死锁 C死机 D数据不一致答案:D 13. 并发操作会带来的数据不一致性有( )。A丢失修改、不可重复读、读脏数据、死锁B不可重复读、读脏数据、死锁C丢失修改、读脏数据、死锁D丢失修改、不可重复读、读脏数据答案:D 14. 有两个事务 T1 、T2 ,其并发操作如图所示,下面评价正确的是( )。A该操作不存在问题 B该操作丢失修改 C该操作不能重复读 D该操作读“脏”数据答案:BT1T2读 A=10 A=A-5 写回读 A=10A=A-8 写回15设有两个事务 T1、T2,其并发操作如下所示,下面评价正确的是( )。 A该操作不存在问题B该操作丢失修改 C该操作不能重复读 D该操作读“脏”数据
5、 答案:CT1T2读 A=10,B=5读 A=20,B=5 求和 25 验证错读 A=10 A=A*2 写回16设有两个事务 T1、T2,其并发操作如下所示,下列评价正确的是( )。 A该操作不存在问题B该操作丢失修改 C该操作不能重复读D该操作读“脏”数据 答案:DT1T2读 A=100 A=A*2 写回 ROLLBACK 恢复 A=100读 A=20017. 解决并发操作带来的数据不一致性问题普遍采用( )。A封锁 B恢复 C存取控制 D协商答案:A 18若事务 T 对数据 R 已经加 X 锁,则其他事务对数据 R ( )。 A可以加 S 锁不能加 X 锁B不能加 S 锁可以加 X 锁 C
6、可以加 S 锁也可以加 X 锁D不能加任何锁答案:D 19不允许任何其他事务对这个锁定目标再加任何类型的锁是( )。 A共享锁B排它锁C共享锁或排它锁D以上都不是 答案:B 20数据库中的封锁机制是( )的主要方法。 A完整性B安全性C并发控制D恢复 答案:C 21关于“死锁” ,下列说法中正确的是( )。 A死锁是操作系统中的问题,数据库操作中不存在 B在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库 C当两个用户竞争相同资源时不会发生死锁 D只有出现并发操作时,才有可能出现死锁 答案:D 22若数据库中只包含成功事务提交的结果,则此数据库就称为处于( )状态。 A安全B、 一致C不
7、安全D不一致 答案:B 23若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以 非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称 为( )。 A事务故障B系统故障C介质故障D运行故障 答案:B 24若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损 失,这种情况称为( )。 A事务故障B系统故障C介质故障D运行故障 答案:C 25操作系统故障属于( ) 。 A人为错误 B事务故障 C介质故障 D系统故障 答案:D 26 ( )用来记录对数据库中数据进行的每一次更新操作。 A后援副本B日志文件C数据库D缓冲区 答案:B
8、 27后援副本的用途是( )。 A安全性保障B一致性控制C故障后的恢复 D数据的转储 答案:C 28用于数据库恢复的重要文件是( )。 A数据库文件B索引文件C日志文件D备注文件 答案:C 29日志文件是用于记录( )。 A程序运行过程B数据操作 C对数据的所有更新操作D程序执行的结果 答案:C 30数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括( )。 A数据字典、应用程序、审计档案、数据库后备副本 B数据字典、应用程序、日志文件、审计档案 C日志文件、数据库后备副本 D数据字典、应用程序、数据库后备副本 答案:C 31 ( )是指在转储过程中,不允许其他事务对数据库进行存取或
9、修改操作,并且每次 只转储上一次转储后更新过的数据。 A动态海量转储 B动态增量转储 C静态海量转储 D静态增量转储 答案:D 32以下( )封锁违反两段锁协议。 Slock ASlock BXlock C.Unlock AUnlock BUnlock C BSlock ASlock BXlock CUnlock CUnlock BUnlock A CSlock ASlock BXlock CUnlock BUnlock CUnlock A DSlock AUnlock A. Slock BXlock CUnlock BUnlock C 答案:D二、二、 多选题多选题1 事务的特性有( )。A
10、原子性 B一致性 C隔离性 D持续性 答案:ABCD 2 并发操作可能会带来的数据不一致性有( )。A丢失修改 B不可重复读 C读脏数据 D死锁 答案:ABC 3 关于“死锁”,下列说法中错误的是( )。A死锁是操作系统中的问题,数据库操作中不存在B在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库C当两个用户竞争相同资源时不会发生死锁D并发控制的目的就是消除死锁 答案:ABCD 4 封锁机制是并发控制的主要手段,( )封锁协议不但能够防止丢失修改,还可进一步 防止读“脏”数据。A一级 B二级 C三级 D都可以 答案:BC 5 若事务对数据已加锁,则其他事务对数据( )。A可以加 S 锁
11、 B不能加 S 锁 C可以加 X 锁 D不能加任何 锁 答案:BD 6 在 SQL Server 中,有关页的叙述中正确的是( )。A页是除行外的最小数据单位 B一个页有 8KB C表中的行不能跨页存放,一行的数据必须在同一个页上 D8 个连续的页称为 1 个簇 答案:ABCD 7数据库恢复通常采用的方法是( ) 。 A建立检查点 B建立副本 C建立日志文件 D建立索引 答案:ABC 8数据库系统中可能发生的故障( ) 。 A运行故障 B事务故障 C系统故障 D介质故障 答案:BCD 9系统故障是指造成系统停止运转,必须重新启动系统的任何事件,它包括以下( ) 几种情况。 A计算机病毒 B操作
12、系统故障 CDBMS 代码错误 D数据库服务器出错答案:BCD三、三、 填空题填空题1. 事务通常是以 开始,以 表示正常结束,以 结束 表示对数据库的所有已完成的操作全部撤消,回滚到事务开始时的状态。 答案:BEGIN TRANSACTION COMMIT ROLLBACK 2. 如果数据库中只包含成功事务提交的结果,就说数据库处于 一致性 状态。 答案:一致性 3. 数据库中解决活锁问题的方法是 。解决死锁问题主要有两类方法: 一类方法是 ;另一类方法是 。 答案:先来先服务 预防死锁 允许发生死锁,然后解除之 4. 封锁机制是并发控制的主要手段。封锁机制中有两种基本类型的锁,他们是排它锁
13、和 。 答案:共享锁 5. 封锁具有 3 个环节:第一个环节是申请加锁;第二个环节是 ;第三个 环节是 。 答案:获得锁 释放锁 6. 若事务对数据对象加了锁,则其他事务只能对数据再加 ,不能 再加 ,直到事务释放上的锁。 答案:S 锁 X 锁 7. 并发操作可能带来的数据不一致性,最根本的原因是违背了 隔离性 。 答案:事务的隔离性 8. “事务 T 在读取数据之前必须先对其加 S 锁,在要修改数据之前必须先对其加 X 锁,直 到事务结束后才释放所有锁。”这是 级封锁协议。 答案:三 9. 封锁粒度是指封锁对象的大小。封锁粒度与系统的并发度和并发控制的开销密切相关。 封锁的粒度越小,并发度越
14、 ,系统开销也越 ;封锁的粒度越大, 并发度越 ,系统开销也越 。 答案:高 大 低 小 10. SQL Server 遵从 级封锁协议,从而有效地控制并发操作可能产生的丢失 更新、读“脏”数据、不可重复读等错误。 答案:三 11 数据恢复最常用的技术是建立数据转储和利用 。 答案:日志文件 12 为保证数据库的可恢复性,登记日志文件时必须遵循两条原则:一是登记的次序严格 按事务执行的时间次序;二是 。 答案:先写日志文件,后写数据库 13 事务故障的解决办法是恢复程序在不影响其他事务运行的情况下 。 答案:撤销该事务 14 日志文件是用来记录对数据库的更新操作的文件。不同的数据库系统采用的日
15、志文件 格式不完全相同。日志文件主要有以记录为单位的日志文件和 。 答案:以数据块为单位的日志文件 15 会破坏磁盘上的物理数据库和日志文件,这是最严重的一种故障。 恢复方法是重装数据库后备副本,然后重做已完成的事务。 答案:介质故障 17 语句可以完成对整个数据库的恢复,也可以恢复数据库的日志,或 者是指定恢复数据库的某个文件或文件组。答案:RESTORE 18 数据库保护包含数据的 。 答案:安全性、完整性、并发控制、恢复 20保护数据安全性的一般方法是 。 答案:设置用户标识和存取权限控制 21数据的安全性是指 。 答案:保护数据库,防止未经授权的,或不合法的使用造成的数据泄漏、更改或破
16、坏 22安全性控制的一般方法有 、 、 、 和视图的保护五级安全措施。 答案:用户标识鉴定存取控制审计 数据加密 23存取权限包括两方面的内容,一个是 ,另一个是 。 答案:要存取的数据对象对此数据对象进行操作的类型 24 和 一起组成了安全性系统。 答案:授权编译系统合法权检查机制 25 是 DBMS 的基本单位,它是用户定义的一组逻辑一致的操作序列。 答案:事务 26DBMS 的基本工作单位是事务,它是用户定义的一组逻辑一致的操作序列;并发控制 的主要方法是 机制。 答案:封锁 27有两种基本类型的锁,它们是 和 。 答案:共享锁排它锁 28对并发操作若不加以控制,可能带来的不一致性有 、
17、 和 。 答案:丢失修改不能重复读读“脏”数据 29并发控制是对用户的 加以控制和协调。 答案:并发操作 30并发控制的主要方法是采用 机制,其类型有 和 两种。 答案:封锁排它锁(或 X 锁) 共享锁(或 S 锁) 31若事务 T 对数据对象 A 加了 S 锁,则其他事务只能对数据 A 再加 ,不能 加 ,直到事务 T 释放 A 上的锁。 答案:S 锁X 锁 32若事务在运行过程中,由于种种原因,使事务未运行到正常终止点之间就被撤消,这 种情况就称为 。 答案:事务故障 33数据库恢复是将数据库从 状态恢复到 的功能。 答案:错误某一已知的正确状态 34系统在运行过程中,由于某种原因,造成系
18、统停止运行,致使事务在执行过程中以非 控制方式终止,这时内存中的信息丢失,而存储在外存上的数据不受影响,这种情况称为 。 答案:系统故障 35系统在运行运程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失, 这种情况称为 。 答案:介质故障 36数据库系统在运行过程中,可能会发生故障。故障主要有 、 、介质故障和 四类。 答案:事务故障系统故障计算机病毒 37数据库系统在运行过程中,可能会发生各种故障,其故障对数据库的影响总结起来有 两类: 和 。 答案:数据库本身被破坏数据库处于不一致状 38数据库系统是利用存储在外存上其他地方的 来重建被破坏的数据库。它主要有两种: 和 。 答
19、案:冗余数据后援副本日志文件 39制作后援副本的过程称为 。它又分为 和 。 答案:转储增量转储日志文件 40事务故障、系统故障的恢复是由 完成的,介质故障是由 完成的。 答案:系统自动DBA 执行恢复操作过程 41数据库中数据的完整性包括 、 和 。 答案:实体完整性参照完整性 用户自定义的完整性 42实体完整性是指在基本表中, 。 答案:主属性不能取空值 43参照完整性是指在基本表中, 。 答案:外码可以是空值或者另一个关系主码的有效值 44为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时, DBMS 就 。 答案:拒绝此操作 45在数据库系统中对存取权限的定义称为 。
20、 答案:授权 46在 SQL 语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户 授权使用 语句,收回所授的权限使用 语句。 答案:GRANT REVOKE四、四、 简答题简答题1试述事务的概念及事务的试述事务的概念及事务的 4 个特性。个特性。 答:答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可 分割的工作单位。 事务具有 4 个特性:原子性(Atomicity ) 、一致性(consistency ) 、隔离性( Isolation ) 和持续性(Durability ) 。这 4 个特性也简称为 ACID 特性。 原子性:事务是数据库的逻
21、辑工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。 隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其 他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性:持续性也称永久 性(Perfnanence ) ,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。2.在数据库中为什么要并发控制?在数据库中为什么要并发控制? 答:答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时 就会产生同时读取
22、和或修改同一数据的情况。若对并发操作不加控制就可能会存取和存 储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。3. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:答:并发操作带来的数据不一致性包括三类:丢失修改(lost update )、不可重复读( Non 一 Repeatable Read )和读“脏数据( Dirty Read )。( l )丢失修改是指两个事务 Tl 和 T2 读入同一数据并修改,T2 提交的结果破坏了(覆 盖了) Tl 提交的结果,导致 T
23、l 的修改被丢失。( 2 )不可重复读是指事务 Tl 读取数据后,事务 T2 执行更新操作,使 Tl 无法再现前一 次读取结果。( 3 )读“脏”数据是指事务 Tl 修改某一数据,并将其写回磁盘,事务 T2 读取同一数据 后, Tl 由于某种原因被撤销,这时 Tl 已修改过的数据恢复原值,T2 读到的数据就与数 据库中的数据不一致,则 T2 读到的数据就为“脏”数据,即不正确的数据。 产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。并发控制就是要 用正确的方式调度并发操作,使一个用户事务的执行不受其它事务的干扰,从而避免造成 数据的不一致性。并发控制的主要技术是封锁(Llcki
24、ng) 。也可以用其他技术,例如在分 布式数据库系统中可以采用时间戳方法来进行并发控制。 4什么是封锁?基本的封锁类型有几种?试述它们的含义。什么是封锁?基本的封锁类型有几种?试述它们的含义。 答:答:封锁就是事务 T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求, 对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务 T 释放它的锁之前, 其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。 基本的封锁类型有两种:排它锁( Exclusive Locks ,简称 x 锁)和共享锁 ( Share Locks,简称 S 锁) 。排它锁又称为写锁。若事务
25、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 做任何修改。5. 什么是活锁?什么是死锁?什么是活锁?什么是死锁? 答:答:如果事务 T1 封锁了数据 R,事务
26、T2 又请求封锁 R,于是 T2 等待。T3 也请求封锁 R,当 T1 释放了 R 上的封锁之后系统首先批准了 T3 的请求,T2 仍然等待。然后 T4 又请求封锁 R,当 T3 释放了 R 上的封锁之后系统又批准 了 T4 的请求,T2 有可能永远等待, 这就是活锁的情形。活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能 被激活。如果事务 T1 封锁了数据 R1,T2 封锁了数据 R2,然后 T1 又请求封锁 R2,T2 已封锁了 R2,于是等待 T2 释放 R2 上的锁。接着 T2 又申请封锁 R1,因 T1 已封锁 R1,T2 也只能 等待 T1 释放 R1 上的锁。这样就出
27、现了 T1 在等待 T2,而 T2 又在等待 T1 的局面,T1 和 T2 两个事务永远不能结束,形成死锁。6 如何预防死锁?如何预防死锁? 答:答:在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都 请求对已被其他事务封锁的数据对象加锁,从而出项死等待。防止死锁的发生其实就是要 破坏产生死锁的条件。预防死锁通常有两种方法: (1)一次封锁法 一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执 行。一次封锁法虽然可以有效地防止死锁的发生,但也存在问题,一次就将以后要用到的 全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度。 (2)顺序封
28、锁法 顺序封锁法是预先对数据对象规定一个封锁顺序,所以事务都按这个顺序实行封锁。 顺序封锁法可以有效地防止死锁,但也同时存在问题。事务的封锁请求可以随着事务的执 行而动态地决定,很难事先确定每一个事务要封锁哪些对象,因此也就很难按规定的顺序 去施加封锁。 可见,在操作系统中广为采用的预防死锁的策略并不很适合数据库的特点,因此 DBMS 在解决死锁的问题上普遍采用的是诊断并解除死锁的方法。7 请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁? 答:答:DBMS 中诊断死锁的方法与操作系统类似,一般使用超时法超时法或事务等待图事务等待图
29、法。超时法 是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单, 但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。 若时限设置得太长,又不能及时发现死锁发生。 DBMS 并发控制子系统检测到死锁后, 就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此 事务持有的所有锁,使其他事务得以继续运行下去事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修 改操作必须加以恢复。11 什么样的并发调度是正确的调度?什么样的并发调度是正
30、确的调度? 答:答:可串行化(可串行化( Serializable )的调度是正确的调度)的调度是正确的调度。可串行化的调度的定义:多个事务 的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同,称这种 调度策略为可串行化的调度。 8. Tl ,T2,T3 是如下的是如下的 3 个事务:个事务: Tl :A : = A + 2 ; T2:A : = A * 2 ; T3:A : = A *2 ; ( A -A*A) 设设 A 的初值为的初值为 0 。 ( l )若这)若这 3 个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。个事务允许并行执行,则有多少可能的正确结
31、果,请一一列举出来。答答 :A 的最终结果可能有 2 、 4 、 8 、 16 。因为串行执行次序有 Tl T2T3、 Tl T3T2、T2T1T3、T2T3Tl 、T3T1T2、T3T2 Tl 。对应的执行结果是 16 、 8 、4 、2 、 4 、2 。 ( 2 )请给出一个可串行化的调度,并给出执行结果)请给出一个可串行化的调度,并给出执行结果 答:答:最后结果 A 为 16 ,是可串行化的调度。 ( 3 )请给出一个非串行化的调度,并给出执行结果。)请给出一个非串行化的调度,并给出执行结果。 答:答:最后结果 A 为 0 ,为非串行化的调度。 ( 4 )若这)若这 3 个事务都遵守两段
32、锁协议,请给出一个不产生死锁的可串行化调度。个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。 答:答:( 5 )若这)若这 3 个事务都遵守两段锁协议,请给出一个产生死锁的调度。个事务都遵守两段锁协议,请给出一个产生死锁的调度。 答:答:9数据库中为什么要有恢复子系统?它的功能是什么?数据库中为什么要有恢复子系统?它的功能是什么? 答:答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避 免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数 据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。 恢复子系统的功能是:把数据库
33、从错误状态恢复到某一已知的正确状态(亦称为一致状态 或完整状态) 。10数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破 坏数据库数据?坏数据库数据? 答:答:数据库系统中可能发生各种各样的故障,大致可以分以下几类: (1)事务内部的故障 (2)系统故障 (3)介质故障 (4)计算机病毒 事务故障、系统故障和介质故障影响事务的正常执行; 介质故障和计算机病毒破坏数据库数据。11数据库恢复的基本技术有哪些?数据库恢复的基本技术有哪些? 答:答:数据转储和登录日志文件是数据库恢复的基本技术。 所谓转
34、储即 DBA 定期地整个数据库复制到磁带或另一个磁盘上保存起来的过程。这 些备用的数据文本称为后备副本或后援副本。 日志文件是用来记录事务对数据库的更新操作的文件。不同数据库系统采用的日志文 件格式并不完全一样。概括起来日志文件主要有两种格式:以记录为单位的日志文件和以 数据块为单位的日志文件。 当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库 恢复到故障前的某个一致性状态。12什么是日志文件?为什么要设立日志文件?什么是日志文件?为什么要设立日志文件? 答:答: (1)日志文件是用来记录事务对数据库的更新操作的文件。 (2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行 介质故障恢复。13登记日志文件时为什么必须先写日志文件,后写数据库?登记日志文件时为什么必须先写日志文件,后写数据库? 答:答: 把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的 操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。 如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改 了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次 UNDO 操作,并 不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中, 然后写数据库的修改。