2023春数据库系统概论离线作业_第1页
2023春数据库系统概论离线作业_第2页
2023春数据库系统概论离线作业_第3页
2023春数据库系统概论离线作业_第4页
2023春数据库系统概论离线作业_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江高校远程教化学院

《数据库系统概论》课程作业

姓名:夏林学号:

年级:2023秋学习中心:洞头学习中心

第一章习题2、6、10

其次章习题5、6

第三章习题4、5、9

第四章习题3、7、8、10

第五章习题2、5、6、7

第六章习题2、7

第七章习题9、10

第九章习题3

第十章习题3、4、5

第一|-一章习题4、7、9*、10*

作业:

第一章习题2、6、10

习题2运用数据库系统有什么好处?

答:运用数据库系统的好处是由数据库管理系统的特点或优点

确定的。

运用数据库系统的好处很多,例如,可以大大提高应用开发

的效率,便利用户的运用,减轻数据库系统管理人员维护的负担,

4-A-»-

守守

运用数据库系统可以大大提高应用开发的效率。因为在数据

库系统中应用程序不必考虑数据的定义、存储和数据存取的具体

路径,这些工作都由DBMS来完成。用一个通俗的比方,运用

了DBMS就如有了一个好参谋、好助手,很多具体的技术工作

都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,

而不必为数据管理的许很多多困难的细微环节操劳。还有,当

应用逻辑变更,数据的逻辑结构也须要变更时,由于数据库系统

供应了数据与程序之间的独立性,数据逻辑结构的变更

是DBA的责任,开发人员不必修改应用程序,或者只须要修改

很少的应用程序,从而既简化了应用程序的编制,又大大削减了

应用程序的维护和修改。

运用数据库系统可以减轻数据库系统管理人员维护系统的

负担。因为DBMS在数据库建立、运用和维护时对数据库进行

统一的管理和限制,包括数据的完整性、平安性、多用户并发限

制、故障复原等,都由DBMS执行。

总之,运用数据库系统的优点是很多的,既便于数据的集中

管理,限制数据冗余,提高数据的利用率和一样性,又有利于应

用程序的开发和维护。

习题6数据库管理系统的主要功能有哪些?

答:数据库管理系统的主要功能有:数据定义功能、数据操纵功

能、数据库的运行管理、数据库的建立和维护功能、其他功能等。

习题10试给出三个实际状况的E-R图,要求实体型之间具有

一对一、一对多、多对多各种不同的联系。

答:

一对一联系一对多联系多对多联系

部门和总经理是两个实体。一个部门或者一个公司只有一个

总经理,一个总经理只在一个公司工作,不能兼任两个以上公司

的总经理,所以部门和总经理两个实体之间是一对一的联系。

一个科研项目可以由多个教员和多个学生担当o假如规起一

个教员只能参与一个项目,一个学生也只能参与一个项目。依据

这样的语义,科研项目和教员、学生三者之间是一对多的联系。

假如一门课程可以由多个教员讲授,一个教员可以讲授多门

课程,则课程和教员之间是多对多的联系。

其次章习题4、5

习题4试述关系模型的完整性规则。在参照完整性中,为什么

外部码属性的值也可以为空?什么状况下才可以为空?

答:关系模型的完整性规则是对关系的某种约束条件。关系模型

中可以有三类完整性约束:实体完整性、参照完整性和用户定义

的完整性。

在参照完整性中,外部码属性的值可以为空,它表示该属性

的值尚未确定。但前提条件是该外部码属性不是其所在关系的主

属性。例如,在下面的“学生”表和“专业”表中,(主码用下

划线标识)。“专业号”是“学生”表的一个外部码,不是“学生”

表的主属性,可以为空。其语义是,该学生的专业尚未确定。

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

而在下面的“选修”表中的“课程号”虽然也是一个外部

码属性,但它又是“选修”表的主属性,所以不能为空。因为关

系模型必需满意实体完整性。

课程(课程号,课程名,学分)

选修(学号,课程号,成果)

