首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
9.2.2 加锁协议
1、 保证数据一致性的三级加锁协议:
(1) 1级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放,事务结束包括正常结束和非正常结束,但事务如果只对Q读而不写,则不需对Q加锁;
(2) 2级加锁协议是在1级加锁协议基础上,要求T在读取Q前必须先对其加S锁,读完后立即释放S锁;
(3) 3级加锁协议是在1级加锁协议基础上,要求在读取Q前必须先对其加S锁,但需等到事务结束后才释放S锁。
9.2.3 两阶段锁协议
1、 两阶段锁(2PL)基本原理如下:
(1) 每个事务的执行过程划分为两个阶段,加锁阶段和解锁阶段;
(2) 在加锁阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不允许释放任何锁;
(3) 在解锁阶段,事务可以释放任何数据上的任何类型的锁,但是不能再申请任何的锁;
(4) 每个事务开始执行后就进入加锁阶段,当第一次释放锁后,即进入解锁阶段。
9.2.4 锁粒度
1、 施加X锁和S锁的数据项大小称为锁粒度。
2、 锁粒度越大,系统中可以被锁的数据项就越少,事务的并发执行度也越低,但同时系统的开销也小,相反,当锁粒度越小时,事务的并发度高,但系统开销也较大;
9.3 死锁处理
9.3.1 死锁预防
1、 一次加锁法
该方法要求每个事务在开始时必须将需要访问的数据项全部加锁,否则不能执行下去,也就是要求事务必须一次性地获得对需要访问的全部数据项的访问权;
该方法的缺点是:
(1) 多个数据项会被一个事务长期锁定独占,导致其他事务无法及时访问这些数据项,降低了系统的并发程度;
(2) 由于很难事先精确知道每个事务在执行过程中需要加锁的全部数据项,只能扩大加锁范围,将事务执行时可能访问的所有数据项全部加锁,进一步降低了系统的并发程度;
2、 顺序加锁法
该方法对数据库中事务访问的所有数据项规定一个加锁顺序,每个事务在执行过程中必须按此顺序对所需数据加锁;
该方法的缺点:
(1) 数据库中需要加锁的数据项非常多,并且不断变化,维护这些数据项的加锁顺序很困难,代价非常大;
(2) 事务访问的数据项有时无法事先完全确定,有时很难要求事务按照固定的顺序对这些数据项进行加锁;
9.3.2 死锁检测与恢复
1、 死锁检测
(1) 可以利用事务等待图进行死锁检测,数据库系统出现死锁当且仅当事务等待图中包含回路,而且回路中的所有事务就是处于死锁的事务;
(2) 数据库并发控制子系统动态地构造和维护事务等待图,并周期地检测等待图,如图中有回路,则说明系统中出现了死锁;
2、死锁恢复
(1) 当发现死锁存在时,系统可以通过死锁恢复机制将系统从死锁中解救出来,通常是选取一个或几个死锁事务,撤消这些事务,释放其所有的锁,消除事务等待图中的回路,从而解决了系统死锁问题;
(2) 如果决定撤消哪个事务或哪些事务,有两个原则:
A、 选择处于最多条回路交点处的事务;
B、 选择具有最少撤消代价的事务。
9.4 活锁处理
1、如果一个事务在系统不存在死锁的情况下,长期得不到DBMS的获批,处于长时间等待中的情况叫活锁,为了避免活锁,DBMS可采用先来先服务的原则解决。
相关推荐:2010年9月计算机等级考试试题及答案解析专题北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |