- 1、本文档共97页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch07 数据库保护
第七章 数据库保护 主要内容: 数据库的恢复 数据库的并发控制 数据库的完整性 数据库的安全性 7.1.1事务的概念 事务定义 事务是由一系列操作序列构成的程序执行单元。这些操作要么都做,要么都不做,是一个不可分割的工作单位。 例如银行转帐。 SQL中事务的定义 事务以Begin transaction开始,以Commit work或 Rollback work结束。 Commit work表示提交,事务正常结束。 Rollback work表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态。 7.1.2 事务的性质 事务的性质——ACID 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 事务的性质——原子性 事务中的操作,要么全做成,要么都不做 事务是不可拆分的 事务必须以 Commit/Rollback 结束 由DBMS的事务管理子系统完成。 事务的性质——一致性 独立运行的事务,必须保证保持数据库的一致状态 即数据不会因为事务的执行而遭到破坏。 数据库的一致性状态由编写事务程序的程序员来负责,也可以由系统测试完整性约束自动完成。 由DBMS的完整性子系统完成。 事务的性质——隔离性 系统必须保证事务不受其它并发执行事务的影响。 多个并发事务之间不能相互干扰 并发不影响事务的执行 隔离性通过并发控制子系统实现。 事务的性质——持久性 一旦事务成功完成(Commit),它对数据库的更新应该是持久的 即使在写入磁盘之前,系统发生故障 在下次启动之后,也应保障数据更新的有效 持久性通过恢复管理子系统实现。 7.1.2 事务的性质 对数据库的访问是建立在读和写两个操作的基础上。 read(X):从数据库传送数据项X到事务的工作区中。 write(X):从事务的工作区中将数据项X写回数据库。 7.1.2 事务的性质 举例: 银行转帐:事务Ti从帐户A过户100¥到帐户B 。 T: read(A); A := A – 100; write(A); read(B); B := B + 100; write(B); read(X):从数据库传送数据项X到事务的工作区中。 write(X):从事务的工作区中将数据项X写回数据库。 练习: 1、DMBS的并发控制子系统,保证了事务( )的实现。 2、事务的独立执行不会破坏DB的完整性,称为( ) 3、DBMS中实现事务持久性的子系统是: ( ) 7.1.3 故障类型和恢复方法 在运行数据库系统时,可能会出现各种各样的故障。发生故障时,可能丢失数据库中的数据。DBMS的恢复管理子系统采取一系列措施,保证在任何情况下保持事务的原子性和持久性,确保数据不被损坏。 1、数据库系统中可能发生的故障 7.1.3 故障类型和恢复方法 (1)事务故障 非预期的事务故障 事务由于某些内部条件无法继续正常执行 如:非法输入、找不到数据、溢出等 可预期的事务故障 应用程序可以发现的事务故障 该事务可在以后的某个时间重新执行 此时数据库中的数据处于非一致状态 7.1.3 故障类型和恢复方法 (2)系统故障 由于特殊的原因导致事务无法正常执行,而系统必须重新启动 如停电、CPU故障等 一般只影响正在执行的事务,而不会破坏数据库本身以及DBMS环境 系统重新启动时,数据库处于一种非一致性状态 7.1.3 故障类型和恢复方法 (3)介质故障 外存发生故障,导致存储其中的数据、或数据库本身、或DBMS软件处于不正常状态 这类故障的破坏性较大 计算机病毒 破坏DBMS软件环境 破坏OS环境 导致数据库系统无法正常工作 7.1.4 恢复的基本原则和实现方法 (1)定期对整个数据库进行复制和转储 冗余技术是数据库恢复的保障 建立数据的冗余 与数据库分别存储 利用冗余数据,重建数据,使其达到一致的状态 建立整个数据库的冗余 将整个数据库进行备份(冗余的数据库) 需要时将备份数据库恢复(重载)至系统中 解决数据库本身被破坏的场合 只能恢复到数据库被备份时的状态 (1)定期对整个数据库进行复制和转储 转储可以分为: 静态转储:在存储期间不允许对数据库进行存取、修改。 动态转储:在存储期间允许对数据库进行存取、修改。 转储还可以分为: 海量存储:每次存储全部数据库 增量存储:每次只存储上次转储后更新过的数据。 7.1.4 恢复的基本原则和实现方法 (2)、建立日志文件 以日志文件的形式,记录事务对数据库的更新操作 日志文件记录了数据库更新的所有日志记录的序列 常见的是以记录为单位的日志文件 利用日志记录,可对数据库做相应的恢复 日志内
文档评论(0)