云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据库技术作业和答案(包括习题答案) - 图文

数据库技术作业和答案(包括习题答案) - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 18:45:33

数据库系统原理与设计 14. 可串行化 15 项A的值是T1更新后的值。在T2的执行过程中,发现T1事务有错误,因此撤销T1。那么此时数据库中数据项A的值就不一致了。

12. 使整个数据库回到错误事务提交前的某一状态,这样做的优点是能保证数据一致,缺点是有一些不访问错误事务修改过数据的事务,事务的撤销是多余的。

13. 可以使用RAID来实现稳定存储器。 14. 事务故障是指那些导致事务无法正常执行的故障,逻辑错误和系统错误可以导致事务故障的发生。

系统故障主要是由于服务器在运行过程中,突然发生操作系统错误、停电等原因造成的非正常中断,造成用户对数据库进行处理的事务被突然中断,内存缓冲区中的数据全部丢失,但硬盘、磁带等外设上的数据未受损失的一种故障。

介质故障是由于硬件的可靠性较差出现的存储介质发生物理损坏,数据库的数据全部或部分丢失,破坏性较大。

15. 数据恢复的基本原理是冗余。

第10章

一、选择题

1 B 2 C 3. B 4. D 5.B 6A 7B 8D 9A 10A 11C 12 D 13B 14.AB 15D

二、填空题 1. 隔离性

2. 调度事务的并发是可串行化的

3. 两段锁协议,时间戳协议,有效检查协议4. 超时法,等待图法 5. 二 6. 意向锁 7. 显式封锁 8. 隐式封锁 9. 死锁 10. 时间戳 11. 一次封锁法 12. 活锁 13. 死锁

15. 三级

三、思考题

1. 答:多个事务并发执行时,使用并发控制可以避免数据不一致。

2. 答:丢失修改、不可重复读、读脏数据 3. 答:封锁是实现事务并发控制非常有效的一种技术。封锁是事务在对数据库某个数据项进行读写操作前,得到系统对该数据项进行操作的一种授权。

4. 答:排它锁(X锁)、共享锁(S锁) 排它锁(exclusive locks)。排它锁又名写锁。当一个数据对象A被事务T加了排它锁后,则只允许事务T读取和修改数据,在此期间,其他事务都不能对数据执行任何操作。

共享锁(share locks)。共享锁又名读锁。当一个数据对象A被事务T加了共享锁后,则事务T对数据对象A可以执行读操作,但是不能执行写操作,在此期间,其他事务也可以数据对象A加共享锁,但是不能对数据对象A加排它锁。

5. 答:一级封锁协议:事务T在对数据项

A修改之前,必须先对数据A加排它锁,直到事务结束才释放。

二级封锁协议是:事务T在对数据修改前,必须先加排它锁,直到事务结束才释放排它锁;事务T在要读取的数据前,必须先加共享锁,读完后即可释放共享锁。

三级封锁协议是事务T在读取数据之前必须先对其加共享锁,在要修改数据之前必须先对其加排它锁,直到事务结束后才释放所有锁。

6. 答:所谓“两段”锁,其含义是数据分两个阶段进行加锁和解锁:

第一阶段是获得封锁,也称为扩展阶段。这在阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。

第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的琐,但是不能再申请任何琐。

16 数据库系统原理与设计 7. 答:时间戳排序协议(timestamp-ordering

事务1读取数据后,事务2对那个数据protocol)是一个串行化调度的协议,它保证对数据项的读写操作有冲突的事务按照时间戳顺序执行,协议内容如下:

1)事务T读数据A——read(A)。

(1)若TS(T)

(2)若TS(T)>=W-timestamp(A),则执行read(A)操作,R-timestamp(A)被设置成TS(T)和R-timestamp(A)中的较大值。

2)事务T写数据A——write(A)

(3)若TS(T)

(4)若TS(T)

(5)若TS(T)不满足上面情况,则执行write(A)操作,并且将W-timestamp(A)设置成TS(T)。

注意:R-timestamp(A),、W-timestamp(A)的初始值等于最小时间戳。如果事务T由于发出read(A)或者write(A)而回滚,那么系统会给事务赋新的时间戳,并且重新启动事务。

8. 答:活锁:这种在多个事务请求对同一数据封锁时,使某一用户总是处于等待的状况。

