第十一章 并发控制
数据库系统概论(第四版)_王珊_萨师煊_chp1

设计与应用开发篇
第六章 关系数据理论(关系规范化) 第七章 数据库设计(ER模型,ER模型向关系模型转化) 第八章 数据库编程
An Introduction to Database Systems
内容安排(2)
系统篇
第九章 关系查询处理和查询优化 第十章 数据库恢复技术
An Introduction to Database Systems
数据结构化
整体数据的结构化是数据库的主要特征之 一 整体结构化
不再仅仅针对某一个应用,而是面向全组织 不仅数据内部结构化,整体是结构化的,数据之间具 有联系
An Introduction to Database Systems
入学时间
解释:李明是个大学生,1972年5月出生,江苏南京市人, 1990年考入计算机系
请给出另一个解释和语义
An Introduction to Database Systems
二、数据库
数据库的定义
数据库(Database,简称DB)是长期储存在计算机内、有 组织的、可共享的大量数据的集合。
日期 学校
家庭出身
学历名
学号 课程号 成绩 政治面貌 课程号 课程名 学时
籍贯
姓名 与本人关系 日期 奖惩条目
详细情况
数据库系统实现整体数据结构化
An Introduction to Database Systems
数据的共享性高,冗余度低,易扩充
数据库系统从整体角度看待和描述数据,数据 面向整个系统,可以被多个用户、多个应用共 享使用。 数据共享的好处
数据的独立性:独立性差,数据的逻辑结构改变必须
修改应用程序 数据控制能力:应用程序自己控制
数据库期末(xc)

第一章数据库系统概述1.几个概念:数据、数据库、数据库管理系统(DBMS)、DDL(数据库模式定义语言)、DML(数据操纵语言)、数据库系统(DBS).2. 数据库系统的三级模式结构由外模式、模式、内模式三级构成模式(逻辑模式):是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
内模式(存储模式):对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式翱物理结构,对应着实际存储在外存储介质上的数据库。
外模式(子模式或用户模式):是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述.3.数据库的二级映象功能与数据独立性数据库管理系统在三级模式之间提供了两层映象:外模式/模式映象(体验逻辑)、模式/内模式映象(体现物理)这两层映象保证了数据库系统中数据的逻辑独立性和数据的物理独立性.4.构成数据模型的三要素:数据结构、数据操作和数据完整性约束。
5.数据模型的分类:第一类是概念模型,第二类是逻辑模型和物理模型。
概念模型按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型按计算机系统的观点对数据建模,主要用于DBMS的实现。
信息世界涉及的概念主要有:实体、属性、码、域、实体型、实体集、联系。
概念模型的表示方法:实体-联系表示法,即E-R模型(E-R图)。
第二章关系数据库1.几个概念:什么是码、候选码?什么是主码、外码、主属性、全码?码:唯一标识实体的属性集称为码。
候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码。
主属性:候选码的诸属性称为主属性。
全码:关系模式的所有属性是这个关系模式的候选码,称为全码。
外部码(外码):设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。
若F与Ks相对应,则称F是R 的外码。
并称R为参照关系,F为被参照关系。
(完整版)第11章并发控制(习题集)

第十一章并发控制(习题集)二、选择题1、为了防止一个用户的工作不适当地影响另一个用户,应该采取(D)。
A。
完整性控制 B。
访问控制C。
安全性控制 D. 并发控制2、解决并发操作带来的数据不一致问题普遍采用(A)技术。
A。
封锁 B。
存取控制C. 恢复D. 协商3、下列不属于并发操作带来的问题是(C)。
A。
丢失修改 B. 不可重复读C. 死锁D. 脏读4、DBMS普遍采用(C)方法来保证调度的正确性 .A。
索引 B. 授权C. 封锁D. 日志5、如果事务T获得了数据项Q上的排他锁,则T对Q( C)。
A。
只能读不能写 B. 只能写不能读C. 既可读又可写 D。
不能读也不能写6、设事务T1和T2,对数据库中地数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作(D)。
A. T1正在写A,T2要读AB. T1正在写A,T2也要写AC。
T1正在读A,T2要写AD. T1正在读A,T2也要读A7、如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是(D ) 。
A。
一个是DELETE,一个是SELECTB. 一个是SELECT,一个是DELETEC。
两个都是UPDATED. 两个都是SELECT8、在数据库系统中,死锁属于(B )。
A。
系统故障 B. 事务故障C. 介质故障 D。
程序故障9、数据库中的封锁机制是( C )的主要方法。
A、完整性B、安全性C、并发控制D、恢复三、填空题1、基本的封锁类型有两种:__排他锁__ 和_共享锁_ 。
2、并发操作可能会导致:丢失修改、不可重复读、读脏数据.四、简答题1、什么是封锁?2、基本的封锁类型有几种?试述它们的含义.3在数据库中为什么要并发控制?答:数据库是共享资源,通常有许多个事务同时在运行。
当多个事务并发地存取数据库时就会产生同时读取或修改同一数据的情况.若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性.所以数据库管理系统必须提供并发控制机制。
数据库系统概论考点总结

