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