已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
01 04 2020 1 第六章数据库保护 6 1事务6 2数据库恢复技术6 3并发控制6 4数据库的完整性6 5数据库的安全性 01 04 2020 2 学习目标 理解并掌握事务的相关概念了解数据库保护的四方面技术 数据库的恢复技术并发控制数据库的完整性数据库的安全性 01 04 2020 3 6 1事务 6 1 1事务的概念6 1 2事务的特性6 1 3SQLServer2000事务应用举例6 1 4事务的状态转换 01 04 2020 4 6 1 1事务的概念 事务 Transaction 是用户定义的一个数据库操作序列 这些操作要么全做 要么全不做 是一个不可分割的工作单位 事务和程序是两个概念在关系数据库中 一个事务可以是一条SQL语句 一组SQL语句或整个程序一个应用程序通常包含多个事务事务是数据恢复和并发控制的基本单位 01 04 2020 5 事物的三种运行模式 1 自动提交事务2 显式事务3 隐性事务 每条单独语句都是一个事务 BEGINTRANSACTION 事务开始 COMMIT 提交事务 ROLLBACK 事务回滚 例如银行转帐 在前一个事务完成时则新事务隐式启动 但每个事务仍以COMMIT或ROLLBACK语句显式的表示完成 01 04 2020 6 6 1 2事务的特性 事务的ACID特性 原子性 Atomicity 原子性由恢复机制实现一致性 Consistency 由并发控制机制实现隔离性 Isolation 通过并发控制机制实现持续性 Durability 通过恢复机制实现 一个事务的执行不能被其他事务干扰 01 04 2020 7 6 1 3SQLServer2000事务应用举例 教材例6 2 自学 01 04 2020 8 6 1 4事务的状态转换 活动状态 部分提交 全部提交 失败 异常终止 事务状态转换图 01 04 2020 9 6 2数据库恢复技术 6 2 1数据库可能出现的故障6 2 2数据库的恢复原理6 2 3SQLServer2000种数据备份与恢复的实现 数据库的恢复就是将数据库从错误的状态恢复到某一正确状态 01 04 2020 10 6 2 1数据库可能出现的故障 1 事务内部故障 2 系统故障 3 介质故障 可以通过事务本身发现的故障 b 非预期故障 运算溢出 并发事务发生死锁 违反完整性约束条件 4 计算机病毒 发生故障后 应强行回滚 使该事务好像根本没有启动一样 这种恢复操作称为事务撤销 Undo 指造成系统停止运转的任何事件 使得系统要重新启动 系统故障的影响 尚未完成事务可能已部分写入数据库 恢复子系统要做的工作 1 撤销所有未提交事务 2 重做所有已提交事务 指外存故障介质故障的影响 破坏数据库或部分数据库 影响部分正在执行的事务 恢复策略 数据转储 病毒的影响 破坏应用程序 进而破坏数据库 修改缓冲区 直接破坏数据库 恢复策略 数据转储 01 04 2020 11 各类故障对数据库的影响 1 数据库本身被破坏 2 数据库没有被破坏 但数据可能不正确 恢复原理 冗余 01 04 2020 12 6 2 2数据库的恢复原理 恢复机制涉及的关键问题1 如何建立冗余数据 即数据库的重复存储 数据转储 backup 登录日志文件 logging 2 如何利用这些冗余数据实施数据库恢复 01 04 2020 13 一 数据转储 所谓转储 即DBA定期的将整个数据库复制到磁带或另一个磁盘上保存起来的过程 转储十分耗费时间和资源 不能频繁进行 01 04 2020 14 1 静态转储 在系统中无运行事务时进行转储转储开始时数据库处于一致性状态转储期间不允许对数据库的任何存取 修改活动优点 实现简单缺点 降低了数据库的可用性转储必须等用户事务结束新的事务必须等转储结束 1 静态转储和动态转储 01 04 2020 15 2 动态转储 转储操作与用户事务并发进行转储期间允许对数据库进行存取或修改优点不用等待正在运行的用户事务结束不会影响新事务的运行动态转储的缺点不能保证副本中的数据正确有效利用动态转储得到的副本进行故障恢复需要把动态转储期间各事务对数据库的修改活动登记下来 建立日志文件后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态 01 04 2020 16 海量转储 每次转储全部数据库增量转储 只转储上次转储后更新过的数据海量转储与增量转储比较从恢复角度看 使用海量转储得到的后备副本进行恢复往往更方便但如果数据库很大 事务处理又十分频繁 则增量转储方式更实用更有效 2 海量转储与增量转储 01 04 2020 17 转储方法分类 3 转储方法小结 01 04 2020 18 二 登陆日志文件 日志文件 log 是用来记录事务对数据库的更新操作的文件 一 日志文件的格式和内容二 日志文件的作用三 登记日志文件 01 04 2020 19 1 日志文件的格式以记录为单位的日志文件以数据块为单位的日志文件 2 日志文件内容日志文件中的一个日志记录 logrecord 各个事务的开始标记 BEGINTRANSACTION 各个事务的结束标记 COMMIT或ROLLBACK 各个事务的所有更新操作 1 日志文件的格式和内容 3 基于记录的日志文件 每条日志记录的内容事务标识操作类型 插入 删除或修改 操作对象 记录ID BlockNO 更新前数据的旧值 对插入操作而言 此项为空值 更新后数据的新值 对删除操作而言 此项为空值 4 基于数据块的日志文件 事务标识被更新的数据块 01 04 2020 21 日志文件的作用 1 事务故障恢复和系统故障恢复必须用日志文件 2 动态转储方式中必须建立日志文件 后援副本和日志文件综合起来才能有效恢复数据 3 静态转储方式中 数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时的状态 然后利用日志文件 把已完成事务进行重做处理 对故障发生时尚未完成事务做撤销处理 2 日志文件的用途 01 04 2020 22 为保证数据库是可恢复的 登记日志文件时必须遵循两条原则登记的次序严格按并行事务执行的时间次序必须先写日志文件 后写数据库 3 登记日志文件 01 04 2020 23 6 2 3SQLServer2000种数据备份与恢复的实现 01 04 2020 24 6 3并发控制 6 3 1并发操作带来的不一致问题6 3 2并发控制 封锁及解锁协议 在数据库技术中 并发是指多个事务同时访问同一数据 与事务的并发执行相对的是事务的串行执行 即每个时刻只有一个事务运行 其他的事务只有在这个事务执行完毕后才可运行 01 04 2020 25 6 3 1并发操作带来的不一致问题 存在三种因并发操作带来的不一致问题 1 丢失修改 LostUpdate 2 不可重复读 Non Repeatableread 3 读 脏 数据 dirtyread 01 04 2020 26 1 丢失修改 例 甲 乙两个售票点的T1 T2两个事务 丢失修改 两个事务T1和T2读入同一个数据并修改 T2提交的结果破坏了T1提交的结果 导致T1的修改被丢失 1 读A 16 例 求A B两个售票点的总票数 并验算 1 读A 50读B 100和 150 不可重复读 T1读取数据后 T2执行更新操作 使T1无法再现前一次读取结果 有三种情况 3 读A 50读B 99和 149 1 T2修改了T1读取的值 2 T2删除了T1读取的部分记录 3 T2插入了满足T1读取条件的部分记录 后两种不可重复读也称为幻影现象 2 不可重复读 01 04 2020 28 例 查询A售票点的票数 1 读A 50A A 1写A 49 读 脏 数据 T1读取数据后写回磁盘 T2读取同一数据后 T1事务被撤销 3 回滚A恢复为50 3 读 脏 数据 01 04 2020 29 6 3 2并发控制 封锁及解锁协议 封锁是实现并发控制的一个非常重要的技术 既可使事务并发地执行又保证数据的一致性 定义 所谓封锁就是事务在对某个数据对象 如表 记录等 操作之前 先向系统发出请求 对其加锁 加锁后事务就对该数据对象有了一定的控制 在事务释放它的锁之前 其它的事务不能更新此数据对象 有两种类型的锁 排他锁 ExclusiveLocks 简记为X锁 和共享锁 ShareLocks 简记为S锁 排它锁 排它锁又称为写锁若事务T对数据对象A加上X锁 则只允许T读取和修改A 其它任何事务都不能再对A加任何类型的锁 直到T释放A上的锁 共享锁 共享锁又称为读锁若事务T对数据对象A加上S锁 则事务T可以读A 但不能修改A 其它事务只能再对A加S锁 而不能加X锁 直到T释放A上的S锁 01 04 2020 31 锁的相容矩阵 01 04 2020 32 在运用X锁和S锁对数据对象加锁时 需要约定一些规则 封锁协议 LockingProtocol 何时申请X锁或S锁持锁时间 何时释放不同的封锁协议 在不同的程度上为并发操作的正确调度提供一定的保证常用的封锁协议 三级封锁协议 封锁协议 简介 01 04 2020 33 6 4数据库的完整性 6 4 1数据库的完整性介绍6 4 2SQL中完整性约束6 4 3SQLServer2000中完整性约束的实现 6 4 1数据库的完整性介绍 数据库的完整性 即数据的正确性和相容性 数据库完整性约束条件 即加在数据库数据之上的语义约束条件 完整性检查 DBMS中检查数据是否满足完整性条件的机制 01 04 2020 35 6 4 2SQL中完整性约束 三种完整性约束 1实体完整性约束 UNIQUE 定义候选码 PRIMARYKEY 定义主键 2参照完整性约束 FOREIGNKEY REFERENCES ONDELETE ONUPDATE 3用户定义的完整性约束 CREATETABLES SNOCHAR 6 SNAMECHAR 10 SAGEINT PRIMARYKEY SNO 01 04 2020 36 6 4 3SQLServer2000中完整性约束的实现 在SQLServer2000支持五类约束 这五类约束分别是空值约束 CHECK约束 唯一性约束 主键约束和外键约束 01 04 2020 37 6 5数据库的安全性 6 5 1计算机系统的安全性问题6 5 2权限6 5 3数据库的安全性控制6 5 4SQLServer2000中系统安全性实现 01 04 2020 38 6 5 1计算机系统的安全性问题 要保证数据库系统的安全性首先要保证计算机系统的安全性 计算机系统安全性 是指为计算机系统建立和采取的各种安全保护措施 以保护计算机系统中的硬件 软件及数据 防止因偶然或恶意的原因使系统遭到破坏 数据遭到更改或泄露等 01 04 2020 39 数据库的安全性是指保护数据库 防止因用户非法使用数据库造成数据泄露 更改或破坏 数据库的一大特点 数据可以共享 数据库共享不能是无条件的 例 军事秘密 国家机密 新产品实验数据 市场需求分析 市场营销策略 销售计划 客户档案 医疗档案 银行储蓄数据等 01 04 2020 40 6 5 2权限 1 权限是指用户 或应用程序 使用数据库的方式 DBS中 对于数据操作的权限有以下几种 1 读 Read 权限 允许用户读数据 但不得修改数据 2 插入 Insert 权限 允许用户插入新的数据 但不得修改数据 3 修改 Update 权限 允许用户修改数据 但不得删除数据 4 删除 Delete 权限 允许用户删除数据 01 04 2020 41 系统还提供给用户 或应用程序 修改数据库模式的操作权限 主要有下列几种 1 索引 Index 权限 允许用户创建和删除索引 2 资源 Resource 权限 允许用户创建新的关系 3 修改 Alteration 权限 允许用户在关系结构中加入或删除属性 4 撤销 Drop 权限 允许用户撤销关系 2 权限的授予与回收 GRANT和REVOKE语句 01 04 2020 42 6 5 3数据库的安全性控制 数据库的安全性控制措施主要有 用户标识与鉴别 存取控制 视图机制和数据加密 安全措施一般是逐级设置的 01 04 2020 43 1 用户标识与鉴别系统提供的最外层安全保护措施 用户标识 口令或每个用户预先约定好一个计算过程或者函数 2 存取控制存取控制机制的组成 定义存取权限 检查存取权限用户权限定义和合法权检查机制一起组成了DBMS的安全子系统 常用存取控制方法自主存取控制 DiscretionaryAccessControl 简称DAC 强制存取控制 MandatoryAccessControl 简称MAC 01 04 2020 44 自主存取控制方法 DAC 存取权限有两个要素 数据对象 操作类型 在自主存取控制中 用户对于不同的数据对象有不同的存取权限 不同的用户对同一对象也有不同的权限 而且用户还可将其拥有的存取权限转授给其他用户 SQL标准也对自主存取控制提供支持 通过GRANT语句和REVOKE语句来实现 01 04 2020 45 授权 即在数据库系统中 定义存取权限 GRANT语句用来授予用户权限 格式如下 GRANTONTO WITHGRANTOPTION 数据对象的创建者自动获得对于该数据对象的所有操作权限 例 表Student的创建者自动或的对该表的SELECT INSERT UPDATE和DELETE等权限 授权 GRANTSELECT INSERTONStudentTO王平WITHGRANTOPTION 允许被授权者将权限传递给其他用户 select insert delete update权限 表 属性列 视图等 update授权既可在关系表的所有属性列上进行 又可只在某几个属性列上进行 例 授予李平student表中sname列的update权限 grantupdate sname onstudentto李平 01 04 2020 46 收回受权 REVOKEINSERTONStudentFROM王平CASCADE 权限不仅可以授予也可收回 可通过REVOKE语句收回用户权限 格式如下 REVOKEONFROM 01 04 2020 47 自主存取控制机制的优点 能够通过授权机制有效地控制其他用户对敏感数据的存取自主存取控制机制的缺陷 无法控制用户授权给何人以及是否将 受权 权限授予别人数据的 无意泄露 01 04 2020 48 强制存取控制是指系统为保证很高程度的安全性 按照一定的标准所采取的强制存取检查方式 强制存取控制方法 MAC MAC适用于对数据有严格而固定密级分类的部门例 军事部门 政府部门等 在MAC中 DBMS所管理的全部实体被分为主体和客体两大类 01 04 2020 49 DBMS为主体和客体的每个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年商丘永城市中小学教师招聘笔试参考题库及答案解析
- 2025年牙齿嵌塞处理合同协议
- 2025年鹤岗市中小学教师招聘笔试参考试题及答案解析
- 多发性硬化症病情变化分析与康复护理指导
- 2025年秦安县教师招聘参考题库及答案解析
- 2025年咸丰县中小学教师招聘笔试参考题库及答案解析
- 系统性红斑狼疮常见症状及护理方法详解
- 2025年虚拟展会互动体验协议
- (重点)上海安全员C2近年考试真题题库-含答案
- 2025年青岛平度市中小学教师招聘笔试参考试题及答案解析
- 2025年1月辽宁省普通高中学业水平合格性考试数学试题+答案
- 卫生间改造施工组织方案
- 2025年医务工作者岗位招聘面试参考题库及参考答案
- 城市轨道交通票务管理 城市轨道交通票务系统概述 课件演示模板
- 2025年云南交投集团下属云岭建设公司生产人员社会招聘(26人)笔试考试参考试题及答案解析
- 浓密机培训课件
- 小学数学轴对称与平移专项测试卷
- 2025年及未来5年中国饮用水行业市场深度分析及行业发展趋势报告
- 2025贵州水投水务集团有限公司第三批次招聘笔试考试参考题库及答案解析
- 老年人常见皮肤病
- 牧业公司运营方案
评论
0/150
提交评论