习题5(具体见书本74页)

答:由于ALPHA.QBE语言未讲授,所以该题只用关系代数

语言来完成如下查询:

(1)求供应工程J1零件的供应商号码SNO;

冗SN()(°

JNO=,J1(SPJ))

(2)求供应工程J1零件P1的供应商号码SNO;

nSNO(°JNO=,JI,APNO=,PI,

(3)求供应工程JI零件为红色的供应商号码SNO;

(兀SNO,PNO

JISNO(。JNO=,JI,(SPJ)WJlPN°(。COLOR='

红,(P)))

(4)求没有运用天津供应商生产的红色零件的工程号JNO;

兀JNO(J)nJNO(兀SNO(。CITY=,天津,⑸甲n

叮PNO(。

SNO,PNO,JNO(S2COLORS(P)))

(5)求至少用了供应商SI所供应的全部零件的工程号JNO。

PNO,JNO(SPJ)4-JlPN°(0SNO=,sr(SPJ))

第三章习题3、4、5、11

习题3用SQL语句建立其次章习题5中的4个表

答:对于S表:S(SNO,SNAME,STATUS,CITY);

CREATETABLES(SNOCHAR(3)UNIQUE,SNAMECHAR(1

0),STATUSCHAR(2),CITYCHAR(10));

对于P表:P(PNO,PNAME,COLOR,WEIGHT);

CREATETABLEP(PNOCHAR(3)UNIQUE,PNAMECHAR(1

0),COLORCHAR(4),WEIGHTINT);

对于J表:J(JNO,JNAME,CITY);

CREATETABLEJ(JNOCHAR(3)UNIQUE,JNAMECHAR(

12),CITYCHAR(IO));

对于SPJ表:SPJ(SNO,PNO,JNO,QTY);

CREATETABLESPJ(SNOCHAR(3),PNOCHAR(3),JNOC

HAR(3),QTYINT));

习题4针对上题中建立的四个表试用SQL完成其次章习题5中

的查询。

答:

(1)求供应工程J1零件的供应商号码SNO;

SELECTDISTINCTSNO

FROMSPJ

WHEREJNO=,J1,;

(2)求供应工程JI零件Pl的供应商号码SNO;

SELECTDISTINCTSNO

FROMSPJ

,,,

WHEREJNO="ANDPNO=P1;

(3)求供应工程JI零件为红色的供应商号码SNO;

SELECTDISTINCTSNO

FROMSPJ,P

WHEREJNO=,J1,ANDSPJ.PNO=P.PNOANDCOLOR=,

红,;

(4)求没有运用天津供应商生产的红色零件的工程号JNO;

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMS,P,SPJ

WHERESPJ.JNO=J.JNO

ANDSPJ.SNO=S.SNO

ANDSPJ.PNO=P.PNO

ANDS.CITY=,天津,

ANDP.COLOR=—);

⑸求至少用了供应商SI所供应的全部零件的工程号JNO;

SELECTDISTINCTJNO

FROMSPJSPJZ

WHERENOTEXISTS

(SELECT*

FROMSPJSPJX

WHERESNO^SF

ANDNOTEXISTS

(SELECT*

FROMSPJSPJY

WHERESPJY.PNO=SPJX.PNO

ANDSPJY.JNO=SPJZ.JNO));

习题5针对习题3中的四个表试用SQL完成以下各项操作:

答:(1)找出全部供应商的姓名和所在城市。

SELECTSNAME,CITY

FROMS;

(2)找出全部零件的名称、颜色、重量。

SELECTPNAME,COLOR,WEIGHT

FROMP;

(3)找出访用供应商SI所供应零件的工程号码。

SELECTDISTINCTJNO

FROMSPJ

WHERESNO^Sl5;

(4)找出工程项目J2运用的各种零件的名称及其数量。

SELECTP.PNAME,SPJ.QTY

FROMP,SPJ

WHEREP.PNO=SPJ.PNOANDSPJ.JNO=J21;

(5)找出上海厂商供应的全部零件号码。

SELECTDISTINCTPNO

FROMSPJ

WHERESNOIN

(SELECTSNO

FROMS

WHERECITY=,上海,);

(6)找出访用上海产的零件的工程名称。

SELECTJNAME

FROMJ,SPJ,S

WHEREJ.JNO=SPJ.JNO

ANDSPJ.SNO=S.SNO

ANDS.CITY=,上海,;

⑺找出没有运用天津产的零件的工程号码。

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERESPJ.JNO=J.JNO

ANDSNOIN

(SELECTSNO

FROMS

WHERECITY=,天津,));

(8)把全部红色零件的颜色改成蓝色。

UPDATEPSETCOLORS蓝'

WHERECOLORS红,;

⑼由S5供应J4的零件P6改为由S3供应,请作必要的修改。

UPDATESPJSETSNO=,S3,

WHERESNO=,S5,ANDJNO='J4'ANDPNO='P6';

(10)从供应商关系中删除S2的记录,并从供应状况关系中删除

相应的记录。

DELETFROMSPJ

WHERESNO=,S2,;

DELETFROMS

WHERESNO=,S2,;

(11)请将(S2,J6,P4,200)插入供应状况关系。

INSERTINTOSPJ(SNO,JNO,PNO,QTY)

VALUES('S2','J6','P4',200);

习题11请为三建工程项目建立一个供应状况的视图,包括供应

商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该

视图完成下列查询:

(1)找出三建工程项目运用的各种零件代码及其数量。

(2)找出供应商S1的供应状况。

答:建视图:

CREATEVIEWV_SPJAS

SELECTSNO,PNO,QTYFROMSPJWHEREJNO=

(SELECTJNOFROMJWHEREJNAME=,三建);

对该视图查询:

⑴找出三建工程项目运用的各种零件代码及其数量。

SELECTPNO,QTYFROMV_SPJ;

⑵找出供应商S1的供应状况。

SELECTPNO,QTY/*SI供应三建工程的零件号和对应数量

*/

FROMV_SPJ

WHERESNO=,S1,;

第四章习题4、8、9、11

习题4试述CC评估保证级划分的基本内容

答:CC提出国际公认的表述信息技术平安性的结构,把信息产

品的平安要求分为平安功能要求、平安保证要求。CC文本由三

部分组成:简介和一般模型;平安功能要求;平安保证要求。

CC评估保证级划分如下:

评估TCSEC平

保证定义安级别(近

级似相当)

EAL1功能测试(functionallytested)

EAL2结构测试(structurallytested)C1

EAL3系统地测试和检查(methodicallytestedC2

andchecked)

EAL4系统地设计、测试和复查(methodicallyB1

designed>tested,andreviewed)

EAL5半形式化设计和测试(semiformallyB2

designedandtested)

EAL6半形式化验证的设计和测试(semiformallyB3

verifieddesignandtested)

EAL7形式化验证的设计和测试(formallyAl

verifieddesignandtested)

习题8今有两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号)

