第十一章并发控制
数据库系统概论考点总结

第一章绪论4个基本概念:数据、数据库、数据库管理系统、数据库系统数据:描述事物的符号记录数据的含义称为数据的语义计算机系统层次结构:硬件、操作系统、数据库管理系统、应用开发工具、应用系统数据库发展阶段:人工管理阶段、文件系统阶段、数据库系统阶段。
从文件系统到数据库系统标着着数据管理技术的飞跃。
数据库是计算机的基础软件数据库系统特点:数据结构化数据共享性高、冗余度低且易扩充数据独立性高物理独立性:指用户的应用程序与数据库中数据的物理储存时相互独立的。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。
数据由数据库管理系统统一管理和控制数据模型:是数据库系统的核心和基础。
描述了系统的静态特性、动态特性和完整性约束条件。
第一类:概念模型第二类:逻辑模型和物理模型概念模型表示法:实体联系方法:用E-R图表示。
数据模型的组成要素:数据结构数据操作数据的完整性约束条件常用数据模型:层次模型网状模型关系模型:最重要的数据模型,是用二维表的形式表示实体和实体间联系的数据模型。
面向对象数据类型对象关系的数据模型半结构化数据模型实体:客观存在且相互可区别的事物。
实体间联系:一对一、一对多、多对多。
基本层次联系:指两个记录以及它们之间一对多(包括一对一)的联系。
关系模型要求关系必须是规范化的。
模式:是数据库中全体数据的逻辑结构和特征的描述。
只涉及“型”,不涉及值。
实例:模式的一个具体值。
模式是相对稳定的、实例是相对变动的。
三级模式结构:模式,也称为逻辑模式外模式,也称为子模式或用户模式。
内模式:也曾内存储模式。
一个数据库中只能有一个内模式。
两种映像:外模式/模式映像、模式/内模式映像。
第二章关系数据库数据模型一般来说是由三个部分组成:数据结构数据操作数据约束域:一组具有相同数据类型的值的集合。
一个域允许不同取值的个数称为这个域的基数。
候选码:某一个属性组的值能唯一标识一个元组,而其子集不能,成该属性组为候选码。
2024年研究生招生考试大纲 控制科学与工程专业同等学历加试科目考试大纲及参考书:《数据库原理》

《控制科学与工程》专业同等学力加试考试大纲一、考试形式笔试。
二、考试科目《数据库基础》三、试卷满分及考试时间试卷满分100分,考试时间1.5小时。
四、试题题型结构名词解释题,简答题,综合题等。
五、主要参考书《数据库系统概论》,王珊、萨师煊编著,高等教育出版社,第五版。
六、试卷考查内容比例1.数据库绪论(8%)2.关系数据库(4%)3.关系数据库标准语言SQL(30%)4.数据安全性与完整性(2%)5.关系数据理论(14%)6.数据库设计与编程(30%)7.关系系统及其查询优化(8%)8.数据库恢复技术与并发控制技术(4%)七、课程考试内容及要求第一章数据库绪论考核要求:1、了解数据库系统的特点;2、掌握数据模型的基本概念;3、重点掌握数据库系统结构和组成;4、了解数据库技术的主要研究领域。
第二章关系数据库考核要求:1、了解关系模型的基本概念;2、重点掌握关系代数;3、重点掌握关系演算;4、重点掌握查询优化。
第三章关系数据库标准语言SQL考核要求:1、了解SQL的数据定义;2、重点掌握SQL的数据查询;3、重点掌握SQL的数据更新。
第四章数据库安全性考核要求:1、了解计算机系统安全性;2、掌握数据库安全性控制。
第五章数据库完整性考核要求:1、了解完整性约束条件;2、了解完整性控制。
第六章关系数据理论考核要求:1、掌握函数依赖;2、掌握范式的分解与应用。
第七章数据库设计考核要求:1、了解数据库设计的基本步骤;2、掌握数据库设计内容、设计描述、设计方法等;3、掌握E-R图向关系模型的转换。
第八章数据库编程考核要求:掌握嵌入式SQL的基本概念及简单应用,了解其应用;掌握存储过程的基本概念及简单应用,了解其应用;掌握ODBC的基本概念及原理、其编程基本方法和技巧,了解其应用。
第九章关系查询处理及其查询优化考核要求:1、了解关系系统的分类;2、重点掌握关系系统的查询优化;3、掌握查询的语法树以及优化后的语法树。
临床护理技术操作常见并发症的预防与处理规范

