数据库管理课件

上传人:阳*** 文档编号:24398795 上传时间:2021-06-29 格式:PPT 页数:133 大小:541KB
返回 下载 相关 举报
数据库管理课件_第1页
第1页 / 共133页
数据库管理课件_第2页
第2页 / 共133页
数据库管理课件_第3页
第3页 / 共133页
点击查看更多>>
资源描述
数 据 库 管 理 1 第 八 章 数 据 库 管 理 数 据 库 管 理 2 第 八 章 数 据 库 管 理 教 学 内 容 : 事 务 的 定 义 , 事 务 的 ACID性 质 , 事 务 的 状 态 变 迁 图 。 恢 复 的 定 义 、 基 本 原 则 和 实 现 方 法 ,故 障 的 类 型 ,检 查 点 技 术 。 并 发 操 作 带 来 的 三 个 问 题 , X锁 、 PX协 议 ,活 锁 、 死 锁 , 并 发 调 度 、 串 行 调 度 、 并 发 调 度 的 可 串 行 化 , 两 段 封 锁 法 。 完 整 性 的 定 义 , 完 整 性 子 系 统 的 功 能 , 完 整 性 规 则 的 组 成 ; SQL中 的 三 大 类 完 整 性 约 束 , SQL3中 的 触 发 器 技 术 。 安 全 性 的 定 义 、 级 别 , 权 限 , SQL中 的 安 全 性 机 制 。 数 据 库 管 理 3 检 查 点 技 术 并 发 操 作 、 封 锁 带 来 的 若 干 问 题 , 并 发 调 度 的 可 串 行 化 。 SQL中 完 整 性 约 束 的 实 现 : 断 言 、 触 发 器 技 术 。 安 全 性 中 的 授 权 语 句 。教 学 重 点 : 数 据 库 管 理 4 1 事 务 的 概 念 一 、 事 务 的 定 义 形 成 一 个 逻 辑 工 作 单 元 的 数 据 库 操 作 的 汇 集 , 称 为 事 务 (transaction)。例 : 在 关 系 数 据 库 中 , 一 个 事 务 可 以 是 一 条 SQL语 句 、 一 组 SQL语 句 或 整 个 程 序 。 事 务 和 程 序 是 两 个 概 念 。 一 般 地 说 : 一 个 程 序 中 包 含 多 个 事 务 。 事 务 的 开 始 和 结 束 可 以 由 用 户 显 式 控 制 。 如 果 用 户 没 有 显 式 地 定 义 事 务 ,则 由 DBMS按 照 缺 省 自 动 划 分 事 务 。 数 据 库 管 理 5 在 SQL语 言 中 , 定 义 事 务 的 语 句 由 三 条 : 事 务 开 始 : 事 务 提 交 : 事 务 回 滚 : BEGIN TRANSACTIONCOMMITROLLBACK 数 据 库 管 理 6 二 、 事 务 的 ACID性 质 为 了 保 证 数 据 完 整 性 ( 数 据 是 正 确 的 ) , 要 求 事 务 具 有 下 列 四 个 性 质 : 原 子 性 ( Atomicity) 一 致 性 ( Consistency) 隔 离 性 ( Isolation) 持 久 性 ( Durability) 。 上 述 四 个 性 质 称 为 事 务 的 ACID性 质 。 数 据 库 管 理 7 三 、 事 务 的 状 态 变 迁BEGINTRANSATION ABORT ABORT活 动 失 败局 部 提 交 提 交异 常 终 止ENDTRANSATION COMMITROLLBACK 数 据 库 管 理 8 2 数 据 库 的 恢 复 DBMS的 恢 复 管 理 子 系 统 : 采 取 一 系 列 措 施 保 证 在 任 何 情 况 下 保 持 事 务 的 原 子 性 和 持 久 性 , 确 保 数 据 不 丢 失 、 不 破 坏 ; 当 发 生 系 统 故 障 时 , 数 据 库 可 恢 复 到 正 确 状 态 。一 、 故 障 分 类 事 务 故 障 系 统 故 障 介 质 故 障 数 据 库 管 理 9 二 、 数 据 库 恢 复 技 术 恢 复 机 制 涉 及 的 两 个 关 键 问 题 : 如 何 建 立 冗 余 数 据 ; 如 何 利 用 这 些 冗 余 数 据 实 施 数 据 库 的 恢 复 。 建 立 冗 余 数 据 最 常 用 的 技 术 是 数 据 库 转 储 和 登 录 日 志 文 件 。1、 数 据 转 储 转 储 是 指 DBA将 整 个 数 据 库 复 制 到 永 久 存 储 器 的 过 程 。 这 些 备 用 的 数 据 文 本 称 为 后 备 副 本 或 后 援 副 本 。 一 旦 系 统 发 生 介 质 故 障 , 数 据 库 遭 到 破 坏 , 可 以 将 副 本 重 新 装 入 , 把 数 据 库 恢 复 起 来 。 数 据 库 管 理 10 转 储 运 行 事 务 故 障 发 生 点ta tb tf正 常 运 行 重 装 后 备 副 本 重 新 运 行 事 务 恢 复 数 据 库 管 理 11 2.登 记 日 志 文 件 ( Logging) 日 志 文 件 是 记 录 事 务 对 数 据 库 的 更 新 操 作 的 文 件 。 日 志 文 件 的 存 储 结 构 -日 志 记 录 的 表 示 : 事 务 开 始 记 录 : 更 新 数 据 记 录 : 事 务 终 止 记 录 : 更 新 数 据 日 志 记 录 与 每 一 个 数 据 库 写 操 作 WRITE( Q) 相 对 应 其 中 : Ti :事 务 名 ; X:操 作 类 型 ; A:数 据 项 ; V1:原 始 值 ; V2:新 值 数 据 库 管 理 12 日 志 文 件 在 数 据 库 恢 复 过 程 中 起 着 重 要 的 作 用 。 为 保 证 数 据 库 的 可 恢 复 性 , 登 记 日 志 文 件 必 须 遵 循 两 条 原 则 : 登 记 的 次 序 必 须 严 格 按 并 行 事 务 执 行 的 时 间 次 序 。 必 须 先 写 日 志 文 件 , 再 写 数 据 库 。 数 据 库 管 理 13 转 储 运 行 事 务 故 障 发 生 点ta tb tf正 常 运 行 重 装 后 备 副 本 利 用 日 志 文 件 恢 复 事 务 继 续 运 行 介 质 故 障 恢 复 登 记 日 志 文 件 数 据 库 管 理 14 三 、 恢 复 策 略 当 系 统 运 行 过 程 中 发 生 故 障 , 利 用 数 据 库 后 备 副 本 和 日 志 文 件将 数 据 库 恢 复 到 故 障 前 的 某 个 一 致 性 状 态 。 不 同 故 障 其 恢 复 技 术 不一 样 : 1 事 务 故 障 的 恢 复 事 务 故 障 是 指 事 务 在 运 行 至 正 常 终 止 点 前 被 中 止 , 此 时 恢 复 子 系 统 应 撤 销 ( UNDO) 此 事 务 已 对 数 据 库 进 行 的 修 改 。 数 据 库 管 理 15 事 务 故 障 恢 复 的 具 体 做 法 如 下 : 反 向 扫 描 日 志 文 件 ( 即 从 最 后 向 前 扫 描 日 志 文 件 ) , 查 找 该 事 务 的 更 新 操 作 。 对 该 事 务 的 更 新 操 作 执 行 逆 操 作 。 即 将 日 志 记 录 中 “ 更 新 前 的 值 ” 写 入 数 据 库 : 若 记 录 中 是 插 入 操 作 , 则 相 当 于 做 删 除 操 作 ; 若 记 录 中 是 删 除 操 作 ,则 做 插 入 操 作 ; 若 是 修 改 操 作 , 则 用 修 改 前 值 代 替 修 改 后 值 。 返 回 数 据 库 管 理 16 继 续 反 向 扫 描 日 志 文 件 , 查 找 该 事 务 的 其 他 更 新 操 作 , 并 做 同 样 处 理 。 如 此 处 理 下 去 , 直 至 读 到 此 事 务 的 开 始 标 记 , 事 务 故 障 恢 复 就 完 成 了 。 事 务 故 障 的 恢 复 是 由 系 统 自 动 完 成 的 ,不 需 要 用 户 干 预 。 数 据 库 管 理 17 2 系 统 故 障 的 恢 复 系 统 故 障 造 成 数 据 库 不 一 致 状 态 的 原 因 有 两 个 : 未 完 成 事 务 对 数 据 库 的 更 新 已 写 数 据 库 ; 已 提 交 事 务 对 数 据 库 的 更 新 还 留 在 缓 冲 区 没 来 得 及 真 正 写 入 数 据 库 . 恢 复 操 作 : 撤 销 故 障 发 生 时 未 完 成 的 事 务 , 重 做 已 完 成 的 事 务 。 数 据 库 管 理 18 具 体 做 法 如 下 : 正 向 扫 描 日 志 文 件 (即 从 头 开 始 扫 描 日 志 文 件 ): 找 出 在 故 障 发 生 前 : 已 提 交 事 务 (既 有 记 录 , 也 有 记 录 ),将 其 事 务 标 识 记 入 重 做 队 列 。 尚 未 完 成 的 事 务 (有 记 录 ,无 记 录 ), 将 其 事 务 标 识 记 入 撤 销 队 列 。 数 据 库 管 理 19 对 撤 销 队 列 中 的 各 个 事 务 进 行 撤 销 ( UNDO) 处 理 进 行 撤 销 ( UNDO) 处 理 的 方 法 是 : 反 向 扫 描 日 志 文 件 , 对 每 个 UNDO事 务 的 更 新 操 作 执 行 逆 操 作 . 即 将 日 志 记 录 中 “ 更 新 前 的 值 ” 写 入 数 据 库 。 数 据 库 管 理 20 对 重 做 队 列 中 的 各 个 事 务 进 行 重 做 ( REDO) 处 理 进 行 重 做 REDO处 理 的 方 法 是 : 正 向 扫 描 日 志 文 件 , 对 每 个 REDO事 务 重 新 执 行 登 记 操 作 。 即 将 日 志 记 录 中 “ 更 新 后 的 值 ” 写 入 数 据 库 。 系 统 故 障 的 恢 复 也 由 系 统 自 动 完 成 的 ,不 需 要 用 户 干 预 。 数 据 库 管 理 21 3 介 质 故 障 的 恢 复 在 发 生 介 质 故 障 和 遭 受 病 毒 破 坏 时 , 磁 盘 上 的 物 理 数 据 库 遭 到毁 灭 性 破 坏 。 此 时 恢 复 的 过 程 如 下 : 装 入 最 新 的 后 备 副 本 到 新 的 磁 盘 , 使 数 据 库 恢 复 到 最 近 一 次 转 储 时 的 一 致 状 态 。 装 入 有 关 的 日 志 文 件 副 本 , 重 做 已 提 交 的 所 有 事 务 。 这 样 就 可 以 将 数 据 库 恢 复 到 故 障 前 某 一 时 刻 的 一 致 状 态 。 数 据 库 管 理 22 四 、 检 测 点 机 制 为 提 高 系 统 效 率 , DBMS定 时 设 置 检 查 点 。 在 检 查 点 时 刻 才 真 正 做 到 把 对 DB的 修 改 写 到 磁 盘 , 并 在 日 志 文 件 写 入 一 条 检 查 点 记 录 (以 便恢 复 时 使 用 )。 数 据 库 管 理 23 1. 检 查 点 方 法 DBMS定 时 设 置 检 查 点 , 在 检 查 点 时 , 做 下 列 事 情 :第 一 步 :第 二 步 :第 三 步 :第 四 步 : 将 日 志 缓 冲 区 中 的 日 志 记 录 写 入 磁 盘 。将 数 据 库 缓 冲 区 中 修 改 过 的 缓 冲 块 内 容 写 入 磁 盘 。写 一 个 检 查 点 记 录 到 磁 盘 , 内 容 包 括 : 检 查 点 时 刻 , 所 有 活 动 事 务 ; 每 个 事 务 最 近 日 志 记 录 地 址 。 把 磁 盘 中 日 志 检 测 点 记 录 的 地 址 写 入 “ 重 新 启 动 文 件 中 ” 。 数 据 库 管 理 24 2.检 查 点 恢 复 步 骤 正 向 扫 描 日 志 文 件 , 建 立 事 务 重 做 队 列 和 事 务 撤 消 队 列 。 重 做 队 列 : 将 已 完 成 的 事 务 加 入 重 做 队 列 ; 撤 销 队 列 : 未 完 成 的 事 务 加 入 撤 销 队 列 。 对 撤 销 队 列 做 UNDO处 理 的 方 法 是 : 反 向 扫 描 日 志 文 件 , 根 据 撤 销 队 列 的 记 录 对 每 一 个 撤 销 事 务 的 更 新 操 作 执 行 逆 操 作 , 使 其 恢 复 到 原 状 态 。 对 重 做 队 列 做 REDO处 理 的 方 法 是 : 正 向 扫 描 日 志 文 件 , 根 据 重 做 队 列 的 记 录 对 每 一 个 重 做 事 务 实 施 对 数 据 库 的 更 新 操 作 。 数 据 库 管 理 25 五 、 运 行 记 录 ( 日 志 记 录 ) 优 先 原 则为 了 安 全 , 定 义 “ 运 行 记 录 优 先 原 则 ” 包 含 以 下 两 点 : 至 少 要 等 相 应 运 行 记 录 ( 日 志 记 录 ) 已 经 写 入 运 行 日 志 文 件 后 , 才 能 允 许 事 务 往 数 据 库 中 写 记 录 ; 直 至 事 务 的 所 有 运 行 记 录 ( 日 志 记 录 ) 都 已 经 写 入 到 运 行 日 志 文 件 后 , 才 能 允 许 事 务 完 成 COMMIT处 理 。这 样 , 如 果 出 现 故 障 , 则 可 能 在 运 行 日 志 中 而 不 是 在 数 据 库 中 记录 了 一 个 修 改 。 在 重 启 动 时 , 就 有 可 能 请 求 UNDO REDO处 理 原 先 根 本 没 有 对 数 据 库 做 过 的 修 改 。 数 据 库 管 理 26 3 数 据 库 的 并 发 控 制 数 据 库 管 理 27 原 子 性 ( Atomicity) 一 个 事 务 对 数 据 库 的 所 有 操 作 , 是 一 个 不 可 分割 的 工 作 单 元 。 这 些 操 作 要 么 全 部 执 行 , 要 么 什 么也 不 做 ( 就 效 果 而 言 ) 。 保 证 原 子 性 是 数 据 库 系 统 本 身 的 职 责 ,由 DBMS的 事 务 管 理 子 系 统 来 实 现 。 返 回 数 据 库 管 理 28 一 致 性 ( Consistency) 一 个 事 务 独 立 执 行 的 结 果 , 应 保 持 数 据 库 的 一 致 性 , 即 数 据 不 会 应 事 务 的 执 行 而 遭 受 破 坏 。 编 写 事 务 的 应 用 程 序 员 的 职 责 :确 保 单 个 事 务 的 一 致 性 。 在 系 统 运 行 时 , 由 DBMS的 完 整 性 子 系 统 执 行 测 试 任 务 。 返 回 数 据 库 管 理 29 隔 离 性 ( Isolation) 在 多 个 事 务 并 发 执 行 时 ,系 统 应 保 证 与 这 些 事 务 先 后 单独 执 行 时 的 结 果 一 样 ,此 时 称 事 务 达 到 了 隔 离 性 的 要 求 。 即 : 多 个 事 务 并 发 执 行 时 , 保 证 执 行 结 果 是 正 确 的 , 如 同 单 用 户 环 境 一 样 。 隔 离 性 是 由 DBMS的 并 发 控 制 子 系 统 实 现 的 。 返 回 数 据 库 管 理 30 持 久 性 ( Durability) 一 个 事 务 一 旦 完 成 全 部 操 作 后 , 它 对 数 据 库 的 所 有更 新 应 永 久 地 反 映 在 数 据 库 中 。 即 使 以 后 系 统 发 生 故 障, 也 应 保 留 这 个 事 务 执 行 的 痕 迹 。 持 久 性 由 DBMS的 恢 复 管 理 子 系 统 实 现 的 。 返 回 数 据 库 管 理 31 3 数 据 库 的 并 发 控 制 教 学 内 容 : 并 发 操 作 带 来 的 三 个 问 题 , X锁 、 PX协 议 ,活 锁 、 死 锁 , 并 发 调 度 、 串 行 调 度 、 并 发 调 度 的 可 串 行 化 , 两 段 封 锁 法 。 教 学 重 点 : 并 发 操 作 、 封 锁 带 来 的 若 干 问 题 , 并 发 调 度 的 可 串 行 化 。 数 据 库 管 理 32 为 充 分 利 用 数 据 库 资 源 , 发 挥 数 据 库共 享 资 源 的 特 点 ,应 该 允 许 多 个 用 户 并 行 地存 取 数 据 库 。 并 发 控 制 机 制 的 好 坏 是 衡 量 一 个 数 据 库管 理 系 统 性 能 的 重 要 标 志 之 一 。 数 据 库 管 理 33 一 、 并 发 操 作 带 来 的 三 个 问 题 对 并 发 操 作 如 果 不 进 行 合 适 的 控 制 , 可 能 会 导 致 数 据 库 中 数 据 的 不 一 致 性 。 典 型 的 并 发 操 作 的 例 子 : 火 车 订 票 系 统 中 的 订 票 操 作 。 在 该 系 统 中 的 一 个 活 动 序 列 : 甲 售 票 员 读 出 某 列 车 的 车 票 余 数 为 A, 设 : A=18; 乙 售 票 员 读 出 同 一 列 车 的 车 票 余 数 为 A , 也 是 : A= 18; 甲 售 票 点 卖 出 一 张 车 票 , 修 改 车 票 余 数 A=A-1, 所 以 A 17, 把 A写 回 数 据 库 ; 乙 售 票 点 卖 出 二 张 车 票 , 修 改 车 票 余 数 A=A-2, 所 以 A=16, 把 A写 回 数 据 库 。 事 实 上 是 卖 出 三 张 车 票 ,而 数 据 库 中 车 票 余 额 只 减 少 2。 数 据 库 管 理 34 这 种 情 况 称 为 数 据 库 的 不 一 致 性 。 这 种 不 一 致 性 是 由 甲 乙 两 个售 票 员 并 发 操 作 引 起 的 。 ( 在 一 个 CPU上 , 利 用 分 时 方 法 实 行 多 个事 务 同 时 执 行 ) 。 在 并 发 操 作 情 况 下 , 对 甲 、 乙 两 个 事 务 的 操 作 序 列 的 调 度 是 随 机的 。 若 按 上 面 的 调 度 序 列 执 行 , 甲 事 务 的 修 改 就 被 丢 失 。 这 是 由 于第 4步 中 乙 事 务 修 改 A并 写 回 后 覆 盖 了 甲 事 务 的 修 改 。 并 发 操 作 带 来 的 数 据 不 一 致 性 包 括 三 类 : 丢 失 修 改 ; 不 一 致 分 析 ( 不 可 重 复 读 ) ; 读 “ 脏 ” 数 据 。 数 据 库 管 理 35 并 发 操 作 带 来 的 数 据 不 一 致 性 包 括 三 类 : 丢 失 修 改 ; 不 一 致 分 析 ( 不 可 重 复 读 ) ; 读 “ 脏 ” 数 据 。 数 据 库 管 理 36 1. 丢 失 更 新 ( Lost update) 指 事 务 Ti与 事 务 Tj从 数 据 库 中 读 入 同 一 数 据 并 修 改 ,事 务 2的 提交 结 果 破 坏 了 事 务 1提 交 的 结 果 ,导 致 事 务 1的 修 改 被 丢 失 。时 间 事 务 Ti 数 据 库 中 A的 值 事 务 Tj t0 18 t1 检 索 A: A 18 t2 检 索 A: A 18t 3 修 改 A: A A-1 t4 写 回 A: A=17 t5 17 t6 修 改 A: A A-2t7 写 回 A: A=16t8 16 数 据 库 管 理 37 2.不 一 致 分 析 ( 不 可 重 复 读 nonrepeatable read ) 指 事 务 Ti读 取 数 据 后 , 事 务 Tj执 行 更 新 操 作 , 使 事 务 Ti无 法 再读 取 前 一 次 结 果 。时 间 事 务 Ti 数 据 库 中 A、 B的 值 事 务 Tj t0 50、 100 t1 检 索 A、 B: A 50, B=100 t 2 求 和 : A+B=150 t3 检 索 B: B=100t4 修 改 B: B B*2t5 写 回 B: B=200t6 50、 200 t7 检 索 (验 算 ):A 50,B=200 t 8 求 和 : A+B=250 数 据 库 管 理 38 具 体 地 讲 , 不 一 致 分 析 ( 不 可 重 复 读 ) 包 括 三 种 情 况 : 事 务 Ti读 取 某 一 数 据 后 , 事 务 Tj对 其 做 了 修 改 , 当 事 务 Ti再 次 读 该 数 据 时 : 得 到 与 前 一 次 不 同 的 值 。 事 务 Ti按 一 定 条 件 从 数 据 库 中 读 取 某 些 数 据 记 录 后 , 事 务 Tj 删 除 了 其 中 部 分 记 录 ,当 事 务 Ti再 次 按 相 同 条 件 读 取 数 据 时 : 发 现 某 些 记 录 消 失 了 。 事 务 Ti按 一 定 条 件 从 数 据 库 中 读 取 某 些 数 据 记 录 后 , 事 务 Tj 插 入 了 一 些 记 录 , 当 事 务 Ti再 次 按 相 同 条 件 读 取 数 据 时 : 发 现 多 了 一 些 记 录 。 两 种 不 可 重 复 读 有 时 也 称 为 幻 行 ( phantom row) 现 象 。 数 据 库 管 理 39 3.读 “ 脏 ” 数 据 ( diriy read) 指 :事 务 Ti修 改 某 一 数 据 , 并 将 其 写 回 磁 盘 , 事 务 Tj读 取 同 一 数 据后 , 事 务 Ti由 于 某 种 原 因 被 撤 销 , 这 时 事 务 Ti已 修 改 过 的 数 据 恢 复原 值 , 事 务 Tj读 到 的 数 据 就 与 数 据 库 中 的 数 据 不 一 致 , 是 不 正 确 的数 据 , 称 为 “ 脏 ” 数 据 。时 间 事 务 Ti 数 据 库 中 C的 值 事 务 Tj t0 100 t1 检 索 C: C=100 t 2 修 改 C : CC*2 t3 写 回 C:: C=200 T4 200 t5 检 索 C: C=200t6 回 滚 : ROLLBACK t7 C恢 复 为 : 100 t8 100 数 据 库 管 理 40 产 生 上 述 三 类 数 据 不 一 致 性 的 主 要 原 因 是 : 并 发 操 作 破 坏 了 事 务 的 隔 离 性 。 并 发 控 制 就 是 要 用 正 确 的 方 式 调 度 并 发 操 作 , 使 一 个用 户 事 务 的 执 行 不 受 其 他 事 务 的 干 扰 , 从 而 避 免 造 成 数据 的 不 一 致 性 。 DBMS的 并 发 控 制 子 系 统 的 职 责 : 负 责 协 调 并 发 事 务 的 执 行 , 保 证 数 据 库 的 完 整 性 , 同 时 避 免 用 户 得 到 不 正 确 的 数 据 。 数 据 库 管 理 41 计 算 机 系 统 对 并 行 事 务 中 并 行 操 作 的调 度 是 随 机 的 , 而 不 同 的 调 度 可 能 会 产生 不 同 的 结 果 , 那 么 哪 个 结 果 是 正 确 的 ,哪 个 是 不 正 确 的 呢 ? 数 据 库 管 理 42 二 、 并 发 调 度 的 可 串 行 化 1、 概 念事 务 的 调 度 : 串 行 调 度 : 并 发 调 度 : 事 务 的 执 行 次 序 称 为 “ 调 度 ” 。如 果 多 个 事 务 依 次 执 行 , 则 称 为 事 务 的 串 行调 度 ( Serial Schedule) 。如 果 利 用 分 时 的 方 法 , 同 时 处 理 多 个 事务 , 则 称 为 事 务 的 并 发 调 度 ( Concurrent Schedule) 。 在 事 务 并 发 执 行 时 ,有 可 能 破 坏 数 据 库 的 一 致 性 , 或 用 户 读 了 脏 数 据 。 数 据 库 管 理 43 如 果 有 n个 事 务 串 行 调 度 , 可 有 n!种 不 同 的 有 效 调 度 。 如 果 有 n个 事 务 并 发 调 度 ,可 能 的 并 发 调 度 数 目 远 远 大 于 n!。 DBMS的 并 发 控 制 子 系 统 实 现 : 如 何 产 生 正 确 的 并 发 调 度 。 如 何 判 断 一 个 并 发 调 度 是 正 确 的 , 用 并 发 调 度 的 可 串 行 化 概 念 解 决 . 数 据 库 管 理 44 现 在 有 两 个 事 务 , 分 别 包 含 下 列 操 作 : 事 务 T1: 读 B; A=B十 1; 写 回 A; 事 务 T2: 读 A; B=A十 1; 写 回 B 假 设 A的 初 值 为 10, B的 初 值 为 2。 下 图 给 出 了 对 这 两 个 事 务 的 三 种 不 同 的 调 度 策 略 。 ( a) 和 ( b) 为 两 种 不 同 的 串 行 调 度 策 略 , 虽 然 执 行 结 果 不 同 , 但 它 们 都 是 正 确 的 调 度 。 ( c) 中 两 个 事 务 是 交 错 执 行 的 , 由 于 其 执 行 结 果 与 ( a) 、 ( b) 的 结 果 都 不 同 , 所 以 是 错 误 的 调 度 。 ( d) 中 两 个 事 务 也 是 交 错 执 行 的 , 由 于 其 执 行 结 果 与 串 行 调度 1( 图 ( a) ) 的 执 行 结 果 相 同 , 所 以 是 正 确 的 调 度 。 数 据 库 管 理 45 ( a) 串 行 调 度 1(先 T1后 T2)时 间 事 务 T1 数 据 库 中 A、 B的 值 事 务 T2 t0 10、 2 t1 检 索 B: B=2 t2 修 改 : A B+1 t3 写 回 A: A=3 3、 2 t 5 检 索 A: A=3t6 修 改 : A A+1t7 写 回 B: B=4t8 3、 4 数 据 库 管 理 46 时 间 事 务 T1 数 据 库 中 A、 B的 值 事 务 T2 t0 10、 2 t1 检 索 A: A=10t2 修 改 B:B A+1t3 写 回 B: B=11t5 10、 11 t 6 检 索 B: B=11 t7 修 改 A: A B+1 t8 写 回 A: A=12 12、 11 ( b) 串 行 调 度 2 (先 T2后 T1) 数 据 库 管 理 47 时 间 事 务 T1 数 据 库 中 A、 B的 值 事 务 T2 t0 10、 2 t1 检 索 B: B=2 t2 检 索 A:A=10t3 修 改 A: A B+1 t5 写 回 A: A=3 t 6 3、 2 修 改 B:B A+1t7 写 回 B: B=11t8 3、 11 ( c) 不 可 串 行 化 调 度 (交 错 执 行 ) 数 据 库 管 理 48 时 间 事 务 T1 数 据 库 中 A、 B的 值 事 务 T2 t0 10、 2 t1 检 索 B: B=2 t2 等 待t3 修 改 A: A B+1 等 待t5 写 回 A: A=3 等 待t6 3、 2 检 索 A: A=3t 7 修 改 B:B A+1t8 写 回 B: B=4t9 3、 4 ( d) 可 串 行 化 调 度 (结 果 同 串 行 调 度 1) 数 据 库 管 理 49 为 了 保 证 并 行 操 作 的 正 确 性 : DBMS的 并 行 控 制 机 制 必 须 提 供 一 定 的 手 段 来 保 证 调 度 是 可 串 行 化 的 。 从 理 论 上 讲 , 在 某 一 事 务 执 行 时 禁 止 其 他 事 务 执 行 的调 度 策 略 一 定 是 可 串 行 化 的 调 度 , 这 也 是 最 简 单 的 调 度 策略 , 但 这 种 方 法 实 际 上 是 不 可 行 的 , 因 为 它 使 用 户 不 能 充分 共 享 数 据 库 资 源 。 数 据 库 管 理 50 2 可 串 行 化 调 度 定 义 : 每 个 事 务 中 , 语 句 的 先 后 顺 序 在 各 种 调 度 中 始 终 保 持 一 致 。 在 这 个 前 提 下 : 如 果 一 个 并 发 调 度 的 执 行 结 果 与 某 一 串 行 调 度 的执 行 结 果 等 价 , 那 么 这 个 并 发 调 度 称 为 “ 可 串 行 化 的 调 度 ” , 否 则是 不 可 串 行 化 的 调 度 。 可 串 行 性 ( serializable) 是 并 发 事 务 正 确 性 的 唯 一 准 则 。 数 据 库 管 理 51 为 保 证 并 行 操 作 调 度 的 可 串 行 性 目 前 DBMS普 遍 采 用 封 锁 方 法 来 保 证 调 度 的 正 确 性 , 另 外 还 有 其 他 一 些 方 法 : 时 标 方 法 、 乐 观 方 法 等 。 数 据 库 管 理 52 三 、 封 锁 封 锁 是 实 现 并 发 控 制 的 一 个 非 常 重 要 的 技 术 。 封 锁 : 事 务 T在 对 某 个 数 据 对 象 ( 表 或 记 录 等 ) 操 作 之 前 , 先 向 系 统 发 出 请 求 , 对 其 加 锁 。 加 锁 后 事 务 T对 该 数 据 对 象 有 了 一 定 的 控 制 , 在 事 务 T释 放 它 的 锁 之 前 ,其 他 的 事 务 不 能 更 新 此 数 据 对 象 。 数 据 库 管 理 53 1、 封 锁 类 型 基 本 的 封 锁 类 型 有 两 种 : 排 它 锁 ( exclusive lock,简 记 为 X锁 ) ; 共 享 锁 ( share lock, 简 记 为 S锁 ) 。 数 据 库 管 理 54 排 它 锁 (X锁 ): 如 果 事 务 T对 某 个 数 据 实 现 X锁 , 那 么 其 他 事 务 T 要 等 T解 除 X锁 以 后 , 才 能 对 这 个 数 据 进 行 封 锁 。 也 就 是 不 允 许 其 他 事 务 T 再 对 该 数 据 加 任 何 类 型 的 锁 。 采 用 X锁 的 并 发 控 制 并 发 度 低 , 只 允 许 一 个 事 务 独 占数 据 。 而 其 他 申 请 封 锁 的 事 务 只 能 排 队 去 等 。 为 此 , 降 低 要 求 , 允 许 并 发 的 读 , 就 引 入 了 共 享 型 封 锁( Shared Lock) , 这 种 锁 简 称 为 S锁 , 又 称 为 读 锁 。 数 据 库 管 理 55 (2)共 享 锁 (S锁 ): 如 果 事 务 T对 某 数 据 加 上 S锁 后 , 仍 允 许 其 他 事 务 再对 该 数 据 加 S锁 , 但 在 对 该 数 据 的 所 有 S锁 都 解 除 之 前 决不 允 许 任 何 事 务 对 该 数 据 加 X锁 。 相 容 矩 阵 : T2T1 X S XS N N Y N Y Y Y Y Y 数 据 库 管 理 56 2、 封 锁 粒 度 X锁 和 S锁 都 是 加 在 某 一 个 数 据 对 象 上 的 。 封 锁 的 对 象 可 以 是 逻 辑 单 元 , 也 可 以 是 物 理 单 元 。 在 关 系 数 据 库 中 , 封 锁 对 象 可 以 是 : 属 性 值 、 属 性 值 集 合 、 元 组 、 关 系 、 索 引 项 、 整 个 索 引 、 整 个 数 据 库 等 逻 辑 单 元 ; 也 可 以 是 页 ( 数 据 页 或 索 引 页 ) 、 块 等 物 理 单 元 。 封 锁 对 象 可 以 很 大 , 比 如 对 整 个 数 据 库 加 锁 , 也 可 以 很 小 , 比 如 只 对 某 个 属 性 值 加 锁 。 封 锁 对 象 的 大 小 称 为 封 锁 的 粒 度 ( granularity) 。 数 据 库 管 理 57 封 锁 粒 度 与 系 统 的 并 发 度 和 并 发 控 制 的 开 销 密 切 相 关 。 封 锁 的 粒 度 越 大 , 系 统 中 能 够 被 封 锁 的 对 象 就 越 少 , 并 发 度 也 就 越 小 , 但 同 时 系 统 开 销 也 越 小 ; 相 反 , 封 锁 的 粒 度 越 小 , 并 发 度 越 高 , 但 系 统 开 销 也 就 越 大 。 数 据 库 管 理 58 因 此 , 如 果 在 一 个 系 统 中 同 时 存 在 不 同 大 小 的 封 锁 单 元 供 不 同的 事 务 选 择 使 用 是 比 较 、 理 想 的 。 选 择 封 锁 粒 度 时 必 须 同 时 考 虑 封 锁 机 构 和 并 发 度 两 个 因 素 , 对系 统 开 销 与 并 发 度 进 行 权 衡 , 以 求 得 最 优 的 效 果 。 一 般 说 来 , 需 要 处 理 大 量 元 组 的 用 户 事 务 可 以 以 关 系 为 封 锁 单 元; 需 要 处 理 多 个 关 系 的 大 量 元 组 的 用 户 事 务 可 以 以 数 据 库 为 封 锁 单位 ; 而 对 于 一 个 处 理 少 量 元 组 的 用 户 事 务 , 可 以 以 元 组 为 封 锁 单 位以 提 高 并 发 度 。 数 据 库 管 理 59 3、 封 锁 协 议 封 锁 的 目 的 是 为 了 保 证 能 够 正 确 地 调 度 并 发 操 作 。 在 运 用 X锁 和 S锁 这 两 种 基 本 封 锁 , 对 一 定 粒 度 的 数 据 对 象 加 锁时 , 还 需 要 约 定 一 些 规 则 , 例 如 , 应 何 时 申 请 X锁 或 S锁 、 持 锁 时 间、 何 时 释 放 等 。 称 这 些 规 则 为 封 锁 协 议 ( 1ocking protocol) 。 对 封 锁 方 式 规 定 不 同 的 规 则 , 就 形 成 了 各 种 不 同 的 封 锁 协 议 ,它 们 分 别 在 不 同 的 程 度 上 为 并 发 操 作 的 正 确 调 度 提 供 一 定 的 保 证 。 数 据 库 管 理 60 ( 1) 、 保 证 数 据 一 致 性 的 封 锁 协 议 PX协 议 和 PXC协 议 使 用 X锁 的 规 则 。 PX协 议 : PXC协 议 : 任 何 事 务 T在 更 新 记 录 R之 前 必 须 先 执 行 “ XFIND R” 操 作 , 以 获 得 对 R的 X锁 , 才 能 读 或 写 记 录 R; 如 果 未 获 准 X锁 , 那 么这 个 事 务 进 入 等 待 状 态 。 一 直 到 获 准 X锁 , 事 务 才 能 继 续 做 下去 。 ( 如 果 过 早 地 解 锁 , 有 可 能 使 其 他 事 务 读 了 未 提 交 数 据 ( 且随 后 被 回 退 ) , 引 起 丢 失 其 他 事 务 的 更 新 。 PX协 议 加 上 X锁 的 解 除 操 作 应 该 合 并 到 事 务 的 结 束 ( COMMIT或 ROLLBACK) 操 作 中 。 ( 可 解 决 丢 失 更 新 ) 数 据 库 管 理 61 等 事 务 T1更 新 完 成 后 再 执 行 事 务 T2: ( 可 解 决 丢 失 更 新 ) 时 间 事 务 T1 数 据 库 中 A的 值 事 务 T2 t0 18 t1 加 锁 : XFIND A T1 加 锁 t2 XFIND A( 失 败 )t3 更 新 : A:=A-1 等 待T4 写 回 A=17: UPD A 等 待t 5 17 等 待t6 COMMIT(包 括 解 锁 ) T1 解 锁 等 待t7 T2 加 锁 XFIND A( 重 做 )t8 更 新 : A:=A-2t9 写 回 A=15: UPD AT1 15 COMMIT(包 括 解 锁 ) 数 据 库 管 理 62 PS协 议 和 PSC协 议 使 用 S锁 的 规 则 PS协 议 : PSC协 议 : 任 何 要 更 新 记 录 R的 事 务 必 须 先 执 行 “ SFIND R” 操作 , 以 获 得 对 R的 S锁 .当 事 务 获 准 对 R的 S锁 后 ,若 要 更 新 记 录 R必 须 用 “ UPDX R” 操 作 , 这 个 操 作 首 先 把 S锁 升 级 为 X锁 , 若 成 功 则 更新 记 录 , 否 则 这 个 事 务 进 入 等 待 队 列 。注 意 : 获 准 S锁 的 锁 事 务 只 能 读 数 据 , 不 能 更 新 数 据 , 若 要 更 新 , 则 先 要 把 S锁 升 级 为 X锁 。 PS协 议 加 上 S锁 的 解 除 操 作 应 该 合 并 到 事 务 的 结 束 ( COMMIT或 ROLLBACK) 操 作 中 。 ( PSC协 议 解 决 不 一 致 分 析 和 读 “ 脏 ” 数 据 问 题 ) 数 据 库 管 理 63 时 间 事 务 T1 数 据 库 中 A、 B的 值 事 务 T2 t0 50、 100 t1 加 锁 SFIND A, B T1: A、 B加 S锁 t2 求 和 : A+B=150 t3 T2: A、 B加 S锁 加 锁 : SFIND BT4 更 新 : B:=B*2t 5 写 回 B=200 UPDX B 失 败t6 等 待t7 检 索 (验 算 )A 0,B=100 等 待t8 求 和 : A+B=150 等 待t9 COMMIT(包 括 解 锁 A,B) T1: 解 锁 A,B 等 待t10 T2: B加 X锁 写 回 B=200:UPDX B重 做t11 50,200 COMMIT(包 括 解 锁 B) 解 决 不 一 致 分 析 和 读 “ 脏 ” 数 据 问 题 : 数 据 库 管 理 64 封 锁 技 术 可 以 有 效 地 解 决 并 行 操 作 的 一 致 性 问 题 ; 但 也 带 来 新 的 问 题 , 即 活 锁 和 死 锁 的 问 题 。 “ 活 锁 ” :系 统 可 能 使 某 个 事 务 永 远 处 于 等 待 状 态 , 得 不 到 封 锁的 机 会 。 “ 死 锁 ” :系 统 中 有 两 个 或 两 个 以 上 的 事 务 都 处 于 等 待 状 态 , 并 且 每 个 事 务 都 在 等 待 其 中 另 一 个 事 务 解 除 封 锁 , 它 才 能 继 续 执 行 下 去 , 结 果 造 成 任 何 一 个 事 务 都 无 法 继 续 执 行 。 数 据 库 管 理 65 事 务 T1 数 据 A 事 务 T2 事 务 T3 事 务 T4XFIND A T1 加 X锁 。 .。 XFIND A (失 败 ) 。 等 待 XFIND A (失 败 ) 解 锁 A T1 解 锁 等 待 等 待 XFIND A (失 败 ) 。 T3 加 X锁 等 待 XFIND A (重 做 ) 等 待 等 待 。 。 等 待 。 。 等 待 。 。 T3 解 锁 等 待 解 锁 A 等 待 等 待 。 等 待 T4 加 X锁 等 待 。 XFIND A ( 重 做 ) 等 待 。 。 活 锁 : 避 免 活 锁 的 简 单 方 法 是 : 采 用 先 来 先 服 务 的 策 略 。 数 据 库 管 理 66 “ 死 锁 ” : 系 统 中 有 两 个 或 两 个 以 上 的 事 务 都 处 于 等 待 状 态 , 并且 每 个 事 务 都 在 等 待 其 中 另 一 个 事 务 解 除 封 锁 , 它 才 能 继 续 执 行 下去 , 结 果 造 成 任 何 一 个 事 务 都 无 法 继 续 执 行 。 事 务 T1 数 据 A、 B 事 务 T2加 锁 :XFIND A T1 A 加 X锁 .。 T2 B 加 X锁 加 锁 :XFIND B 。 加 锁 :XFIND B( 失 败 ) 等 待 加 锁 :XFIND A( 失 败 ) 等 待 等 待 等 待 等 待。 。 。 。 。 数 据 库 管 理 67 用 事 务 依 赖 图 的 形 式 测 试 系 统 中 是 否 存 在 死 锁 。事 务 依 赖 图 中 : 每 一 个 结 点 表 示 “ 事 务 ” ; 箭 头 表 示 事 务 间 的 依 赖 关 系 。 数 据 库 管 理 68 例 :并 发 执 行 中 两 个 事 务 的 依 赖 关 系 如 下 图 所 示 : 事 务 T1需 要 数 据 B, 但 B已 被 事 务 T2封 锁 , 那 么 从 T1到 T2画 一 个 箭 头 ; 事 务 T2需 要 数 据 A, 但 A已 被 事 务 T1封 锁 , 那 么 从 T2到 T1也 应 画 一 个 箭 头 。如 果 在 事 务 依 赖 图 中 沿 着 箭 头 方 向 存 在 一 个 循 环 , 那 么 死 锁 的 条件 就 形 成 了 , 系 统 进 入 死 锁 状 态 。事 务 依 赖 图 : 数 据 B数 据 A 数 据 库 管 理 69 DBMS中 有 一 个 死 锁 测 试 程 序 : 每 隔 一 段 时 间 检 查 并 发 的 事 务 之 间 是 否 发 生 死 锁 。 如 果 发 生 死 锁 : 只 能 抽 取 某 个 事 务 作 为 牺 牲 品 , 把 它 撤 消 , 做 回 退 操 作 , 解 除 它 的 所 有 封 锁 , 恢 复 到 该 事 务 的 初 始 状 态 。 释 放 出 来 的 资 源 就 可 以 分 配 给 其 他 事 务 , 使 其 他 事 务 有 可 能 继 续 运 行 下 去 , 就 有 可 能 消 除 死 锁 现 象 。 数 据 库 管 理 70 理 论 上 讲 , 系 统 进 入 死 锁 状 态 时 可 能 会 有 许 多 事 务 在 相 互 等 待 , 但 是 System R的 实 验 表 明 , 实 际 上 绝 大 部 分 的 死 锁 只 涉及 到 两 个 事 务 , 也 就 是 事 务 依 赖 图 中 的 循 环 里 只 有 两 个事 务 。 死 锁 也 被 形 象 地 称 作 “ 死 死 拥 抱 ” 。 数 据 库 管 理 71 ( 2) 、 保 证 并 行 调 度 可 串 行 性 的 封 锁 协 议 两 段 锁 协 议 可 串 行 性 是 并 行 调 度 正 确 性 的 唯 一 准 则 ,两 段 锁 ( two-phase 1ocking) 协 议 是 为 了 保 证 并 行 调 度 可 串 行 性 提 供 的 封 锁 协 议 。 两 段 锁 协 议 规 定 : 在 对 任 何 数 据 进 行 读 写 操 作 之 前 ,事 务 必 须 获 得 对 该 数 据 的 封 锁 在 释 放 一 个 封 锁 之 后 , 事 务 不 再 获 得 任 何 其 他 封 锁 。 两 段 锁 的 实 际 含 义 是 事 务 分 为 两 个 阶 段 : 第 一 阶 段 是 获 得 封 锁 , 也 称 为 扩 展 阶 段 ; 第 二 阶 段 是 释 放 封 锁 , 也 称 为 收 缩 阶 段 。 数 据 库 管 理 72 例 : 事 务 T1的 封 锁 序 列 是 : (遵 守 两 段 锁 协 议 ) SFIND ASFIND BXFIND C 解 锁 B 解 锁 A 解 锁 C; 事 务 T2的 封 锁 序 列 是 : (不 遵 守 两 段 锁 协 议 ) SFINDA 解 锁 ASFIND B XFIND C 解 锁 C 解 锁 B; 数 据 库 管 理 73 可 以 证 明 , 若 并 行 执 行 的 所 有 事 务 均 遵 守 两 段 锁 协 议 , 则 对 这 些事 务 的 所 有 并 行 调 度 策 略 都 是 可 串 行 化 的 。结 论 : 所 有 遵 守 两 段 锁 协 议 的 事 务 , 并 行 执 行 的 结 果 一 定 是 正 确 的 。注 意 : 事 务 遵 守 两 段 锁 协 议 是 可 串 行 化 调 度 的 充 分 条 件 , 而 不 是必 要 条 件 。 即 可 串 行 化 的 调 度 中 , 不 一 定 所 有 事 务 都 必 须 符 合 两段 锁 协 议 。 两 段 锁 协 议 仍 有 可 能 导 致 死 锁 , 而 且 会 增 多 , 因 为 每 个 事 务 都 不 能 及 时 解 除 被 它 封 锁 的 数 据 数 据 库 管 理 74 4 数 据 库 管 理 完 整 性 教 学 内 容 : 完 整 性 的 定 义 ; 完 整 性 子 系 统 的 功 能 ; 完 整 性 规 则 的 组 成 ; SQL中 的 三 大 类 完 整 性 约 束 ; SQL3中 的 触 发 器 技 术 。重 点 : SQL中 的 三 大 类 完 整 性 约 束 ; SQL3中 的 触 发 器 技 术 。 数 据 库 管 理 75 数 据 库 的 完 整 性 是 指 数 据 的 正 确 性 和 相 容 性 。 数 据 库 的 完 整 性 机 制 : 检 查 数 据 库 中 数 据 是 否 满 足 规 定 的 条 件 (完 整 性 检 查 )。 完 整 性 约 束 条 件 : 数 据 库 中 数 据 应 该 满 足 的 条 件 。 也 称 为 完 整 性 规 则 。 DBMS中 执 行 完 整 性 检 查 的 子 系 统 称 为 “ 完 整 性 子 系 统 ” 。 数 据 库 管 理 76 一 、 完 整 性 子 系 统 的 主 要 功 能 : 监 督 事 务 的 执 行 , 并 测 试 是 否 违 反 完 整 性 规 则 。 如 有 违 反 现 象 , 则 采 取 恰 当 的 操 作 。 如 拒 绝 , 报 告 违 反 情 况 , 改 正 错 误 等 方 法 来 处 理 。 数 据 库 管 理 77 二 、 完 整 性 规 则 的 组 成 与 分 类1、 每 个 规 则 由 三 部 分 组 成 : 什 么 时 候 使 用 规 则 进 行 检 查 ( 规 则 的 “ 触 发 条 件 ” ) ; 要 检 查 什 么 样 的 错 误 ( “ 约 束 条 件 ” 或 “ 谓 词 ” ) ; 若 检 查 出 错 误 , 该 怎 样 处 理 ( “ ELSE子 句 ” , 即 违 反 时 要 做 的 动 作 ) 。2、 在 关 系 数 据 库 中 , 完 整 性 规 则 可 分 为 三 类 : 域 完 整 性 规 则 : 定 义 属 性 的 取 值 范 围 ; 基 本 表 约 束 ; 断 言 。 数 据 库 管 理 78 三 、 SQL中 的 完 整 性 约 束 1. 域 完 整 性 规 则 : 定 义 属 性 的 取 值 范 围 -属 性 值 约 束 。包 括 : 域 约 束 子 句 、 非 空 值 约 束 、 基 于 属 性 的 检 查 子 句 。 用 “ CREATE DOMAIN” 语 句 定 义 新 的 域 ,并 可 出 现 CHECK子 句 。例 : 定 义 一 个 新 的 域 DEPT, 可 用 下 列 语 句 实 现 :CREATE DOMAIN DEPT CHAR ( 20) DEFAULT 计 算 机 软 件 CONSTRAINT VALID_ DEPT /*域 约 束 名 字 */CHECK( VALUE IN ( 计 算 机 科 学 与 技 术 , 计 算 机 软 件 ); 允 许 域 约 束 上 的 CHECK子 句 中 可 以 有 任 意 复 杂 的 条 件 表 达 式 。 数 据 库 管 理 79 非 空 值 约 束 ( NOT NULL) 例 : SNO char(4) NOT NULL 基 于 属 性 的 检 查 子 句 (CHECK): 例 : CHECK (GRADE IS NULL) OR (GRADE BRTWEEN 0 AND 100) 数 据 库 管 理 80 2. 基 本 表 约 束 : 主 键 约 束 : 主 键 可 用 主 键 子 句 或 主 键 短 语 定 义 ; 外 键 约 束 : 用 外 键 子 句 定 义 外 键 : FOREIGN KEY( 列 名 序 列 1 ) . REFERENCES ( ) ON DELETE ON UPDATE 其
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 市场营销


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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