部门(部门号,名称,经理名,地址,电话号)

请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下

授权定义或存取限制功能:

答:

(a)用户王明对两个表有SELECT权力。

GRANTSELECTON职工,部门TO王明

(b)用户李勇对两个表有INSERT和DELETE权力。

GRANTINSERT,DELETEON职工,部门TO李勇

(c)每个职工只对自己的记录有SELECT权力。

GRANTSELECTON职工WHEN

USER()=NAMETOALL;

这里假定系统的GRANT语句支持WHEN子句和USER()

的运用。用户将自己的名字作为ID。留意,不同的系统这些

扩展语句可能是不同的。

(d)用户刘星对职工表有SELECT权力,对工资字段具有更新权

力。

GRANTSELECT,UPDATE(工资)ON职工TO刘星

(e)用户张新具有修改这两个表的结构的权力。

GRANTALTERTABLEON职工,部门TO张新;

(f)用户周平具有对两个表全部权力(读,插,改,删数据),并

具有给其他用户授权的权力。

GRANTALLPRIVILIGESON职工,部门TO周平

WITHGRANTOPTION;

(g)用户杨兰具有从每个部门职工中SELECT最高工资、最低工

资、平均工资的权力,他不能查看每个人的工资。

首先建立一个视图,然后对这个视图定义杨兰的存取权限:

CREATEVIEW部门工资AS

SELECT部门.名称,MAX(工资),MIN(工资),AVG(工

资)FROM职工,部门

WHERE职工.部门号二部门.部门号GROUPBY职工.部门

号;

GRANTSELECTON部门工资TO杨兰;

习题9把习题8中(a)~(g)的每一种状况,撤消各用户所授

予的权力。

答:

(a)

REVOKESELECTON职工,部门

FROM王明;

(b)

REVOKEINSERT,DELETEON部门

FROM李勇;

(c)

REOVKESELECTON职工

WHENUSER()=NAME

FROMALL

这里假定用户将自己的名字作为ID,且系统的REOVKE语

句支持WHEN子句,系统也支持USER()的运用。

(d)

REVOKESELECT,UPDATEON职工

FROM刘星;

(e)

REVOKEALTERTABLEON职工,部门

FROM张新;

(f)

REVOKEALLPRIVILIGESON职工,部门

FROM周平;

(g)

REVOKESELECTON部门工资

FROM杨兰;

DROPVIEW部门工资;

习题11理解并说明MAC机制中主体、客体、敏感度标记的含

义。

答:在MAC中,DBMS所管理的全部实体被分为主体和客体。

主体是系统中的活动实体,既包括DBMS所管理的实际用户,

也包括代表用户的各进程。客体是系统中的被动实体,是受主

体操纵的,包括文件、基表、索引、视图等。对于主体和客体,

DBMS为它们每个实例(值)指派一个敏感度标记(Label)。敏

感度标记被分成若干级别,例如绝密(TopSecret)、机密

(Secret)、可信(Confidential)、公开(Public)等。主体的

敏感度标记称为许可证级别,客体的敏感度标记称为密级

(ClassificationLevel)。MAC机制就是通过对比主体的Label

和客体的Label,最终确定主体是否能够存取客体。

第五章习题2、5、6、7

习题2数据库的完整性概念与数据库的平安性概念有什么区分

和联系?

答:数据的完整性和平安性是两个不同的概念,但是有肯定的联

系。数据的完整性是为了防止数据库中存在不符合语义的数据,

也就是防止数据库中存在不正确的数据o数据的平安性是爱护数

据库防止恶意的破坏和非法的存取。完整性检查和限制的防范对

象是不合语义的、不正确的数据,防止它们进入数据库。平安性

措施的防范对象是非法用户和非法操作,防止他们对数据库数据

的非法存取。

习题5RDBMS在实现参照完整性时须要考虑哪些方面?

答:RDBMS在实现参照完整性时须要考虑以下几个方面:

⑴外码是否可以接受空值。

(2)删除被参照关系的元组时的考虑,这时系统可能实行的作法有

三种:

1)级联删除(CASCADES)

2)受限册IJ除(RESTRICTED)

3)置空值删除(NULLIFIES)。

⑶在参照关系中插入元组时的问题,这时系统可能实行的作法

有:

1)受限插入;2)递归插入。

(4)修改关系中主码的问题。一般是不能用UPDATE语句修改关

系主码值。假如须要修改主码值,只能先删除该元组,然后再把

具有新主码值的元组插入到关系中。假如允许修改主码,首先要

保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关

系还是被参照关系。

习题6假设有下面两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号),其中职

工号为主码;

部门(部门号,名称,经理名,电话),其中部门号为主码;

用SQL语言定义这两个关系模式,要求在模式中完成以下完整

性约束条件的定义:

(1)定义每个模式的主码;(2)定义参照完整性;(3)定义职

工年龄不得超过60岁。

答:定义部门