第一章绪论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、掌握查询的语法树以及优化后的语法树。
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的修改被丧失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
共享锁:又称为读锁。若事务T对数据对象A加上S锁, 则其它事务只能再对A加S锁,而不能加X锁,直到T释放 A上的S锁。这就保证了其它事务可以读A,但在T释放A 上的S锁之前不能对A做任何修改
数据库概论
10
T1
(1)XL A (2)读A=16
T2
请求XL A 等待 等待 等待 等待 等待 获得XL A 读A=15 AA-1 写回A=14 Commit Unlock A
解决死锁的方法 两类方法
1. 预防死锁
2. 死锁的诊断与解除
1. 死锁的预防
产生死锁的原因:是两个或多个事务都已封锁了一些数据
对象,然后又都请求对已为其他事务封锁的数据对象加锁, 从而出现死等待
预防死锁的发生就是要破坏产生死锁的条件
预防死锁通常有两种方法:
一次封锁法
顺序封锁法
数据库概论
可 串 行 化 的 调 度
数据库概论
(d)
28
§11.4.2 冲突可串行化调度 冲突(conflict)操作:
当Ii与Ij是不同事务在相同的数据项的操作,并且其中至
少有一个是write指令时,我们说Ii与Ij是冲突的。即冲突操作: 指不同的事务对同一个数据的读写操作和写写操作
诊断方法:
超时法 事务等待图法
数据库概论
21
(1)检测死锁:超时法 如果一个事务的等待时间超过了规定的时限,就认为发生
了死锁
优点:实现简单 缺点
有可能误判死锁 时限若设臵得太长,死锁发生后不能及时发现
数据库概论
22
(2)检测死锁:事务等待图法 事务等待图是一个有向图G=(T,U)
Read:A=16. A←A*2 Write: A=32
Read:A=32. RollBack A 恢复到16 Read:A=16. 读脏数据 4
数据库概论
并发操作带来的三类数据不一致性 丢失修改(lost update)
不可重复读(non-repeatable read)
读“脏”数据(dirty read)
N
T2
T1
S N Y Y
Y
X S -
N Y
Y Y
Y=Yes,相容的请求 N=No,不相容的请求
数据库概论
12
§11.3 活锁和死锁 封锁技术可以有效地解决并行操作的一致性问题,但
也带来一些新的问题
死锁
活锁
数据库概论
13
§11.3.1 活锁
如果事务T1封锁
了数据R,事务T2 又请求封锁R,于 是T2等待。T3也请 求封锁R,当T1释 放了R上的封之后 系统首先批准了T3 的请求,T2仍然等 待。然后T4又请求 封锁R,当T3释放 了R上的封锁之后 系统又批准了T4的 请求,...,T2有 可能永远等待,这 就是活锁的情形
数据库概论
5
1. 丢失修改
丢失修改是指事务 1 与事务 2 从数据库中读入同一数据并修 改,事务2的提交结果破坏了事务1提交的结果,导致事务1的 修改被丢失。
2. 读“脏”数据 事务 1 修改某一数据,并将其写回磁盘,当事务 2 读取同一
数据后,事务 1 由于某种原因被撤消,这时事务 1将已修改过
数据库概论
14
如何避免活锁 避免活锁简单方法是采用先来先服务的策略 当多个事务请求封锁同一数据对象时 按请求封锁的先后次序对这些事务排队 该数据对象上的锁一旦释放,首先批准申请队列中第一个事 Nhomakorabea获得锁。
数据库概论
15
§11.3.2 死锁 如果事务T1封锁了数据R1,
T1 Xlock R1 . . . Xlock R2 等待 等待 等待 .
数据库概论
25
事务的串行调度
事务 时序列 T1 T2 T1 T2
t1
t2 t3
Slock B
Y=B=2 Unlock B Xlock A
Slock A
X=A=2 Unlock A Xlock B
A=Y+1
B=X+1
写回B(=3) Unlock B Slock A X=A=3 Unlock A Xlock B B=X+1写回B(=4) Unlock B Slock B Y=B=3 Unlock B Xlock A A=Y+1写回A(=4) Unlock A
数据库概论
9
二、基本封锁类型 一个事务对某个数据对象加锁后究竟拥有什么样的控制是由 封锁的类型决定的。DBMS通常提供了多种类型的封锁。 基本封锁类型
排它锁(eXclusive lock,简记为X锁)
排它锁:又称为写锁。若事务T对数据对象A加上X锁, 则只允许T读取和修改A,其它任何事务都不能再对A加 任何类型的锁,直到T释放A上的锁。这就保证了其它事 务在T释放A上的锁之前不能再读取和修改A。
其中:
T为结点的集合,每个结点表示正运行的事务; U为边的集合,每条边表示事务等待的情况。 在事务之间用有向弧表示事务之间的等待情况 事务等待图动态地反映了所有事务的等待情况
并发控制子系统周期性地(比如每隔1分钟)检测事务等待
图,如果发现图中存在回路,则表示系统中出现了死锁。 T1
数据库概论
发现某些记录神密地消失了。
3.事务2插入了一些记录,当事务1再次按相同条件读取 数据时,发现多了一些记录。
数据库概论
后两种也称 为幻影现象
7
问题产生原因及解决技术 产生上述三类数据不一致性的主要原因 并发操作破坏了事务的隔离性 并发控制就是要用正确的方式调度并发操作,使一个用户事
务的执行不受其它事务的干扰,从而避免造成数据的不一致性
T1
(1)SL A=50 SL B=100 读A,B 求和A+B=150 (2)
T2
T1
(1)XL C 读C=100 CC×2 写回C=200
T2
(3)AA-1 写回A=15 Commit Unlock A (4)
请求XL B 等待 等待 等待
(2)
(3) 读A=50,B=100 求和A+B=150 Commit Unlock A Unlock B (4)
的数据恢复原值。事务2读到的数据就与数据库中的数据不一 致,是不正确的数据,又称为“脏”数据。
数据库概论
6
3. 不可重复读 不可重复读 指事务 1 读取数据后,事务 2 执行更新操作,使事务 1 无 法再现前一次读取结果。 不可重复读包括三种情况: 事务1读取某一数据后: 1.事务2对其做了修改,当事务1再次读该数据时,得到 与前一次不同的值。 2.事务2删除了其中部分记录,当事务1再次读取数据时,
数据库管理系统必须提供并发控制机制 并发控制机制是衡量一个数据库管理系统性能的重要标志之一
数据库概论
2
§11.1 并发控制概述 并发控制机制的任务 对并发操作进行正确调度
保证事务的隔离性
保证数据库的一致性
数据库概论
3
§11.1并发控制概述
例:考虑飞机订票系统中的一个活动序列:
甲售票点(甲事务)
在执行过程中可能会变成封锁对象,所以很难先精确地确定
每个事务所有要封锁的数据对象。 解决方法:将事务在执行过程中可能要封锁的数据对象全 部加锁,这样就进一步降低了并发度。
数据库概论
19
(2)顺序封锁法 顺序封锁法是预先对数据对象规定一个封锁顺序,所有
事务都按这个顺序实行封锁。
顺序封锁法可以有效地防止死锁,但也同样存在问题:
T2
23
2. 死锁的诊断与解除 解除死锁 选择一个处理死锁代价最小的事务,将其撤消,释放此 事务持有的所有的锁,使其它事务能继续运行下去。并且
对撤消的事务所执行的数据修改操作必须加以恢复。
数据库概论
24
§11.4 并发调度的可串行性 几个概念 (1)调度: 事务的执行顺序称为一个调度,表示事务的指令在系统 中执行的时间顺序 (2)串行调度
18
(1)一次封锁法 一次封锁法要求每个事务必须一次将所有要使用的数据全
部加锁,否则就不能继续执行。
一次封锁法虽然可以有效地防止死锁的发生,但也存在问 题,一次就将以后要用到的全部数据加锁,势必扩大了封锁 的范围,从而降低了系统的并发度。 由于数据库中数据不断变化着的,原来不要求封锁的数据,
T2 . . Xlock R2 . . Xlock R1 等待 等待 .
T2 封锁了数据 R2 ,然后 T1 又请求
封锁 R2 ,因 T2 已封锁了 R2 ,于是 T1 等待 T2 释放 R2 上的锁。接着 T2 又申请封锁 R1 ,因 T1 已封锁了 R1 , T2 也只能等待 T1 释放 R1 上的锁。
t4 t5 t6 t7 t8
写回A(=3) Unlock A
(a)串行调度(1) 数据库概论
(b)串行调度(2)
26
事务的并行调度
事务 T1 Slock B Y=B=2 Slock A T2
时序列
数据库概论
(c) 不 可 串 行 化 的 调 度
t1 t2 t3 t4 t5 t6 t7 t8
X=A=2
并发控制的主要技术是封锁(Locking)
数据库概论
8
§11.2 封锁
一、什么是封锁 封锁
就是事务T在对某个数据对象(例如表、记录等)操作
之前,先向系统发出请求,对其加锁 加锁后事务T就对该数据对象有了一定的控制,在事务T释 放它的锁之前,其它的事务不能更新此数据对象。 封锁是实现并发控制的一个非常重要的技术
请求SL C 等待 等待 等待 等待 等待
(3) ROLLBACK (C恢复为100) Unlock C
没有丢失修改
获得XL B 读B=100 B B× 2 写回 B=200 Commit Unlock B