临床护理技术操作常见并发症第一章口腔护理技术操作并发症第二章鼻饲技术操作并发症第三章胃、空肠造瘘灌注操作并发症第四章导尿及留置导尿技术操作并发症第五章灌肠技术操作并发症第六章各种注射技术操作并发症第七章静脉输液技术操作并发症第八章静脉输血操作并发症第九章冷、热敷疗法操作并发症第十章血标本采集法操作并发症第十一章氧气吸入法操作并发症第十二章雾化吸入技术操作并发症第十三章吸痰技术操作并发症第十四章洗胃技术操作并发症第十五章静脉置管技术操作并发症第一章口腔护理技术操作并发症一、口腔粘膜损伤1. 发生原因(1)在口腔擦洗过程中,由于护理人员动作粗暴、裸露的止血钳尖端碰伤口腔粘膜及牙龈,特别是肿瘤患者放疗期、口腔有感染及凝血功能差的患者,容易引起口腔粘膜及牙龈的损伤。
(2)为昏迷患者进行口腔护理时,使用开口器协助张口方法不正确或力量不当,造成患者口唇、牙龈或口腔粘膜损伤。
(3)漱口液温度或浓度不当,造成口腔粘膜灼伤。
2. 临床表现口腔粘膜充血、出血、水肿、炎性反应、溃疡形成,患者主诉口腔疼痛,颌下可触及淋巴结肿大。
3. 预防及处理(1)为患者进行口腔护理时,动作要轻柔,避免止血钳的尖端直接触及患者口腔粘膜。
(2)对凝血机制差、有出血倾向的患者,擦洗过程中特别要注意防止碰伤粘膜及牙龈。
(3)对需要使用开口器协助张口的患者,应将开口器包上纱布后从臼齿处放入,以防损伤患者口腔粘膜或牙齿;牙关紧闭者不可使用暴力使其张口。
(4)根据口腔具体情况选择温度、浓度适宜的漱口液。
(5)在口腔护理过程中,要注意观察口腔粘膜情况。
如发生口腔粘膜损伤,应用多贝尔氏液、呋喃西林液或0.1%~0.2%双氧水含漱;如有口腔溃疡疼痛时,溃疡面用西瓜霜或锡类散吹敷,必要时可用利多卡因喷雾止痛或洗必泰漱口液直接喷于溃疡面,每天3~4次抗感染。
二、吸入性肺炎1. 发生原因多发生于意识障碍的患者,口腔护理的清洗液、口腔内分泌物及呕吐物误入气道,是吸入性肺炎的主要原因。
DBXT10-11(DA)

