数据库原理及应用(MySQL版) 理论教案 第15次课(理论) MySQL 的并发控制.docx

上传人:lao****ou 文档编号:819908 上传时间:2024-06-04 格式:DOCX 页数:3 大小:32.76KB
下载 相关 举报
数据库原理及应用(MySQL版) 理论教案 第15次课(理论) MySQL 的并发控制.docx_第1页
第1页 / 共3页
数据库原理及应用(MySQL版) 理论教案 第15次课(理论) MySQL 的并发控制.docx_第2页
第2页 / 共3页
数据库原理及应用(MySQL版) 理论教案 第15次课(理论) MySQL 的并发控制.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据库原理及应用(MySQL版) 理论教案 第15次课(理论) MySQL 的并发控制.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用(MySQL版) 理论教案 第15次课(理论) MySQL 的并发控制.docx(3页珍藏版)》请在第一文库网上搜索。

1、教案首页(以2课时为单元)课 序授课日期授课班次授课教师批准人15课题第六章事务与并发控制目的要求并发控制是数据保护的又一方面,由于多个事务并发操作,将会导致数据库中 的不一致。为使数据不被破坏,要求学生掌握并发控制技术。具体要求掌握下述内 容:二级封锁协议和MySQL下的并发控制。教学内容1、二级封锁协议2、MySQL的并发控制重点难点重点:二级封锁协议难点:灵活应用MySQL下的并发控制语句教学方法手 段教学方法:启发、引导、演示、归纳手 段:多媒体课件和黑板画的图例讲解教学步骤1 .提问引起思考引入课程2 .精讲课堂内容3 .课堂小结4 .布置作业复习 提问题三级封锁协议各解决哪些并发控

2、制引发的问题?作业题目预习内容故障分类及故障恢复的实现课时分配(以分钟计算)教学环节复习提问新课讲解课堂实践每课小结布置作业时间分配5781052教学内容课堂组织第6章 事务与并发控制【课程导入】问题:三级封锁协议各解决哪些并发控制引发的问题?【讲授内容】6.5 两段封锁协议两段封锁协议规定所有的事务应遵守下面两条规则。(1)在对任何一个数据进行读写操作之前,事务必须获得对数据的封锁。(2)在释放一个封锁之后,事务不再获得任何其他封锁.所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为 “扩展”阶段。在这个阶段,事务可以申请获得任何数据项上任何类型的锁,但是 不能释放任何锁。

3、第二阶段是释放封锁,也称为“收缩”阶段。在这个阶段,事务 可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。遗憾的是,两段封锁协议仍有可能导致死锁的发生,而且可能会增多。这是因 为每个事务都不能及时解除被它封锁的数据。6.6 MySQL的并发控制6.6.1 表级锁表级锁定是指整个表被客户锁定。表级锁定包括读锁定和写锁定两种。任何针对表的查询操作或者更新操作,MySQL都会隐式地施加表级锁。隐式锁 的生命周期(指在同一个MySQL会话中,对数据加锁到解锁之间的时间间隔)非 常短暂,且不受数据库开发人员的控制。MySQL施加表级锁的命令语法形式如下:Lock tables 表名 read表

4、名 write-;【说明】read施加表级读锁,write施加表级写锁。对表施加读锁后,客户机A对该表的后续更新操作将出错;客户机B对该 表的后续查询操作以继续进行,对该表的后续更新操作将被阻塞。对表施加写锁后,客户机A的后续查询操作以及后续更新操作都可以继续 进行;客户机B对该表的后续查询操作以及后续更新操作都将被阻塞。MySQL解锁的命令语法格式如下:unlock tables;6.6.2 行级锁行级锁比表级锁对锁定过程提供了更精细的控制。在这种情况下,只有线程使 用的行是被锁定的。表中的其他行对于其他线程都是可用的。行级锁包括共享锁(S)、排他锁(X),其中共享锁也叫读锁,排他锁也叫写

5、锁。共享锁。如果事务Tl获得了数据行R上的共享锁,则Tl对数据行可以读但不 可以写。事务Tl对数据行R加上共享锁,则其他事务对数据行R的排他锁请求不 会成功,而对数据行R的共享锁请求可以成功。排它锁。如果事务TI获得了数据行R上的排他锁,则Tl对数据行既可读又可 写。事务Tl对数据行R加上排他锁,则其他事务对数据行R的任何封锁请求都不会成功,直到事务Tl释放数据行R上的排他锁。在查询语句中,为符合查询条件的记录施加共享锁,语法形式如下:SELECT * FROM 表名 WHERE 条件 LoCK IN SHARE MODE;在查询语句中,为符合查询条件的记录施加排他锁,语法形式如下:SELEC

6、T * FROM 表名 WHERE 条件 FOR UPDATE;在更新(INSERT、UPDATE. DELETE)语句中,MySQL将会对符合条件 的记录自动施加隐式排他锁。6.6.3表的意向锁表既支持行级锁,又支持表级锁。例如,MySQL客户机A获得了某个表中若 干条记录的行级锁,此时,MySQL客户机B出于某种原因需要向该表显式的施加 表级锁(使用LoeK TABLES命令即可),为了获得该表的表级锁,MySQL客户 机B需要逐行检测表中是否存在行级锁,而这种检测需要耗费大量的服务器资源。试想如果MySQL客户机A获得该表若干条记录的行级锁之前,MySQL客户机 A直接向该表施加一个“表

7、级锁”(这个表级锁是隐式的,也叫意向锁),MySQL 客户机B仅仅需要检测自己的表级锁与该意向锁是否兼容,无需逐行检测该表是否 存在行级锁,这样就会节省不少服务器资源。由此可见,引入意向锁的目的是为了 方便检测表级锁与行级锁之间是否兼容。意向锁(I)是隐式的表级锁,数据库开发人员向表的某些记录加行级锁时, MySQL首先会自动地向该表施加意向锁,然后再施加行级锁,意向锁无需数据库开 发人员维护。MySQL提供了两种意向锁:意向共享锁(IS)和意向排他锁(IX)。意向共享锁(IS) o事务向表的某些记录施加行级共享锁时,MySQL会自动地 向该表施加意向共享锁(IS)。也就是说,执行“SELECT* FRoM表名WHERE条 件LoeK IN SHARE MODE;后,MySQL在为表中符合条件的记录施加共享锁 之前,会自动地为该表施加意向共享锁(IS)。意向排他锁(IX) o事务向表的某些记录施加行级排他锁时,MySQL会自动 地向该表施加意向排他锁(IX)。也就是说,执行“SELECT* FRoM表名WHERE 条件FoRUPDATE;后,MySQL在为表中符合条件的记录施加排他锁之前,会 自动地为该表施加意向排他锁(IX) o【课程小结】本次课要求掌握二级封锁协议,及MySQL下各并发锁的应用。 思政案例

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服