ORACLE与数据库原理作业 习题九(答案全)

ORACLE与数据库原理作业 习题九(答案全),第1张

ORACLE与数据库原理作业 习题九(答案全)

首先声明:这个是我尽力自己做的,不能保证百分之百正确,毕竟老师没发答案给我对,但确实是做出来了

习题九

一、选择题二、填空题三、简答题

一、选择题

1.视图机制提高了数据库系统的( B )。
A.完整性 B.安全性
C.一致性 D.并发控制

2.完整性控制的防范对象是( B )。
A.非法用户 B.不合语义的数据
C.非法 *** 作 D.不正确的数据

3.安全性控制的防范对象主要是( C )。

A.合法用户 B.不合语义的数据 C.非法 *** 作 D.不正确的数据
4.一个事务在执行时,应该遵守“要么不做, 要么全做”的原则,这是事务的(A )。
A.原子性 B.一致性 C.隔离性 D.持久性
5.实现事务回滚的语句是( C )。
A.GRANT B.COMMIT C.ROLLBACK D.REVOKE

6.后备副本的作用是( D )。
A.保障安全性 B.完整性控制 C.并发控制 D.数据库恢复
7.解决并发控制带来的数据不一致问题普遍采用的技术是(A )。
A.封锁 B.存取控制 C.恢复D.协商

8.如事务 T 对数据对象 R 实现 X 封锁,则 T 对 R( C )。
A.只能读不能写 B.只能写不能读 C.既可读又可写D.不能读也不能写

9.在数据库技术中,“脏数据”是指( D )。

A.未回退的数据B.未提交的数据
C.回退的数据D.未提交随后又被撤销的数据

10.“日志”文件用于保存( D )。
A.程序运行过程
B.数据 *** 作

C. 程序执行结果
D.对数据库的更新 *** 作

11.在数据库恢复时,对尚未做完的事务执行( B )。
A.REDO 处理 B.UNDO 处理 C.ABORT 处理 D.ROLLBACK 处理
12.在事务依赖图中,如果两个事务的依赖关系形成一个循环,那么就会( B )。 A.出现活锁现象 B.出现死锁现象 C.事务执行成功 D.事务执行失败
13.事务的一致性是指( D )。
A.事务中包括的所有 *** 作要么都做, 要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的 *** 作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态 14.保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据
的( D )。
A.安全性 B.完整性 C.并发控制 D.恢复

二、填空题

1.DBMS 对数据库的安全保护功能是通过 数据库的恢复 、 数据库的并发控制 、 数据库的完整性控制 和 数据库安全性控制 四个方 面实现的。
2.存取权限由 数据库对象 和 *** 作类型 两个要素组成。
3.默认值用来帮助用户实现数据的 完整性或完整性控制
4. 加密的基本思想是根据一定的算法将 原始数据(或明文) 加密成为 不可直接识别的格式(或明文) ,数据以 密文 的形式 存储和传输。
5. 事务 是数据库系统中执行的一个工作单位,它是由用户定义的一组 *** 作序列。它具 有 原子性 、 一致性 、 隔离性 和 持久性 四个特征。

6.并发 *** 作导致的数据库不一致性主要有 丢失更新 、 污读 和
不可重读 三种。
7.实现并发控制的方法主要是 封锁 技术, 基本的封锁类型有 排它性封锁 和 共享封锁 两种。
8.数据库恢复的基本原理是 利用数据的冗余 。
9.生成冗余数据最常用的技术是 登录日志文件 和 数据转储 。
10.数据库运行过程中可能出现 事务故障 、 系统故障 和 介质故障 三类故障。
11.按照转储方式, 数据转储可以分为 差量转储 和 增量转储 。
12.按照转储状态, 数据转储又可分为 静态转储 和 动态转储 。
13.根据 SQL Server 的安全性要求, 当某一用户要访问 SQL Server 中的数据库时,必须在
SQL Server 上创建 角色 和 授权 。

三、简答题

1.什么是数据库的安全性?试述 DBMS 提供的安全性控制功能包括哪些内容。
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露,更改和
破坏。
安全性控制包含:
1)用户标识和鉴定
2)用户存取权限控制
3)定义视图
4)数据加密
5)审计