CREATETABLEDEPT(DeptnoNUMBER(2),DeptnameCH

AR(10),ManagerCHAR(10),PhoneNumberCHAR(12)PRIM

ARYKEY(Deptno));

定义职工

CREATETABLEEMP(EmpnoNUMBER(4),EnameCHAR(

10),AgeNUMBER(2)CHECK(Age<=60),JobCHAR(9),

SalNUMBER(7,2),

DeptnoNUMBER(2),PRIMARYKEY(Empno),

FOREIGNKEY(Deptno)REFERENCESDEPT(Deptno));

习题7关系系统中,当操作违反实体完整性、参照完整性和用户

定义的完整性约束条件时,一般是如何分别进行处理的?

答:对于违反实体完整性和用户定义的完整性的操作一般都采

纳拒绝执行的方式进行处理。而对于违反参照完整性的操作,并

不都是简洁地拒绝执行,有时要依据应用语义执行一些附加的操

作,以保证数据库的正确性。

第六章习题2、12

习题2

建立一个关于系、学生、班级、学会等诸信息的关系数据库。

描述学生的属性有:学号、姓名、诞生年月、系名、班号、

宿舍区。

描述班级的属性有:班号、专业名、系名、人数、入校年份。

描述系的属性有:系名、系号、系办公室地点、人数。

描述学会的属性有:学会名、成立年份、地点、人数。

有关语义如下:一个系有若干专业,每个专业每年只招一个

班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学

生可参与若干学会,每个学会有若干学生。学生参与某学会有一

个入会年份。

请给出关系模式,写出每个关系模式的微小函数依靠集,

指出是否存在传递函数依靠,对于函数依靠左部是多属性的状况

探讨函数依靠是完全函数依靠,还是部分函数依靠。

指出各关系的候选码、外部码,有没有全码存在?

答:

关系模式:学生(学号,姓名,诞生年月,系号,班号,专业

号,宿舍区)

专业(专业号,专业名)

班级(班号,专业名,系号,班人数,入校年份)

系(系号,系名,系办公室地点,系人数)

学会(学会名,成立年月,地点,学会人数)

学生一学会(学号,学会名,入会年份)

每个关系模式的微小函数依靠集:

学生:学号一姓名,学号一诞生年月,学号一系号,学号一班

号,班号一系号,系号一宿舍区,学号一专业号,学号一宿舍区,班

号一宿舍区专业:专业号一专业名

班级:班号一专业名,班号一班人数,班号一入校年份,班号

一系号,专业号一系号,(专业号,入校年份)一班号

系:系号f系名,系名f系号,系号f系办公室地点,系号f系

人数

学会:学会名一成立年月,学会名一地点,学会名一学会人数

学生一学会:(学号,学会名)一入会年份

'学生'中存在传递函数依靠:学号一班号,班号一系号

'班'中存在传递函数依靠:(专业名,入校年份)一班号,班号

f班人数,(学号,学会名)一入会年份和(专业名,入校年

份)一班号均为'学生一学会'和‘班级’中的函数依靠,是

完全函数依靠

关系候选码外部码全码

学生学号班号,系号无

班级班号,(专业号,入校年份)系号无

系系号和系名无无

学会学会名无无

学生….学会(学号,学会名)学号,学会名无

习题12下面的结论哪些是正确的,哪些是错误的?对于错误的

结论请给出理由或给出反例说明之。

答:(1)任何一个二目关系是属于3NF。-一对。

(2)任何一个二目关系是属于BCNF。-一对。

(3)任何一个二目关系是属于4NF。-一对。

(4)错。当A-B在R上成立,关系R(A,B,C)等于其投

影RI(A,B)和R2(A,C)的连接,反之则不然。正确的应

当是:当且仅当多值依靠AffB在R上成立,关系R(A,B,C)

等于其投影R1(A,B)和R2(A,C)的连接。

(5)对。

(6)对。

(7)对。