死锁:这种多事务交错等待的僵持局面称为死锁。

9. 答:一次封锁法、顺序封锁法、等待封锁法。

10. 答:选择牺牲者,回滚,防止饿死。 11. 答:意向锁的含义是如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。

有三种意向锁:意向共享锁(ntent share lock),简记为IS锁,意向排它锁(intent exclusive lock),简记为IX锁,共享意向排它锁(share intent exclusive lock),简记为SIX锁。

12.

在数据库中的副本做了修改,当数据库再次到数据库读取数据时,得到与前一次不同的值。

事务1事务21读取A=172读取A=173A=A-1=16写回数据库4A=A-1=16写回数据库

13. 事务1读取了数据项A,并对它作了

修改,然后又将它写回到数据库;事务2到数据库中同样读取A,此时得到的是修改后的A:由于某种原因,事务1要执行回滚操作,将A恢复为它原来的值,这时事务2中A的值和数据库中A的值就不一致,事务2读到的数据是不正确的——“脏”数据。

事务1事务21读取A=17A=30写回数据库2读取A=30事务回滚3数据库中A恢复原值A=17

14.采用三级封锁协议,如图

事务1事务21Lock-X(A)读A=172Lock-X(B)Lock-X(A)读B=13Lock-X(B)3求和=A+B=30等待4Lock-X(A)读A=17等待5unLock(A)等待unLock(B)等待67Lock-X(A)成功读A=178Lock-X(B)成功读B=13求和=A+B=309A=2*A;写回数据库10unLock(A)11unLock(B)

数据库系统原理与设计 17 15.采用二级封锁协议,如图

事务1事务21Lock-X(A)2读取A=173Lock-X(A)4等待5A=A-1=16写回数据库等待6发生故障rollback等待A=177unLock(A)等待8Lock-X(A)成功9读取A=1710A=A-1=16写回数据库11unLock(A)

第11章

一、选择题 1. C 2. B

3. A

4. C

5. D 二、填空题 1. 无缝连接 2. 方法 3. 实际变元 4. 封装 5. 可扩充性 6. 封装 7. 滞后联编 8. 状态 9. 行为 10. 方法

三、名词解释

1. 答:面向对象:面向对象(Object Oriented)方法,简称OO方法,是建立在“对象”概念基础上的方法学。面向对象的主要思想可以概括为:面向对象方法的万事万物皆对象;每个对象皆由其他对象构成;每个对象都有类型、同一类型的对象所能接收的消息相同;程序是对象的组合,彼此通过消息的传递,请求其他对象进行工作。

2.面向对象数据库:用全新的面向对象的概念来设计数据库。面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言

与数据库的无缝连接。面向对象数据库还吸收了面向对象程序设计语言的思想,如支持类、方法、继承等概念。面向对象数据库系统支持面向对象数据模型,简称OO模型。也就是说,一个面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OO模型所定义的对象的集合体。

3.对象-关系数据库:在主流的关系数据库的基础上加入对象化特征,使之提供面向对象的服务,保留了关系型数据库的结构,但允许关系表中的列含有一个复杂的对象,这些对象能够捆绑处理复杂数据的处理过程。但访问语言还是基于SQL。

4.ODL:对象定义语言(Object Definition

Language)是ODMG推荐的用来创建数据模式的标准语言,支持最新的ODMG 3.0 对象模型的语义结构。它采用面向对象的术语来说明数据库结构,通过给出类的属性、关联和方法来描述面向对象的模型,进而将其直接转换成面向对象数据库管理系统(OODBMS)的说明。ODL是与特定面向对象语言相互独立的。

5.OQL:对象定义语言(Object Definition Language)是ODMG推荐的用来创建数据模式的标准语言,支持最新的ODMG 3.0 对象模型的语义结构。它采用面向对象的术语来说明数据库结构,通过给出类的属性、关联和方法来描述面向对象的模型,进而将其直接转换成面向对象数据库管理系统(OODBMS)的说明。ODL是与特定面向对象语言相互独立的。

6.SQL3:著名的对象-关系数据库语言。SQL3标准支持ORDBMS模型。它以关系数据库为基础,在此基础上加入OO概念扩充,具有明显的SQL特征,适合于数据库的模式定义和操纵。SQL3主要由数据定义和数据查询两部分组成,除了具备传统关系数据库系统SQL的基本功能外,还具有几种OO特征的功能:能够定义复杂数据类型与抽象数据类型;具有数据间的组合和继承功能;能定义和使用函数。

