第9章网络数据管理 9.1网络数据库的并发控制 92网络数据库的安全机制 9.3网络数据库的访问控制 94网络数据存储 9.5网络环境下数据备份与恢复 9.6Web数据管理 ●四南大字画字
第9章 网络数据管理 1 第9章 网络数据管理 9.1 网络数据库的并发控制 9.2 网络数据库的安全机制 9.3 网络数据库的访问控制 9.4 网络数据存储 9.5 网络环境下数据备份与恢复 9.6 Web数据管理
9.1网络数据库的并发控制 9.1.1事务 9.1.2并发控制的必要性 9.13基于锁的并发控制技术 9.14其它并发控制技术 ●四南大字画字
第9章 网络数据管理 2 9.1 网络数据库的并发控制 9.1.1 事务 9.1.2 并发控制的必要性 9.1.3 基于锁的并发控制技术 9.1.4 其它并发控制技术
9.1.1事务 并发控制是指在网络环境下对数据库的并发操作进行 规范的机制 并发控制的作用主要是协调同一时间访问同一数据库 文件的多个事务之间的关系,防止这些事务之间发生冲突 事务( transaction)是数据库的逻辑工作单元,它是 组对数据的操作序列。事务是并发控制的基本单位。 事务具有以下四个基本特性: 原子性 一致性 隔离性 持续性 第9章网络数据管理
第9章 网络数据管理 3 9.1.1 事务 并发控制是指在网络环境下对数据库的并发操作进行 规范的机制。 并发控制的作用主要是协调同一时间访问同一数据库 文件的多个事务之间的关系,防止这些事务之间发生冲突。 事务(transaction)是数据库的逻辑工作单元,它是 一组对数据的操作序列。事务是并发控制的基本单位。 事务具有以下四个基本特性: ➢ 原子性 ➢ 一致性 ➢ 隔离性 ➢ 持续性
9.1.2并发控制的必要性 数据库并发操作导致数据不一致性的三种情况: 1.丢失更新 当两个事务T1和T2读入同一数据,并发执行修改操作时 T2把T1或T1把T2的修改结果覆盖掉,造成了数据的丢失更 新( lost update)问题,导致数据的不一致。它是由于两个 事务对同一数据并发写入引起的,称为写一写冲突 第9章网络数据管理
第9章 网络数据管理 4 9.1.2 并发控制的必要性 数据库并发操作导致数据不一致性的三种情况: 1. 丢失更新 当两个事务T1和T2读入同一数据,并发执行修改操作时, T2把T1或T1把T2的修改结果覆盖掉,造成了数据的丢失更 新(lost update)问题,导致数据的不一致。它是由于两个 事务对同一数据并发写入引起的,称为写-写冲突
9.1.2并发控制的必要性 2.脏读 事务T2读取了T1更新后的数据R,其后T1由于某种原因 撤销修改,数据R恢复原值,导致T2得到的数据与数据库的 内容不一致。这种由于一个事务读取另一个更新事务尚未提 交的数据引起的不一致问题,被称为脏读( dirty read)。 3.不可重读 事务T1读取数据R后,T2读取并更新了R,当T1再次读 取R时,得到的两次读取值不一致,这种现象被称为不可重 读( unrepeatable read)。 第9章网络数据管理
第9章 网络数据管理 5 9.1.2 并发控制的必要性 2. 脏读 事务T2读取了T1更新后的数据R,其后T1由于某种原因 撤销修改,数据R恢复原值,导致T2得到的数据与数据库的 内容不一致。这种由于一个事务读取另一个更新事务尚未提 交的数据引起的不一致问题,被称为脏读(dirty read)。 3. 不可重读 事务T1读取数据R后,T2读取并更新了R,当T1再次读 取R时,得到的两次读取值不一致,这种现象被称为不可重 读(unrepeatable read)
9.1.3基于锁的并发控制技术 基于锁的并发控制是事务对数据操作前必须获得对该数 据的锁,完成操作后在适当时候释放锁,而得不到锁的事务 处于等待状态。 锁是数据项上的并发控制标志,它有两种类型: 共享锁( Shared lock,简称S锁) 排它锁( Exclusive lock,简称X锁) 第9章网络数据管理
第9章 网络数据管理 6 9.1.3 基于锁的并发控制技术 基于锁的并发控制是事务对数据操作前必须获得对该数 据的锁,完成操作后在适当时候释放锁,而得不到锁的事务 处于等待状态。 锁是数据项上的并发控制标志,它有两种类型: ➢ 共享锁(Shared Lock,简称S锁) ➢ 排它锁(Exclusive Lock,简称X锁)
9.1.3基于锁的并发控制技术 1.封锁协议 系统中的事务在加锁和释放锁时,都必须遵守一组规则, 这组规则称为封锁协议。 >一级封锁协议 级封锁协议是事务在修改数据R之前必须对其加锁, 直到事务结束,如果未能获得Ⅹ锁,则该事务进入等待状态, 直至获得X锁才能执行。 二级封锁协议 二级封锁协议是在一级封锁协议的基础上,规定事务在 读取数据R之前必须对其加S锁,读完后释放S锁。 7 第9章网络数据管理
第9章 网络数据管理 7 9.1.3 基于锁的并发控制技术 1. 封锁协议 系统中的事务在加锁和释放锁时,都必须遵守一组规则, 这组规则称为封锁协议。 ➢ 一级封锁协议 一级封锁协议是事务在修改数据R之前必须对其加X锁, 直到事务结束,如果未能获得X锁,则该事务进入等待状态, 直至获得X锁才能执行。 ➢ 二级封锁协议 二级封锁协议是在一级封锁协议的基础上,规定事务在 读取数据R之前必须对其加S锁,读完后释放S锁
9.1.3基于锁的并发控制技术 三级封锁协议 级封锁协议是在一级封锁协议的基础上,规定事务在 读取数据R之前必须对其加S锁,读完后并不释放S锁,直到 整个事务结束后才释放。 2.封锁粒度 封锁粒度是指封锁的数据对象的大小。 封锁粒度与系统的并发度和并发控制的开销密切相关 封锁粒度越小,并发度越高,并发控制的系统开销也就越大。 反之,封锁粒度越大,并发度越低,并发控制的系统开销也 就越小 第9章网络数据管理
第9章 网络数据管理 8 9.1.3 基于锁的并发控制技术 ➢ 三级封锁协议 三级封锁协议是在一级封锁协议的基础上,规定事务在 读取数据R之前必须对其加S锁,读完后并不释放S锁,直到 整个事务结束后才释放。 2. 封锁粒度 封锁粒度是指封锁的数据对象的大小。 封锁粒度与系统的并发度和并发控制的开销密切相关。 封锁粒度越小,并发度越高,并发控制的系统开销也就越大。 反之,封锁粒度越大,并发度越低,并发控制的系统开销也 就越小
9.1.3基于锁的并发控制技术 3.死锁 如果一个事务申请锁未成功,则须等待其它事务释放锁, 这就形成了事务之间的等待关系。当事务中出现循环等待时 如果不加干预,就会一直等待下去,这种状态称为死锁。 (1)死锁的检测和处理 死锁检测的方法一般有以下两种: 超时法 等待图法 第9章网络数据管理
第9章 网络数据管理 9 9.1.3 基于锁的并发控制技术 3. 死锁 如果一个事务申请锁未成功,则须等待其它事务释放锁, 这就形成了事务之间的等待关系。当事务中出现循环等待时, 如果不加干预,就会一直等待下去,这种状态称为死锁。 (1)死锁的检测和处理 死锁检测的方法一般有以下两种: ➢ 超时法 ➢ 等待图法
9.1.3基于锁的并发控制技术 数据库管理系统对死锁一般采用如下策略: 在循环等待的事务中,选择一个事务作为牺牲者,给 其他事务“让路 回滚牺牲的事务,释放其获得的锁即其他资源。 将释放的锁让给等待它的事务 选取牺牲事务的方法有以下几种: 选择最迟交付的事务作为牺牲者。 选择获得锁最少的事务作为牺牲者。 选择回滚代价最小的事务作为牺牲者 第9章网络数据管理
第9章 网络数据管理 10 9.1.3 基于锁的并发控制技术 数据库管理系统对死锁一般采用如下策略: ➢ 在循环等待的事务中,选择一个事务作为牺牲者,给 其他事务“让路”。 ➢ 回滚牺牲的事务,释放其获得的锁即其他资源。 ➢ 将释放的锁让给等待它的事务。 选取牺牲事务的方法有以下几种: ➢ 选择最迟交付的事务作为牺牲者。 ➢ 选择获得锁最少的事务作为牺牲者。 ➢ 选择回滚代价最小的事务作为牺牲者