(8)错。反例:关系模式SC(S#,C#,G),(S#,C#)-G,但是

S#VG,C#VG.

第七章习题9、11、12

习题9试述数据库概念结构设计的重要性和设计步骤。

答:重要性:数据库概念设计是整个数据库设计的关键,将

在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作

为各种数据模型的共同基础,从而能更好地、更精确地用某

一DBMS实现这些需求。

设计步骤:概念结构的设计方法有多种,其中最常常采纳的策

略是自底向上方法,该方法的设计步骤通常分为两步:第1步是

抽象数据并设计局部视图,第2步是集成局部视图,得到全局的

概念结构。

习题11什么是数据库的逻辑结构设计?试述其设计步骤。

答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基

本E-R图转换为与选用的DBMS产品所支持的数据模型相符合

的逻辑结构。设计步骤为:

(1)将概念结构转换为一般的关系、网状、层次模型;

(2)将转换来的关系、网状、层次模型向特定DBMS支持下的

数据模型转换;

(3)对数据模型进行优化。

习题12试把第一章习题12和习题13中的E-R模型转换为关

系模型。

答:

学校(校名,校长,地点)

系(系号,系名,主任名,学校名)

教研室(室号,名称,负责人,系号)

教员(教员号,教员名,职称,室号)

班级(班号,班长,系号)

学生(学号,姓名,系号,班号)

课程(课程号,课程名,学分)

教授(教员号,人数)

探讨生(学号,专业方向,教员号)

选修(学号,课程号,成果)

仓库(仓库号,面积,管理员)

零件(零件号,名称,仓库号,数量)

材料(材料号,材料名,类别)

产品(产品号,产品名,规格型号,单价)

存放(仓库号,材料号,数量)

组成(产品号,零件号,数量)

数量

制造(零件号,材料号,数量)

第九章习题2

习题2对学生-课程数据库有如下的查询

SELECTCname

FROMStudent,Course,SC

WHEREStudent.Sno=SC.SnoAND

Course.Cno=SC.CnoAND

Student.Sdept=,IS,)

此查询要求信息系学生选修了的全部课程名称。

试画出用关系代数表示的语法树,并用关系代数表达式优化算法

对原始的语法树进行优化处理,画出优化后的标准语法树。

答:

结果“Cname

Project(Cname)。student.sdept='is,

Select(Student.Sdept=,IS,)OSC.Cno=Course.Cno

最初的语法树关系代数语法树

Student

优化后的语法树

第十章习题6、7、8

习题6数据库转储的意义是什么?试比较各种数据转储方法。

答:数据转储是数据库复原中采纳的基本技术。所谓转储

即DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的

过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库

复原到转储时的状态。

静态转储:在系统中无运行事务时进行的转储操作。静态转储简

洁,但必需等待正运行的用户事务结束才能进行。同样,新的事

务必需等待转储结束才能执行。明显,这会降低数据库的可用

性。

动态转储:指转储期间允许对数据库进行存取或修改。动态转储

可克服静态转储的缺点,它不用等待正在运行的用户事务结束,

也不会影响新事务的运行。但是,转储结束时后援副本上的数据

并不能保证正确有效。因为转储期间运行的事务可能修改了某些

数据,使得后援副本上的数据不是数据库的一样版本。

为此,必需把转储期间各事务对数据库的修改活动登登记

来,建立日志文件(logfile)o这样,后援副本加上日志文件就

能得到数据库某一时刻的正确状态。

转储还可以分为海量转储和增量转储两种方式。

海量转储是指每次转储全部数据库。增量转储则指每次只转

储上一次转储后更新过的数据。从复原角度看,运用海量转储得

到的后备副本进行复原一般说来更简洁些。但假如数据库很大,

事务处理又特别频繁,则增量转储方式更好用更有效。

习题7什么是日志文件?为什么要设立日志文件?

答:日志文件是用来记录事务对数据库的更新操作的文件。不同

数据库系统采纳不同的日志文件格式,主要有两种:以记录为单

位的和以数据块为单位的日志文件。

日志文件在数据库复原中起着特别重要的作用。可以用来进

