数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞新)机械

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

数据库系统原理及应用教程第四版课后答案(苗雪兰刘瑞

新)机械

习题88.1答:数据库的安全性是指保护数据库,以防止不合法的使

用数据泄密、更改或破坏。8.2数据库安全性和计算机系统的安全性有什

么关系?8.2答:数据库安全性是计算机系统的安全性的一部分,数据库

系统不仅要利用计算机系统的安全性保证自己系统的安全性,同时还会提

供专门的手段和方法,使安全性能更好。例如,在用户要求进入计算机系

统时,系统首先根据用户输入的用户标识进行身份鉴定,只有合法的用户

才准许进入计算机系统;对已进入的用户,DBMS还要进行存取控制,只

允许用户执行合法操作;操作系统也会提供相应的保护措施;数据最后还

可以以密码形式存储到数据库中。

8.3答:①用户标识与鉴别;②存取控制;③自主存取控制方法;④

强制存取控制方法;⑤视图机制;⑥审计;⑦数据加密。8.4答:

①GRANT(授权)语句例:GRANTSELECT,INSERTON学生TO张勇WITHGRANTOPTION;②REVOKE(收回)语句例:REVOKEINSERTON学生FROM张勇;

8.5答:数据库的完整性是指数据的正确性和相容性。

8.6答:数据库的完整性是指数据的正确性和相容性。数据库的安全

性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。

其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标

不同。

8.9答:①外码能够接受空值的问题;②在被参照关系中删除元组时,采用级联删除、受限删除或置空值删除的方法处理参照关系;③在参照关

系中插入元组时,可以使用受限插入、递归插入两种方法处理参照关系;

④修改关系的主码时,可以采用不允许修改主码、或允许修改关系主码,

但必须保证主码的惟一性和非空性方法处理参照关系;⑤修改被参照关系时,可以采用级联修改、拒绝修改和置空值修改方法处理参照关系。

8.10答:数据库的并发控制就是为了控制数据库,防止多用户并发

使用数据库时造成数据错误和程序运行错误,保证数据的完整性。

8.11答:并发操作可能会产生丢失修改、不可重复读和读“脏”数

据的数据不一致问题。用封锁的方法能避免这些不一致的情况。8.12什

么是封锁?8.12答:封锁是使事务对它要操作的数据有一定的控制能力。封锁具有三个环节:第一个环节是申请加锁;第二个环节是获得锁;第三

个环节是释放锁。

8.13答:基本的封锁类型有两种:排它锁(简称某锁)和共享锁(简称

S锁)。排它锁也称为独占或写锁。一旦事务T对数据对象A加上排它锁,则只允许T读取和修改A,其他任何事务既不能读取和修改A,也不能再对

A加任何类型的锁,直到T释放A上的锁为止。共享锁又称读锁。如果事

务T对数据对象A加上共享锁,其他事务只能再对A加S锁,不能加某锁,知道事务T释放A上的S锁为止。8.14答:封锁机制作为并发控制的重

要手段,利用封锁的特性和封锁协议,它在并发操作保证事务的隔离性,

用正确的方式调度并发操作,是一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。

8.15什么是封锁协议?不同级别的封锁协议的主要区别是什么?答:在对数据对象加锁时,还需要约定一些规则,这些规则称为封锁协议。一

级封锁协议:是事务T在修改数据之前必须先对其加某锁,直到事务结束

才释放,一级封锁协议可有效地防止丢失修改,并能够保证事务T的可恢

复性。一级封锁由于没有对数据进行加锁,所以不能保证可重复读和不读“脏”数据。二级封锁协议:是事务T对要修改的数据必须先加某锁,直

到事务结束才释放某锁;要读取的数据必须先加S锁,读完后即可释放S 锁。二级封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。三级封锁协议:是事务T在读取数据之前必须先对其加S锁,在要修改数

据之前必须先对其加某锁,直到事务结束后才释放所有锁。由于三级封锁

协议强调即使事务读完数据A之后也不释放S锁,从而使得别的事务无法

更改数据A。三级封锁协议不但防止了丢失修改和不读“脏”数据,而且

防止了不可重复的读。

8.16不同封锁协议与系统一致性级别的关系是什么?答:一级封锁

协议可有效地防止丢失修改,并能够保证事务T的可恢复性。一级封锁由

于没有对数据进行加锁,所以不能保证可重复读和不读“脏”数据。二级

封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。由于三级封锁协议强调即使事务读完数据A之后也不释放S锁,

从而使别的事务无法更改数据A。三级封锁协议不但防止了丢失修改和不

读“脏”数据,而且防止了不可重复读。8.17什么是活锁?什么是死锁?答:在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为

活锁;多事务交错等待的僵持局面称为死锁。8.18试述活锁的产生原因

和解决方法。答:活锁是封锁的无序造成的。解决方法是采用先来先服务

的方法,即对要求封锁数据的事务排队,使前面的事务先获得数据的封锁权。

8.19请给出预防死锁的若干方法。答:预防死锁通常有以下两种方法:①一次封锁法,就是要求每个事务必须一次将所有要使用的数据全部

加锁,否则该事务不能继续执行;②顺序封锁法,是预先对数据对象规定

一个封锁顺序,所有事务都按这个顺序实行封锁。8.20请给出检测死锁

发生的一种方法,当发生死锁后如何解除死锁?答:检测死锁发生的一种

方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的

所有锁,使其他事务得以继续运行下去。解除死锁问题有两类方法:一类

方法是采用一定措施来预防死锁的发生;另一类方法是允许发生死锁,然

后采用一定手段定期诊断系统中有无死锁,若有则解除之。8.21什么样

的并发调度是正确的调度?答:如果一个事务运行过程中没有其他事务同

时运行,即没有受到其他事务的干扰,那么就可以认为该事务的运行结果

是正常的,可串行性是并发事务正确性的准则,为了保证并发操作的正确性,DBMS的并发控制机制必须提供一定的手段来保证调度是可串行化的。

8.22试述两段锁协议的概念。答:所谓两段锁协议是指所有事务必

须分两个阶段对数据项进行加锁和解锁:①在对任何数据进行读、写操作

之前,首先要申请并获得对该数据的封锁;②在释放一个封锁之后,事务

不再申请并获得对该数据的封锁。即每个事务分成两个阶段,第一阶段是

申请和获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数

据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也

称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的锁,

但是不能再申请任何锁。8.23为什么要引进意向锁?意向锁的含义是什么?答:事务T要对关系R1加某锁时,系统只需检查根结点数据库和关

系R1是否已加了不相容的锁,而不再需要搜索和检查R1中的每一个元组

是否加了某锁,对任一元组加锁,必须先对它所在的关系加意向锁。意向

锁的含义是:如果对一个结点

加意向锁,则说明该结点的下层结点正在被加锁;对任何一结加锁时,必须先对它的上层结点加意向锁。

相关文档
最新文档