第七章事务处理与数据保护ppt课件.ppt_第1页
第七章事务处理与数据保护ppt课件.ppt_第2页
第七章事务处理与数据保护ppt课件.ppt_第3页
第七章事务处理与数据保护ppt课件.ppt_第4页
第七章事务处理与数据保护ppt课件.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章事务处理与数据保护 第一节数据授权 一什么叫数据授权对用户使用数据库的操作权限进行规定称为数据授权 只有获得权限的用户才能对数据库进行指定的操作 授权者数据库管理员 数据库表的建立者 已经获得授权许可的用户 三操作对象与权限 四授权语句GRANT权限1 权限nON对象类型对象名TO用户1 withGRANTOPTION 作用 1 把指定对象上的一组权限授予一组用户 2 WITHGRANTOPTION的作用进行授权传递 举例1 将对XS表的所有权限授予张三 并进行授权传递 GRANTALLONTABLEXSTO 张三 WITHGRANTOPTION2 将对XK表CJ属性进行修改的权限授予李四 GRANTUPDATEONTABLEXK CJ TO 李四 权限收回收回对用户的授权操作及授权传递 REVOKE权限1 权限nON对象类型对象名FROM用户 CASCADE RESTRICT 作用 CASCADE表示收回操作权限 同时收回他所做的授权传递 RESTRICT表示当用户已经获得授权传递后 禁止权限收回 例 REVOKEALLONXSFROM 张三 RESTRICTREVOKEALLONXSFROM 张三 CASCADE第一条不能执行 第二条能执行 第二节数据完整性 一码的完整性1 当表确定主码后 主码不能为空 2 定义主码的方法 在建表时用KEY或PRIMARYKEY 定义 域的完整性1 限制属性的取值范围2 方法 CHECK 条件 例 在选课表中限定CJ的取值范围在0到100之间 CREATTABLEXK XHC 10 KHC 3 CJINTCHECKCJBETWEEN0AND100 三参照完整性1 外码若属性A在R中被指定为主码 而A又出现在S中 则A称为S的外码 例如XH在XK表中是外码 2外码说明语句foreignkey外码references表名 属性 说明 1 表名是指外码作为主码的表 2 外码名可以与作为主码的名相同或不相同 3 该语句应在建表语句中说明 例 在XK表中说明XH是外码 CREATETABLEXK XHC 8 KHC 3 CJINT foreignkeyxhreferencesxs xh 3参照完整性规则 1 外码必须在主表中出现 2 外码可以设置为空 4 实现完整性的方法 1 级联规则 CASCADE 主表作删除时 外码所在表的元组也一并删除 在更新时 外码也作相应更新 2 置空规则 setnull 主表作删除时 外码置为空 语句 ON DELETE UPDATE CASCADE SETNULL 例 为XK表设置参照完整性规则 CREATETABLEXK XHC 8 KHC 3 CJINT foreignkeyxhreferencesxs xh ondeletecascadeonupdatecascade 请问 KH如何设置参照完整性 5 注意 在VFP中 通过对数据库表建立连接 实现参照完整性 方法 在主表中对主码建主索引 次表中建普通索引 通过鼠标操作 然后设置参照完整性 第三节断言与触发器 一断言1 定义设置数据库应满足的条件 2 格式 CREATEASSERTION断言名CHECK条件说明 当条件为假时 DBMS终止操作 并提示用户 例 限制每门课的选课人数不能超过100人 CREATEASSERTIONRSXZCHECK100 ALL SELECTCOUNT XH FROMXKGROUPBYKH请问 如何写一断言限制学生选课门数超过8门 CREATEASSERTIONXKMSCHECK 8 ALL SELECTCOUNT FROMXKGROUPBYXH 触发器1 事件 引起数据库的状态发生改变的操作 2 定义 当设定的事件发生时 由DBMS自动启动的维护数据库一致性的程序 3 触发事件 能够启动触发器的事件 删除 DELETE 插入 INSERT 更新 UPDATEOF属性 触发时间 BEFOR 在操作前触发AFTER 在操作后触发INSTEADOF 取代操作 3触发条件 执行触发器操作的条件 4触发粒度 引起触发器工作的数据单位 行粒度 FOREACHROW 表粒度 FOREACHSTATMENT 5操作 一组SQL语句 或其他语句 三语句与执行1格式 CREATETRIGGER触发器名 before after insteadof属性 insert delete updateof属性名 ON表名referencing oldas元组名 newas元组名 oldtableas表名 newtableas表名 foreachrow forstatement when条件 语句序列 2说明 删除事件只有旧表或旧行 插入事件只有新表或新行 更新事件既有旧表 旧行 也有新表 新行 触发器的启动和执行当触发事件发生时 触发器被激活 如果触发条件成立 则执行触发器的操作 然后返回应用程序继续执行 在VFP中 触发器的定义为CREATETRIGGERON表名FOR DELETE INSERT UPDATE AS条件作用 当条件为真时 执行触发事件 当条件为假时 执行事件失败 利用触发器禁止对学生表的插入 CREATETRIGGERONA DBF XSFORINSERTAS F 问 若F改为T 效果如何 四举例 例1设TZS表存放应特别关照的学生名单 由 XH LY 组成 根据学校规定 这些学生每门功课至少及格 请设计触发器 分析 引起不及格的操作有 插入 更新 当这些学生的成绩出现不及格时 触发器应自动作出纠正 CREATTRIGGERTZSZGAFTERUPDATEONXK CJ AFTERINSERTONXKREFERENCINGNEWASNEW TUPLEFOREACHROWWHENNEW TUPLE XHIN SELECTXHFROMTZS ANDNEW TUPLE CJ 60 UPDATEXKSETCJ 60WHERENEW TUPLE KH XK KHANDNEW TUPLE XH XK XH问题 1为什么不选择BEFORE时间触发 2若选择INSTEADOF 触发器还正确吗 例2请设计触发器 限制所有信息学院的学生选课门数不得超过8门 分析 引起选课门数增加的原因是插入 CREATETRIGGERXZXKSBEFOREINSERTONXKREFERENCINGNEWASNEW TUPLEFOREACHROW WHEN SELECTCOUNT FROMXS XKWHERESZYX 信息 ANDXS XH XK XHANDXS XH NEW TUPLE XH 8ROLLBACK问题 1若时间选择AFTER 怎样设计触发器 2若约束条件为至少为6门 又怎样设计 CREATETRIGGERXZXKSBEFOREDELETEONXKREFERENCINGOLDASOLD TUPLEFOREACHROWWHEN SELECTCOUNT FROMXS XKWHERESZYX 信息 ANDXS XH XK XHANDXS XH OLD TUPLE XH 6ROLLBACK 五触发器的删除 格式 DROPTRIGGER触发器名VFP用DELETETRIGGERON表名FOR DELETE INSERT UPDATE 作用 取消触发器的检查 从DBMS的实时检测程序中那掉该触发器模块 第四节数据恢复 一事务的基本概念1 定义事务是由一个或几个数据库操作组成的操作序列 是数据库系统的基本执行单位 2定义事务的方法标志法 BEGINTRANSACTION结束COMMIT或ROLLABCK缺省法每次数据库操作自动设定为一个事务 3终止事务的两种方法 COMMIT 提交 当事务完成该事务规定的功能 使用COMMIT结束事务 ROLLBACK 回滚或撤消 当事务无法完成该事务的功能 而被迫取消该事务时 用ROLLBACK 分析一个例子 例1 这是一个银行转帐的事务EXECSQLbegintrasactionscanf d EXECSQLUPDATEZBSETYE YE ZWHEREZH Y EXECSQLENDTRASACTION 特征 当这笔转帐业务完成 事务正常结束 问 什么情况下 该事务不能正常结束 事务的特征1 原子性 A atomicity 事务要么被正确执行 要么就等于不执行 2 一致性C consistency 如果事务单独执行 对数据库的操作就一定正确 3 孤立性I isolation 并行性4 持久性D durability 事务一旦被提交 其结果就要被长期保存 分析例1的ACID特征 EXECSQLbegintrasactionscanf d EXECSQLUPDATEZBSETYE YE ZWHEREZH Y EXECSQLENDTRASACTION 原子性是指什么 一致性是指什么 孤立性是指什么 持久性是指什么 数据库的故障分类事务故障系统故障存储介质故障四数据库恢复1 定期备份 设置备份点 数据恢复第一步 装入备份数据第二步 执行未经备份过的但已提交的事务 运行 备份段 运行 恢复 转存 重新运行 2 日志文件法 1 什么叫日志文件 记录事务对数据库操作过程的流水文件 2 文件内容 事务开始与结束标记 操作名 记录修改前数据值和修改后的数据值 操作日期 时间 事务名 3 作用 用来审计 追踪数据库的操作历史 当事务撤消时 进行数据恢复 在数据库进行恢复时 重做已经提交过的事务 日志文件的恢复操作 REDO 正向读日志文件 用新值代替旧值 恢复已提交的事务 UNDO 反向读日志文件 用旧值代替新值 使数据库恢复到事务执行前的状态 这是一日志文件 begin t1 x1 1 x2 3 begin t2 comite t1 x1 3 x2 4 begin t3 y2 4 rollback t3 y2 5已知 x y的初值为1 2 问 1 现在x y的值为多少 2 进行恢复后 x y的值为多少 第五节事务的并发控制 一 什么叫并行事务定义 两个或以上含有相关数据 且在同一台机器上同时被执行的事务 称为并行事务 说明 相关数据是指引起竞争的数据 同一台机器是条件 二分析并行事务带来的不一致性 更新丢失例1考虑如下的两个事务 T1 R A A A 10 W A T2 R A A A 10 W A 由于在同一台机器上执行 CPU产生了如下的执行顺序 R1 A R2 A F1 W1 F2 W2 若把上述事务理解为存10元钱 结果如何 读脏数据例2考虑如下两个事务T1 R A A A 10 W A T2 R A 执行如下调度 R1 A F1 W1 A R2 A ROLLBACK T1 注意 T2读出的数据与数据库的数据一致 三并行事务的执行模型调度 用来表示并行事务在处理机上的执行顺序 1串行调度 并行事务依次执行 没有交叉执行发生 n个事务T1 T2 Tn的任何一种排列 都构成一种串行调度 串行调度的意义 1 n个事务可产生n 个串行调度 2 任何一种串行调度都是正确的 3 不同的串行调度可产生不同的结果 4 这里的事务是指已经获得了运行的权利 例3求T1 T2的串行结果集 也称为基本空间 设A的初值为5 T1 R A A A 10 W A T2 R A A A 2 W A 解T1 T2得A 30T2 T1得A 20问 若设T3 R A A A 5 W A 其解空间是什么 并行调度 若一组事务按指令粒度 交叉执行的调度 例4T1 T2的一种并行调度为 R1 A R2 A F1 F2 W1 A W2 A 请问 结果如何 并行事务的控制模型1并行控制的基本原则任何事务在对数据库进行操作前 必须获得对数据的上锁 2排它锁 能够防止其他事务对数据库进行任何操作的锁 记为X锁 上锁语句LOCKX 属性名 上锁规则 当事务对数据库进行更新操作时 应上X锁 其过程如下 若数据没有上锁 则对数据上锁 否则该事务进入等待队列 如图队列 A T1 T2 上锁标记 共享锁 能够防止其他事务对数据库进行更新操作的锁 记为S锁 语句为LOCKS 属性 上锁规则 若数据已上X锁则进入等待队列 否则加S锁 进入加锁队列 等待上锁 A T1 T2 T3 T4 4上锁和开锁方式 1 自动型 根据SQL语句的类型自动上锁和开锁 如SELECT UPDATE 2 手动型 在事务中运用上锁语句和开锁语句进行开锁和上锁 3 当遇到COMMIT和ROLLBACK时 自动取消该事务的所有上锁 5上锁相容性矩阵已上锁XS 欲XNNY上SNYY锁 YYY 死锁及其解除1 在并行事务中 如果两个或两个以上事务互相等待对方开锁 而导致相关的并行事务无法执行的现象 称为死锁 2例 如下的事务会发生死锁T1 LOCKX A R A F A W A LOCKX B T2 LOCKX B R B F B W B LOCKX A 3解决办法 1 一次性对所有资源上锁 2 规定对资源上锁的次序 3 一旦发生死锁 强性撤消其中一个事务 4 设置一个最长等待时间 超过该时间强行撤消该事务 六二段锁协议 1协议内容 把并行控制分成两个阶段上锁阶段 对事务中要修改的数据集中在本阶段进行上锁 开锁阶段 对数据修改完后 打开所有的锁 2作用 避免了更新丢失 但可能出现读脏数据 定理 遵守二段锁协议的并行事务的调度都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论