行事务故障复原和系统故障复原,并帮助后备副本进行介质故障

复原。

习题8登记日志文件时为什么必需先写日志文件,后写数据

库?

答:把对数据的修改写到数据库中和把表示这个修改的日志记录

写到日志文件中是两个不同的操作。有可能在这两个操作之间发

生故障,即这两个写操作只完成了一个。

假如先写了数据库修改,而在运行记录中没有登记这个修

改,则以后就无法复原这个修改了。假如先写日志,但没有修改

数据库,在复原时只不过是多执行一次UNDO操作,并不会影

响数据库的正确性。所以肯定要先写日志文件,即首先把日志记

录写到日志文件中,然后写数据库的修改。

第H^一章习题4、7、9、10

习题4如何用封锁机制保证数据的一样性?

答:DBMS在对数据进行读、写操作之前首先对该数据执行封

锁操作,例如下图中事务T1在对A进行修改之前先对A执

行Xlock(A),即对A力口x锁。这样,当T2恳求对A加x锁时

就被拒绝,T2只能等待TI释放A上的锁后才能获得

对A的x锁,这时它读到的A是T1更新后的值,再按此新

的A值进行运算。这样就不会丢失T1的更新。

TiT2

①Xlock(A)

获得限制权

②读A=16

Xlock(A)

③A-A-1等待

写回A=15等待

Commit等待

Unlock(A)等待

®获得Xlock

读A=15

AyA-1

⑤写回A=14

Commit

Unlock(A)

DBMS依据肯定的封锁协议,对并发操作进行限制,使得多个

并发操作有序地执行,就可以避开丢失修改、不行重复读和读

“脏’夕数据等数据不一样性。

习题7请给出检测死锁发生的一种方法,当发生死锁后如何解

除死锁?

答:数据库系统一般采纳允许死锁发生,DBMS在解决死锁的

问题上普遍采纳的是诊断并加以解除的方法。

DBMS中诊断死锁的方法与操作系统类似,一般运用超时

法或事务等待图法。

超时法是:假如一个事务的等待时间超过了规定的时限,就

认为发生了死锁。超时法实现简洁,但有可能误判死锁,事务因

其他缘由长时间等待超过时限时,系统会误认为发生了死锁。若

时限设置得太长,又不能刚好发觉死锁发生。

DBMS并发限制子系统检测到死锁后,就要设法解除。通

常采纳的方法是选择一个处理死锁代价最小的事务,将其撤消,

释放此事务持有的全部锁,使其他事务得以接着运行下去。当然,

对撤销的事务所执行的数据修改操作必需加以复原。

习题9

设Tl、T2、T3是如下的3个事务,设A的初始值为0;

Tl:A:=A+2;

T2:A:=A*2;

T3:A:=A**2;(A-A2)

若这3个事务允许并发执行,则有多少种可能的正确结果,请一

一列举出来;

请给出一个可串行化的调度,并给出执行结果;

请给出一个非串行化的调度,并给出执行结果;

若这三个事务遵守两段锁协议,请给出一个不产生死锁的可串行

化调度;

若这三个事务遵守两段锁协议,请给出一个产生死锁的调度;

答:有六种正确的结果:

1.Tl—T2—T316

2.Tl—T3—T28

3.T2—Tl—T34

4.T2—T3—T12

5.T3—Tl—T24

6.T3—T2—T12

T1T2T3T1T2T3

SlcokASlockA

Y=A=0Y=A二0

UnlockAUnlockA

XlockASlockA

SlockAY=A二0

A=Y+2等待XlockA

写回A(=2)等待等待UnlockA

UnlockA等待A=Y+2

Y=A=2写回A(=2)SlockA

UnlockAUnlockA等待

XlockAY=A=2

SlockAUnlockA

A=Y*2等待XlockA

写回A(=4)等待XlockA

UnlockA等待等待Y=Y**2

Y二A二4等待写回A(=4)

UnlockA等待UnlockA

XlockA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论