2.什么是数据库的自主存取控制方法和强制存取控制方法?
自主存取控制方法:定义各个用户对不同数据对象的存取对象。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。

强制存取控制方法:每一个数据对象被(强制地)标以一定的密集,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有谋一许可证级别的用户才能存取某一个密级的数据对象

3.数据库中的角色有什么作用?
所谓角色就是一组特权,它可以分配给一个用户或其它角色。角色的优点如下:
(1) 特权不是每次一个直接授予一个用户;而是先创建角色,再向角色授予一些特权,然后再将该角色授予多个用户或角色。
(2) 在增加或删除一个角色的某种特权时,被授予该角色的用户或角色将自动增加或失去这种特权。
(3) 可以将多个角色授予一个用户或角色。
(4) 可以为角色设置密码。

4.什么是事务?它有哪些基本特性? 事务的提交和回滚是什么意思?
事务是数据库系统中执行的一个工作单位,它是由用户定义的一组 *** 作序列
提交:COMMIT表示事务的提交,即将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,此时事务正常结束;
回滚:ROLLBACK表示事务的回滚,即在事务运行过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新 *** 作全部撤销,再回滚到事务开始时的状态

5.在数据库中为什么要有并发控制?
不并发控制的话会带来一系列问题:数据冗余、更新异常、插入异常、删除异常等

6.并发 *** 作会带来哪些数据不一致性?
并发 *** 作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏’夕数据。
(l)丢失修改(lostupdate)两个事务Tl和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)Tl提交的结果,导致Tl的修改被丢失。
(2)不可重复读(Non一RepeatableRead)不可重复读是指事务Tl读取数据后,事务几执行更新 *** 作,使Tl无法再现前一次读取结果。
(3)读“脏”数据(DirtyRead)读“脏’夕数据是指事务Tl修改某一数据,并将其写回磁盘,事务几读取同一数据后,Tl由于某种原因被撤销,这时Tl已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。

7.什么是封锁?封锁的基本类型有几种,含义如何?
所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集以及整个数据库)进行 *** 作之前,必须获得相应的锁,以保证数据 *** 作的正确性和一致性
封锁有两种类型:排他型封锁、共享封锁
排他型封锁:又称写封锁,简称为X封锁,它采用的原理是禁止并发 *** 作
共享封锁:又称读封锁,简称为S锁,它采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改

8.什么是封锁协议? 不同级别的封锁协议的主要区别是什么?
三级封锁协议:
在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。
  
  一、一级封锁协议
  
   一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
  
   一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。
  
   在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。
  
  二、二级封锁协议
  
   二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
  
   二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
  
  三、三级封锁协议
  
   三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
  
   三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
  
   上述三级协议的主要区别在于什么 *** 作需要申请封锁,以及何时释放。

9.试述发生死锁的条件和消除死锁的常用方法。
死锁产生的条件:
1)互斥条件:一个数据对象一次只能被一个事务所使用,即对数据的封装采用排他式
2)不可抢占条件:一个数据对象只能被占有它的事务所释放,而不被别的事务所抢占
3)部分分配条件:一个事务已经封锁分给它的数据对象,但仍然要求封锁其他数据
4)循环等待条件:允许等待其它事务释放数据对象,系统处于加锁互相等待的状态

消除死锁的方法:
1)一次加锁法
2)顺序加锁法