7.类型间继承:类型继承其实就是类继承,表示类型之间的一种超类——子类关系。

18 数据库系统原理与设计 8.表间继承:在SQL3中,不仅可以定义类

型间继承,还可以定义表间继承。表间继承表示不同的表格之间存在的超类——子类关系。

9. SQL3函数(FUNCTION):SQL3允许用户自定义函数(FUNCTION)。利用关键字CREATE FUNCTION,给出函数的名称,说明输入参数以及输出的参数类型,函数的头部就构造完了。函数体由BEGIN和END表明函数的开始和结束,函数的核心部分就是要完成的功能,也是标准的SQL3查询语句。

10. SQL3过程(PROCEDURE):SQL3允许用户自定义过程(PROCEDURE)。SQL3中的PROCEDURE非常类似于某些高级程序语言中的PROCEDURE,它的定义和使用很像高级语句。

四.思考题

1. 答:ODL类型系统有2种类型,一种是基本类型,包括:int、real/float、string、enumerated types,以及class。另外一种是类型构造器,包括:表示结构体的Struct,以及四种集合类型:Set、Bag、List、Array。

2. SQL3对关系数据库中的数据类型进行了扩展,使它不仅可以支持基本数据类型,还可以处理复合数据类型。基本数据类型除了包含SQL2中的数据类型外,在SQL3中又引入了三种新的,他们是:BOOLEAN 类型、CLOB 类型和BLOB 类型。复合数据类型包括两层:数据类型构造器和用户自定义类型。

3. 答:

/*定义超类person*/

interface Person(extent people) {attribute string name; attribute integer age; };

/*类Faculty是超类person的子类*/

Interface Faculty : person(extent Faculties key fno)

{attribute string fno; Attribute integer salary;

/*定义类型Faculty中属性works-for, teach与类型University的staff及其类型coursetext的teacher间的组合关系*/

Relationship University works-for inverse University : staff;

Relationship setteach inverse coursetext : teacher;

/*统计教师授课门数的方法*/

integer num-teach() };

Interface University(extent Unversities key uno)

{attribute string uno; attribute string uname; attribute string city;

relationship Faculty president; relationship set staff inverse Faculty : works-for;

relationship setedit inverse coursetext : editor;

/*统计学校人数的方法*/ integer num-staff() };

Interface coursetext(extent coursetexts)

{attribute string cname; attribute string textname;

relationship Faculty teacher inverse Faculty : teach;

relationship University editor inverse University : edit

};

4. 答:

Select F.works-for.uname, F.name From Faculty F

Where F.num-teach() > 3;

5

Select distinct C.name

From university U, u.staff F, F.teach C Where U.city=\

6. 答:

select p.pname

from Corses c, c.professors p where c.cname=”数据库原理”;

计算过程描述:

for Course中的每个 c do

for c.professors 中的每个p do if c.name=”数据库原理” then 把p.pname 加到输出包中

7. 答: 函数: 声明:

CREATE FUNCTION func_teacher_name(teach-num INTEGER)

RETURN STRING BEGIN

DECLARE name STRING;

Select distinct C.name AS name From university U, u.staff F, F.teach C

Where U.city=\RETURN name; END;

调用:

func_teacher_name(\

过程:

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

数据库系统原理与设计 14. 可串行化 15 项A的值是T1更新后的值。在T2的执行过程中,发现T1事务有错误,因此撤销T1。那么此时数据库中数据项A的值就不一致了。 12. 使整个数据库回到错误事务提交前的某一状态,这样做的优点是能保证数据一致,缺点是有一些不访问错误事务修改过数据的事务,事务的撤销是多余的。 13. 可以使用RAID来实现稳定存储器。 14. 事务故障是指那些导致事务无法正常执行的故障,逻辑错误和系统错误可以导致事务故障的发生。 系统故障主要是由于服务器在运行过程中,突然发生操作系统错误、停电等原因造成的非正常中断,造成用户对数据库进行处理的事务被突然中断,内存缓冲区中的数据全部丢失,但硬盘、磁带等外设上的数据未受损失的一种故障。 介质故障是由于硬件的可靠性较差出现的存储介质发生物理损坏,数据库的数据全部或

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com