




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023年2月6日1第六章数据库保护6.1
事务6.2数据库恢复技术6.3并发控制6.4数据库的完整性6.5数据库的安全性2023年2月6日2学习目标理解并掌握事务的相关概念了解数据库保护的四方面技术:数据库的恢复技术并发控制数据库的完整性数据库的安全性2023年2月6日36.1
事务6.1.1事务的概念
6.1.2事务的特性
6.1.3SQLServer2000事务应用举例
6.1.4事务的状态转换2023年2月6日46.1.1事务的概念事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务和程序是两个概念在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序一个应用程序通常包含多个事务事务是数据恢复和并发控制的基本单位2023年2月6日5事物的三种运行模式:1)自动提交事务2)显式事务3)隐性事务每条单独语句都是一个事务。BEGINTRANSACTION/*事务开始*/COMMIT/*提交事务*/ROLLBACK/*事务回滚*/例如银行转帐。在前一个事务完成时则新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式的表示完成。
2023年2月6日66.1.2事务的特性事务的ACID特性:原子性(Atomicity)原子性由恢复机制实现一致性(Consistency)由并发控制机制实现隔离性(Isolation)通过并发控制机制实现持续性(Durability)通过恢复机制实现一个事务的执行不能被其他事务干扰2023年2月6日76.1.3SQLServer2000事务应用举例教材例6-2,自学2023年2月6日86.1.4事务的状态转换活动状态部分提交全部提交失败异常终止事务状态转换图2023年2月6日96.2数据库恢复技术6.2.1数据库可能出现的故障6.2.2数据库的恢复原理6.2.3SQLServer2000种数据备份与恢复的实现数据库的恢复就是将数据库从错误的状态恢复到某一正确状态。2023年2月6日106.2.1数据库可能出现的故障1.事务内部故障2.系统故障3.介质故障可以通过事务本身发现的故障;b.非预期故障:运算溢出、并发事务发生死锁、违反完整性约束条件、……4.计算机病毒发生故障后,应强行回滚,使该事务好像根本没有启动一样,这种恢复操作称为事务撤销(Undo)。
指造成系统停止运转的任何事件,使得系统要重新启动;系统故障的影响:尚未完成事务可能已部分写入数据库。恢复子系统要做的工作:(1)撤销所有未提交事务;(2)重做所有已提交事务。指外存故障介质故障的影响:破坏数据库或部分数据库;影响部分正在执行的事务。恢复策略:数据转储。病毒的影响:破坏应用程序,进而破坏数据库;修改缓冲区;直接破坏数据库。恢复策略:数据转储。2023年2月6日11各类故障对数据库的影响:(1)数据库本身被破坏;(2)数据库没有被破坏,但数据可能不正确。恢复原理:冗余2023年2月6日126.2.2数据库的恢复原理恢复机制涉及的关键问题1.如何建立冗余数据,即数据库的重复存储;数据转储(backup)登录日志文件(logging)2.如何利用这些冗余数据实施数据库恢复。
2023年2月6日13一、数据转储
所谓转储,即DBA定期的将整个数据库复制到磁带或另一个磁盘上保存起来的过程。
转储十分耗费时间和资源,不能频繁进行。正常运行TaTbTf转储运行事务故障发生点故障恢复重装后备副本重新运行事务2023年2月6日141).静态转储在系统中无运行事务时进行转储转储开始时数据库处于一致性状态转储期间不允许对数据库的任何存取、修改活动优点:实现简单缺点:降低了数据库的可用性转储必须等用户事务结束新的事务必须等转储结束1、静态转储和动态转储2023年2月6日152)、动态转储转储操作与用户事务并发进行转储期间允许对数据库进行存取或修改优点不用等待正在运行的用户事务结束不会影响新事务的运行动态转储的缺点不能保证副本中的数据正确有效利用动态转储得到的副本进行故障恢复需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态2023年2月6日16海量转储:每次转储全部数据库增量转储:只转储上次转储后更新过的数据海量转储与增量转储比较从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效2.海量转储与增量转储2023年2月6日17转储方法分类
转储状态动态转储静态转储转储方式海量转储动态海量转储静态海量转储增量转储动态增量转储静态增量转储3.转储方法小结2023年2月6日18二、登陆日志文件
日志文件(log)是用来记录事务对数据库的更新操作的文件。一、日志文件的格式和内容二、日志文件的作用三、登记日志文件2023年2月6日191)、日志文件的格式以记录为单位的日志文件以数据块为单位的日志文件2)、日志文件内容日志文件中的一个日志记录(logrecord)各个事务的开始标记(BEGINTRANSACTION)各个事务的结束标记(COMMIT或ROLLBACK)各个事务的所有更新操作1、日志文件的格式和内容3)、基于记录的日志文件每条日志记录的内容事务标识操作类型(插入、删除或修改)操作对象(记录ID、BlockNO.)更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的新值(对删除操作而言,此项为空值)4)、基于数据块的日志文件事务标识被更新的数据块2023年2月6日21日志文件的作用:(1)事务故障恢复和系统故障恢复必须用日志文件;(2)动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效恢复数据;
(3)静态转储方式中,数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时的状态,然后利用日志文件,把已完成事务进行重做处理,对故障发生时尚未完成事务做撤销处理。2、日志文件的用途
2023年2月6日22为保证数据库是可恢复的,登记日志文件时必须遵循两条原则登记的次序严格按并行事务执行的时间次序必须先写日志文件,后写数据库3、登记日志文件
2023年2月6日236.2.3SQLServer2000种数据备份与恢复的实现1、数据库的备份备份策略:什么时间备份、备份到什么位置、备份者是谁、备份内容、备份频率、如何备份等。企业管理器:“备份”新建备份设备备份数据库向导:2、数据库的还原2023年2月6日246.3并发控制6.3.1并发操作带来的不一致问题6.3.2并发控制——封锁及解锁协议在数据库技术中,并发是指多个事务同时访问同一数据。
与事务的并发执行相对的是事务的串行执行,即每个时刻只有一个事务运行,其他的事务只有在这个事务执行完毕后才可运行。
2023年2月6日256.3.1并发操作带来的不一致问题
存在三种因并发操作带来的不一致问题:1、丢失修改(LostUpdate)2、不可重复读(Non-Repeatableread)
3、读“脏”数据(dirtyread)
2023年2月6日261、丢失修改例:甲、乙两个售票点的T1,T2两个事务T1T2丢失修改:两个事务T1和T2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。(1)读A=16(2)读A=16(3)A=A-1写回A=15(4)A=A-1写回A=15例:求A、B两个售票点的总票数,并验算T1T2(1)读A=50
读B=100
和=150(2)读B=100B=100-1写B=99不可重复读:T1读取数据后,T2执行更新操作,使T1无法再现前一次读取结果,有三种情况:(3)读A=50
读B=99
和=149(1)T2修改了T1读取的值;(2)T2删除了T1读取的部分记录;(3)T2插入了满足T1读取条件的部分记录。后两种不可重复读也称为幻影现象。2、不可重复读2023年2月6日28例:查询A售票点的票数T1T2(1)读A=50A=A-1
写A=49(2)读A=49读“脏”数据:T1读取数据后写回磁盘,T2读取同一数据后,T1事务被撤销。(3)回滚A恢复为503、读“脏”数据2023年2月6日296.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锁2023年2月6日31Y=Yes,相容的请求N=No,不相容的请求
T1T2XS-XNNYSNYY-YYY锁的相容矩阵2023年2月6日32在运用X锁和S锁对数据对象加锁时,需要约定一些规则:封锁协议(LockingProtocol)何时申请X锁或S锁持锁时间、何时释放不同的封锁协议,在不同的程度上为并发操作的正确调度提供一定的保证常用的封锁协议:三级封锁协议封锁协议(简介)2023年2月6日336.4数据库的完整性6.4.1数据库的完整性介绍6.4.2SQL中完整性约束6.4.3SQLServer2000中完整性约束的实现6.4.1数据库的完整性介绍数据库的完整性:即数据的正确性和相容性数据的安全性:保护数据库防止恶意的破坏和非法的存取。数据的完整性:防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。数据库完整性约束条件:即加在数据库数据之上的语义约束条件。完整性检查:DBMS中检查数据是否满足完整性条件的机制。2023年2月6日356.4.2SQL中完整性约束三种完整性约束:1实体完整性约束:UNIQUE(定义候选码)、PRIMARYKEY(定义主键)2参照完整性约束:FOREIGNKEY(<列名序列1>)REFERENCES<参照表>[(<列名序列2>)][ONDELETE<参照动作>][ONUPDATE<参照动作>]3用户定义的完整性约束CREATETABLES(SNOCHAR(6),SNAMECHAR(10),SAGEINT,
PRIMARYKEY(SNO))2023年2月6日366.4.3SQLServer2000中完整性约束的实现在SQLServer2000支持五类约束,这五类约束分别是空值约束、CHECK约束、唯一性约束、主键约束和外键约束。2023年2月6日376.5数据库的安全性6.5.1计算机系统的安全性问题6.5.2权限6.5.3数据库的安全性控制6.5.4SQLServer2000中系统安全性实现2023年2月6日386.5.1计算机系统的安全性问题要保证数据库系统的安全性首先要保证计算机系统的安全性。计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
2023年2月6日39
数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。数据库的一大特点:数据可以共享安全性问题!数据库共享不能是无条件的。例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等2023年2月6日406.5.2权限1、权限是指用户(或应用程序)使用数据库的方式。
DBS中,对于数据操作的权限有以下几种:1)
读(Read)权限;允许用户读数据,但不得修改数据。2)插入(Insert)权限;允许用户插入新的数据,但不得修改数据。3)修改(Update)权限:允许用户修改数据,但不得删除数据。4)
删除(Delete)权限;允许用户删除数据。2023年2月6日41系统还提供给用户(或应用程序)修改数据库模式的操作权限,主要有下列几种:1)
索引(Index)权限:允许用户创建和删除索引。2)
资源(Resource)权限:允许用户创建新的关系。3)
修改(Alteration)权限:允许用户在关系结构中加入或删除属性。4)撤销(Drop)权限:允许用户撤销关系。
2、权限的授予与回收:GRANT和REVOKE语句
2023年2月6日426.5.3数据库的安全性控制数据库的安全性控制措施主要有:用户标识与鉴别、存取控制、视图机制和数据加密。
应用DBMSOS
DB
低
高安全性控制层次
方法:
用户标识和鉴定
存取控制审计视图
操作系统安全保护
密码存储安全措施一般是逐级设置的2023年2月6日431、用户标识与鉴别
系统提供的最外层安全保护措施:用户标识、口令或每个用户预先约定好一个计算过程或者函数2、存取控制存取控制机制的组成:定义存取权限、检查存取权限用户权限定义和合法权检查机制一起组成了DBMS的安全子系统常用存取控制方法自主存取控制(DiscretionaryAccessControl,简称DAC)强制存取控制(MandatoryAccessControl,简称MAC)2023年2月6日44自主存取控制方法(DAC)存取权限有两个要素:数据对象、操作类型在自主存取控制中,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。
SQL标准也对自主存取控制提供支持:通过GRANT语句和REVOKE语句来实现2023年2月6日45授权:即在数据库系统中,定义存取权限。GRANT语句用来授予用户权限,格式如下:GRANT<权限列表>ON<数据对象>TO<用户列表>[WITHGRANTOPTION]
数据对象的创建者自动获得对于该数据对象的所有操作权限。
例:
表Student的创建者自动或的对该表的SELECT、INSERT、UPDATE和DELETE等权限。“授权”
GRANTSELECT,INSERTONStudentTO王平
WITHGRANTOPTION
表示用户王平同时获得了“受权”的权限允许被授权者将权限传递给其他用户
select、insert、delete、update权限
表,属性列,视图等
update授权既可在关系表的所有属性列上进行,又可只在某几个属性列上进行。
例:授予李平student表中sname列的update权限:grantupdate(sname)onstudentto李平
2023年2月6日46“收回受权”
REVOKEINSERTONStudentFROM王平CASCADE权限不仅可以授予也可收回,可通过REVOKE语句收回用户权限,格式如下:REVOKE<权限列表>ON<数据对象>FROM<用户列表>表示如果用户王平把Student的INSRT权限又转授给了其他用户,那么这些权限也从其它用户处收回。2023年2月6日47自主存取控制机制的优点:能够通过授权机制有效地控制其他用户对敏感数据的存取自主存取控制机制的缺陷:无法控制用户授权给何人以及是否将“受权”权限授予别人数据的“无意泄露”2023年2月6日48强制存取控制是指系统为保证很高程度的安全性,按照一定的标准所采取的强制存取检查方式。
强制存取控制方法(MAC)MAC适用于对数据有严格而固定密级分类的部门例:军事部门、政府部门等在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。系统中的活动实体
DBMS所管理的实际用户代表用户的各进程系统中的被动实体,是受主体操纵的文件基表索引视图2023年2月6日49DBMS为主体和客体的每个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《公鸡 母鸡》(教案)-2024-2025学年人音版(五线谱)音乐二年级上册
- DB41∕T 1836-2019 矿山地质环境恢复治理工程施工质量验收规范
- 中职三 长征胜利万岁教学设计
- 任务认识工程地质测绘的基本方法课件
- (6.2.1)《声声慢》解析(一)-朱松苗
- 七年级信息技术上册 第一课走进网络教室教学设计 人教版
- 汽车漆膜识别燕寒课件
- 汽车售后服务接待汽车工程57课件
- Module 8 Unit 2 There are two footballs under my desk (教学设计)-2023-2024学年外研版(一起)英语一年级下册
- 期中模拟题(一)-2022-2023学年高一化学下学期期中期末考点大串讲(沪科版2020必修第二册)(原卷版)
- GB/T 27060-2025合格评定良好实践指南
- 企业研究方法知到智慧树章节测试课后答案2024年秋华东理工大学
- 公司安全事故隐患内部举报、报告奖励制度
- 小区网球可行性方案
- 社区卫生服务中心(站)财务、药品、固定资产、档案、信息管理制度
- 田野考古工作规程附录一
- 10x2017对称式三辊卷板机设计说明书
- 气柜施工方案(修改)
- 美国各州的缩写及主要城市
- 毕业设计(论文)-电话听筒塑料模具设计说明书
- 初始过程能力分析报告
评论
0/150
提交评论