10.请给出检测死锁的一种方法,如何解除死锁?
下面介绍一种死锁检测的算法。
(1)为每个进程和每个资源指定唯一编号。
(2)设置一张资源分配状态表,每个表目包含“资源号”和占有该资源的“进程号”两 项,资源分配表中记录了每个资源正在被哪个进程所占有。
(3)设置一张进程等待分配表,每个表目包含“进程号”和该进程所等待的“资源号” 两项。
(4)算法规则:当任一进程P,申请一个已被其他进程占用的资源时,进行死锁检测。 检测算法通过反复查找资源分配表和进程等待表,来确定进程P,.对资源I的请求是否导致形成环路,若是,便确定出现死锁。
死锁的解除方法:
1、剥夺资源
使用挂起/激活机制挂起一些进程,剥夺它们占有的资源给死锁进程,以解除死锁,待以后条件满足时,再激活被挂起的进程。
由于死锁是由进程竞争资源而引起的,所以,可以从一些进程那里强行剥夺足够数量的 资源分配给死锁进程,以解除死锁状态。剥夺的顺序可以是以花费最小资源数为依据。每次 剥夺后,需要再次调用死锁检测算法。资源被剥夺的进程为了再得到该资源,必须重新提出 申请。为了安全地释放资源,该进程就必须返回到分配资源前的某一点。经常使用的方法如 下。
(1)还原算法,即恢复计算结果和状态。
(2)建立检查点主要是用来恢复分配前的状态。这种方法对实时系统和长时间运行的数 据处理来说是一种常用技术。在实时系统中,经常在某些程序地址插人检查的程序段,即采 用检查点的技术来验证系统的正确性,如发现故障,可从检查点重新启动。因此,在有些实 时系统中,一旦发现死锁,可以在释放某进程的资源后,从检查点重新启动。

11.试述两段锁协议。
两段锁协议:是指所有的事务必须分两个阶段对数据项加锁和解锁。即事务分两个阶段,第一个阶段是获得封锁。事务可以获得任何数据项上的任何类型的锁,但是不能释放;第二阶段是释放封锁,事务可以释放任何数据项上的任何类型的锁,但不能申请。

12.为什么引进意向锁? 其含义是什么?
引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁冲突了。例如,事务 T 要对关系 R 加 X 锁时,系统只要检查根结点数据库和 R 本身是否已加了不相容的锁(如发现已经加了 IX ,则与 X 冲突),而不再需要搜索和检查 R 中的每一个元组是否加了 X 锁或 S 锁。
其含义: 如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。意向锁是放置在资源层次结构的一个级别上的锁,以保护较低级别资源上的共享或排它锁。

13.什么样的调度是正确的调度?
串行化(Serial)调度是正确的
对于串行调度,各个事务的 *** 作没有交叉,也就没有相互干扰,当然也不会产生并发所引起的。如前所述,事务对数据库的作用是将数据库从一个一致的状态转变为另一个一致的状态。多个事务串行执行后,数据库仍旧保持一致的状态。

可串行化(Serializable)调度
多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。可串行化调度当然也保持数据库的一致状态

14.数据库恢复的基本技术有哪些?

    数据转储登记日志文件检查点恢复技术数据库镜像远程备份系统

15.数据库运行过程中可能产生的故障有哪几类? 哪些故障影响事务的正常执行?哪些故障 破坏数据库数据?各类故障如何恢复?
数据库系统中的故障可以分以下几类:(1)事务内部的故障;(2)系统故障;(3)介质故障;(4)计算机病毒。事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据

16.为什么事务非正常结束时会影响数据库数据的正确性?

事物具有一致性,事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

17.数据转储的意义是什么?
转储的意义是建立冗余数据,并利用这些冗余数据实施数据库恢复。

18.什么是日志文件?登记日志文件时为什么要先写日志文件,后写数据库?

    日志文件是用来记录事务对数据库的更新 *** 作的文件。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。
    如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO *** 作,并不会影响数据库的正确性。

19.什么是检查点记录? 包括哪些内容?
检查点记录:增加一个重新开始文件,并让恢复子系统在登录日志文件期间动态地维护日志。
检查点种类包含四种,分别为MMDB的检查点、非失真检查点、失真检查点和日志驱动检查点。

20.试述使用检查点方法进行恢复的步骤。
(1)从重新开始文件(见第11题的图)中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。(2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。

这里建立两个事务队列:

      UNDO-LIST:需要执行undo *** 作的事务集合; 2) 2)     REDO-LIST:需要执行redo *** 作的事务集合。
      

把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。
3) 3) 从检查点开始正向扫描日志文件:
① ① 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列; ② ② 如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列,直到
日志文件结束;
4)对UNDO-LIST中的每个事务执行UNDO *** 作,对REDO-LIST中的每个事务执行REDO *** 作。

21.什么是数据库镜像? 有何作用?
数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数 据复制到
另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。

数据库镜像的用途有:
一是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。

二是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存