数据库系统原理福州大学计算机系郭红G u o h o n g @f z u .e d u .c n第10-11章习题课第三篇系统篇*第九章关系查询处理和查询优化第十章数据库恢复技术第十一章并发控制*第十二章数据库管理系统查询处理步骤查询优化是查询处理的核心,只在具有非过程性查询语言的D B M S 才具有此功能。
在这样系统中,用户使用数据库语言定义查询要求,而无需要说明怎样去查询,因此查询优化是完全必要而且非常重要的。
查询优化包括:1、代数优化——关系代数表达式优化改变表达式中操作的次序和组合,提高查询效率2、物理优化——存取路径和低层操作算法的选择。
选择的依据可以是基于规则,代价或语义。
关系查询处理与查询优化关系代数表达式优化的一般准则典型的启发式规则:1、选择运算应尽可能先做。
2、同时执行相同关系上的多个选择与投影操作,以免多次扫描关系。
3、把投影同其前或后的双目运算结合起来,以免多次扫描关系。
关系代数表达式优化的一般准则n4、某些选择运算+在其前面执行的笛卡尔积===>等值连接运算例:бS t u d e n t.S n o=S C.S n o(S t u d e n t×S C)S t u d e n t∞S CS t u d e n t.S n o=S C.S n on5、提取公共子表达式关系代数表达式的内部表示查询的内部表示形式——查询树∏A(σp=‘IS’AND N=‘User’((R1×R2) ×R3))×∏AσP=‘IS’AND N=‘User’×R3R2R1优化的关系代数表达式∏C,CN ((∏SC.C#(∏S#(σSD=’IS’(S))∞S.S#=SC.S#∏S#.C#(SC))∞SC.C#=C.C#∏C#,CN (C))∏∞SC.C#=C.C#∏SC.C# ∏C.C#,∞S.S#=SC.S# C∏S.S# ∏SC.S#, SC.C#σSD=’IS’SCD B M S 的数据控制功能数据库系统中的数据是由D B M S 统一管理和控制的。
数据库第5版书本作业全部答案

第一章:1、数据库的概念:P4数据库系统的概念: P59、数据模型的三个要素:数据结构,数据操作,完整性约束。
13、码:唯一标识实体的属性集。
16、模式:P29外模式:P29内模式:P2917、物理独立性:当数据库的存储结构改变时,对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性。
逻辑独立性:当数据库的模式改变时,对外模式/模式的映象作相应改变,可以使外模式保持不变,从而应用程序也不必改变,保证了数据与程序的逻辑独立性。
18、数据库系统的构成:数据库系统通常由数据库,数据库管理系统(及开发工具)、应用系统和数据库管理员构成。
第二章:1、关系模型的三个组成部分:关系数据结构、关系操作集合、关系完整性约束。
2、关系数据语言的分类:关系代数语言,关系演算语言,具有关系代数和关系演算双重特点的语言3、候选码:关系中能唯一标识一个元组的属性组。
主码:若候选码有多个,则选其中一个作为主码。
外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外码。
(或者参照课本P50,定义2.5)5、答:实体完整性是指在基本表中,主属性不能取空值且取值唯一。
参照完整性是指在基本表中,外码可以是空值或者另一个关系主码的有效值。
6、(1)πSno(σJno=’J1’(SPJ))(2) πSno(σJno=’J1’∧ Pno=’P1’(SPJ))(3) πSno(σJno=’J1’∧ Color=’红’(SPJ∞P))(4)πJno(J)—πJno (σCity=’天津’∧ Color=’红’(S∞SPJ∞P)) (5)πJno,Pno(SPJ)÷πPno(σSno=’S1’(SPJ))第三章:4、建立S表Create table S(SNO CHAR(10) PRIMARY KEY,SNAME CHAR(10),STATUS CHAR(2),CITY CHAR(10));5、(1)select sname,cityFrom S;(2)select pname,color,weightFrom p;(3) select JnoFrom SPJWhere SNO=’S1’;(4)select p.pname,spj.qtyFrom p,spjWhere p.pno=spj.pno and spj.jno=’j2’;(5) select distinct pnoFrom spj,sWhere spj.sno=s.sno and city=’上海’;(6) select jnameFrom j,spj,sWhere j.jno=spj.jno and spj.sno=s.sno and s.city=’上海’;(7) select jnoFrom jWhere jno not in(select spj.jnoFrom spj,sWhere spj.sno=s.sno and s.city=’天津’);或者:select jnoFrom jWhere not exists(select spj.jnoFrom spj,sWhere spj.jno=j.jno and spj.sno=s.sno and s.city=’天津’);(8) update pSet color=’蓝’Where color=’红’;(9) update spjSet sno=’s3’Where sno=’s5’ and jno=’j4’ and pno=’p6’;(10) deleteFrom spjWhere sno=’s2’;deleteFrom sWhere sno=’s2’;(11)insert into spjValues(‘s2’,’j6’,’p4’,200)8、不是所有的视图都可以更新。
数据库系统概论CH11部分习题解答

第十一章并发控制事务处理技术主要包括数据库恢复技术和并发控制技术。
本章讨论数据库并发控制的根本概念和实现技术。
本章内容有一定的深度和难度。
读者学习本章一定要做到概念清楚。
一、根本知识点数据库是一个共享资源,当多个用户并发存取数据库时就会产生多个事务同时存取同一个数据的情况。
假设对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。
所以DBMS必须提供并发控制机制。
并发控制机制的正确性和高效性是衡量一个DBMS性能的重要标志之一。
①需要了解的: 数据库并发控制技术的必要性,活锁死锁的概念。
②需要结实掌握的: 并发操作可能产生数据不一致性的情况(丧失修改、不可重复读、读“脏数据〞)及其确切含义;封锁的类型;不同封锁类型的(例如X 锁,S锁)的性质和定义,相关的相容控制矩阵;封锁协议的概念;封锁粒度的概念;多粒度封锁方法;多粒度封锁协议的相容控制矩阵。
③需要举一反三的:封锁协议与数据一致性的关系;并发调度的可串行性概念;两段锁协议与可串行性的关系;两段锁协议与死锁的关系。
④难点:两段锁协议与串行性的关系;与死锁的关系;具有意向锁的多粒度封锁方法的封锁过程。
二、习题解答和解析1. 在数据库中为什么要并发控制? 并发控制技术能保证事务的哪些特性?答数据库是共享资源,通常有许多个事务同时在运行。
当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。
假设对并发操作不加控制就可能会存取和存储不正确的数据,破坏事务的一致性和数据库的一致性。
所以数据库管理系统必须提供并发控制机制。
并发控制技术能保证事务的隔离性和一致性。
2. 并发操作可能会产生哪几类数据不一致? 用什么方法能防止各种不一致的情况?答并发操作带来的数据不一致性包括三类:丧失修改、不可重复读和读“脏〞数据。
(1) 丧失修改(Lost Update)两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丧失。
大学《数据库原理》课程教学大纲及课程重点、难点

大学《数据库原理》课程教学大纲及课程重点、难点一、基本信息课程代码:学分:3总学时:48(其中实验9学时)适用对象:本科计算机、网络、软件工程、通讯等相关专业先修课程:数据结构二、课程性质、教学目的和要求(一)课程性质和目的数据库原理是计算机专业的一门专业必修课,面向高年级学生开设,本大纲以一学期51课时讲授。
本课程的目的是向学生介绍数据库的基本概念和原理,掌握常用数据库系统的使用,使学生能够使用数据库技术进行数据库设计和系统开发。
(二)教学方法与手段以课堂理论教学为主,上机实践为辅,配合多媒体教学。
在教学过程中注重能力的培养,以实际应用为例,提高理论教学的生动性,提高学生的动手能力。
(三)教学安排学时安排:16周X3学时二48学时,其中课堂教学13周X3学时=39学时,上机实验3周X3学时=9学时。
课堂讲授数据库的基本概念、基本理论和工作原理,上机实验练习理论的实现和一个典型的关系数据库系统。
课堂教学:第一章绪论(3学时)第二章关系数据库(6学时)第三章关系数据库标准语言SQL(6学时)第四章(数据库安全性)和第五章(数据库完整性)(3学时)第六章关系数据理论(6学时)第七章数据库设计(6学时)第八章数据库编程和第九章关系查询与优化(3学时)第十章数据库恢复技术(3学时)第十一章并发控制(3学时)上机实验:实验1(3课时):E-R模式设计和数据库设计与实现。
掌握数据库系统和DBMS的组成,练习SQLServer的配置和使用,E-R模式设计,设计并实现一个具体的数据库。
实验2(3课时):数据库的范式设计和数据库的数据操纵的设计与实现。
利用E-R模式设计,进行关系模式设计和模式规范化过程的练习,设计并实现数据库的查询、添加、修改、删除、更新以及视图的设计与实现。
实验3(3课时):数据库系统的安全性和、完整性和整体设计。
数据库系统的安全性和完整性的设计与实现;数据库系统的整体设计。
实验4(3课时):简单关系数据库系统的设计与实现。
第十一章并发控制

不可串行化的调度
T1
Slock B Y=B=2
T2
Slock A X=A=2
Unlock B Xlock A A=Y+1 写回A(=3)
Unlock A
Xlock B B=X+1 写回B(=3) Unlock B
Unlock A
不可串行化的调度
由于其执行结果与(a)、(b)的结果都不同,所
以是错误的调度。
T2
Slock A X=A=3 Unlock A Xlock B B=X+1 写回B(=4) Unlock B
串行调度策略,正确的调度
T1 T2
SlockA X=A=2 Unlock A Xlock B B=X+1 写回B(=3) Unlock B Slock B Y=B=3 Unlock B Xlock A A=Y+1 写回A(=4) Unlock A
不同级别的封锁协议: 1级封锁协议:对T要“修改”的R加X锁,直到T结 束
(从而避免丢失数据修改,保证事务可恢复) T对R的“读”操作,没作说明,所以可以不加 锁
1级封锁协议只解决“丢失修改”的问题,而另外 两种不能解决
T1 ① Xlock A 获得 ② 读A=16 ③A←A-1 写回A=15 Commit Unlock A ④
避免死锁问题:
两类方法
1. 预防死锁 2. 死锁的诊断与解除
预防死锁的方法:一次封锁法和顺序封锁法
一次封锁法:要求每个事务必须一次将所有要使用
的数据全部加锁,否则就不能继续执行
存在的问题:降低并发度
扩大封锁范围 将以后要用到的全部数据加锁,势必扩大了封锁的范 围,从而降低了系统的并发度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十一章并发控制一、选择题1.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。
A. 完整性控制B. 访问控制C. 安全性控制D. 并发控制【解答】D2. 解决并发操作带来的数据不一致问题普遍采用()技术。
A. 封锁B. 存取控制C. 恢复D. 协商【解答】A3.下列不属于并发操作带来的问题是()。
A. 丢失修改B. 不可重复读C. 死锁D. 脏读【解答】C4. DBMS普遍采用()方法来保证调度的正确性。
A. 索引B. 授权C. 封锁D. 日志【解答】C5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。
A. 一级封锁协议B. 二级封锁协议C. 三级封锁协议D. 零级封锁协议【解答】A6.如果事务T获得了数据项Q上的排他锁,则T对Q( c)。
A. 只能读不能写B. 只能写不能读C. 既可读又可写D. 不能读也不能写【解答】C7.设事务T1和T2,对数据库中地数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作()。
A. T1正在写A,T2要读AB. T1正在写A,T2也要写AC. T1正在读A,T2要写AD. T1正在读A,T2也要读A【解答】D8.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。
A. 一个是DELETE,一个是SELECTB. 一个是SELECT,一个是DELETEC. 两个都是UPDATED. 两个都是SELECT【解答】D9.在数据库系统中,死锁属于()。
A. 系统故障B. 事务故障C. 介质故障D. 程序故障【解答】B10.下面各项中,属于数据库的并发操作可能带来的问题是__________。
A.丢失更新B.数据独立性会提高C.非法用户的使用D.增加数据冗余度【解答】A11.下面哪个不是数据库系统必须提供的数据控制功能__________。
A.安全性B.可移植性C.完整性D.并发控制【解答】B二、填空题1. 若事务T对数据对象A加了S锁,则其他事务只能对数据A再加_________,不能加_________,直到事务 T释放 A上的锁。
【解答】S锁、X锁2.为了防止一个用户的工作不适当地影响另一个用户,应该采取的控制措施是__________;保护数据库,防止不合法的使用,以免数据的泄密、更改或破坏,应该采取的控制措施是__________。
【解答】并发控制、安全控制3.数据库的并发操作会带来三类问题:__________、__________、__________。
解决的办法通常是采用“__________”技术。
【解答】丢失更新问题、不一致分析问题、“脏数据”的读出、封锁4.一个事务如果读取另一个________时,将会出现读“脏”数据问题。
【解答】未提交事务的中间结果5.__________串行调度是多个事务按照一定的次序依次执行;在某一时刻只有一个事务在执行。
在并发调度中,某一时刻有多个事务同时被处理。
如果某事务集的一个并发调度的结果与某个串行调度等价,则称此并发调度是__________可串行化调度。
【解答】串行调度、可串行化调度三、问答题1. 在数据库中为什么要并发控制?【解答】数据库是共享资源,通常有许多个事务同时在运行。
当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。
若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。
所以数据库管理系统必须提供并发控制机制。
2. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?【解答】并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。
(1)丢失修改(Lost Update)两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。
(2)不可重复读(Non-Repeatable Read)不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。
(3)读“脏”数据(Dirty Read)读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。
避免不一致性的方法和技术就是并发控制。
最常用的并发控制技术是封锁技术。
也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。
3. 什么是封锁? 基本的封锁类型有几种?试述他们的含义。
【解答】封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用。
基本的封锁类型有两种:排它锁(Exclusive Locks,简称 X锁)和共享锁(Share Locks,简称 S锁)。
排它锁(X锁,eXclusive lock,写锁):事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁。
共享锁(S锁,Share lock,读锁):事务T对数据对象R加上S锁,则其它事务对R 的X锁请求不能成功,而对R的S锁请求可以成功。
4.什么是封锁协议?不同级别的封锁协议的主要区别是什么?【解答】封锁协议:何时申请封锁、申请什么样的封锁、何时释放封锁的规则称为封锁协议。
封锁协议分为3级:1级封锁协议:写数据加排他锁,直到事务结束才释放;2级封锁协议:写数据加排他锁,直到事务结束才释放,读数据加共享锁,读完即释放;3级封锁协议:写数据加排他锁,直到事务结束才释放,读数据加共享锁,直到事务结束才释放。
5.不同封锁协议与系统一致性级别的关系是什么?【解答】1级封锁协议:避免了丢失修改;2级封锁协议:避免了丢失修改和读脏数据;3级封锁协议:避免了丢失修改、读脏数据和不可重复读。
6.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁。
【解答】死锁检测方法可以采用等待图法;检测发现死锁后,撤消代价较小的事务,并对该事务做恢复处理,从而解除死锁。
7.什么样的并发调度是正确的调度?【解答】多个事务并发执行时,其结果与某一串行调度的结果相同,称这种调度为可串行化的。
可串行化的调度称为正确的调度。
8.设T1,T2,T3是如下的三个事务,设A的初值为0;T1: A:=A+2T2: A:=A*2T3: A:=A**2( A <-A*A)(1)若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列举出来;(2)请给出一个可串行化的调度,并给出执行结果;(3)请给出一个非可串行化的调度,并给出执行结果;(4)若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;(5)若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。
【解答】(1)正确结果:T1-T2-T3,结果为16;T1-T3-T2,结果为8;T2-T1-T3,结果为4;T2-T3-T1,结果为2;T3-T1-T2,结果为4;T3-T2-T1,结果为2;四种正确结果:16、8、4、2。
(2)可串行化调度:执行结果为8。
(3)最后结果A 为0 ,为非串行化的调度。
9. 什么是封锁协议?不同级别的封锁协议的主要区别是什么?【解答】在运用封锁技术对数据加锁时,要约定一些规则。
例如,在运用X锁和S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。
这些约定或者规则称为封锁协议(Locking Protocol)。
对封锁方式约定不同的规则,就形成了各种不同的封锁协议。
不同级别的封锁协议,例如《概论》中介绍的三级封锁协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。
一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。
三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
10. 不同封锁协议与系统一致性级别的关系是什么?【解答】不同的封锁协议对应不同的一致性级别。
一级封锁协议可防止丢失修改,并保证事务T是可恢复的。
在一级封锁协议中,对读数据是不加S锁的,所以它不能保证可重复读和不读“脏”数据。
二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据。
在二级封锁协议中,由于读完数据后立即释放S锁,所以它不能保证可重复读。
在三级封锁协议中,无论是读数据还是写数据都加长锁,即都要到事务结束时才释放封锁。
所以三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
11. 试述活锁的产生原因和解决方法。
【解答】活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。
避免活锁的简单方法是采用先来先服务的策略。
当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。
12. 请给出预防死锁的若干方法。
【解答】在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待。
防止死锁的发生其实就是要破坏产生死锁的条件。
预防死锁通常有两种方法:(1)一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。
(2)顺序封锁法预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。
不过,预防死锁的策略不大适合数据库系统的特点。
13. 请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?【解答】数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法。
DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。
超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。
超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。
若时限设置得太长,又不能及时发现死锁发生。
DBMS并发控制子系统检测到死锁后,就要设法解除。
通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。
当然,对撤销的事务所执行的数据修改操作必须加以恢复。
14 什么样的并发调度是正确的调度?【解答】可串行化(Serializable)的调度是正确的调度。
可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度。
15. 试述两段锁协议的概念。
【解答】两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。