欢迎来到天天文库
浏览记录
ID:64905278
大小:417.00 KB
页数:50页
时间:2024-08-29
《事务管理与数据库安全-9》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
三级数据库技术第9章事务管理与数据库安全 本部分占总分的8%主要内容:事务的四大特性事务并发控制的缺陷和影响数据一致性的三大表现数据库锁协议数据库访问权限2 重中之重事务特性并发控制问题的表现数据库锁协议数据库访问权限每年必考3 9.1事务的概念和特性 考点1事务的概念资金转账例子转帐操作由扣款操作和增加款项操作组成两个操作要么全部完成,要么都不发生转帐操作可以看成扣款和增加款项的集合在数据库中这些操作的集合是一个独立单元。事务是构成单一逻辑工作单位的操作集合事务完全执行,称为已提交事务,中途发生错误,需要对发生的改变进行撤销,称为事务回滚5 考点2事务特性原子性(atomicity):事务中的操作要么全部执行,要么都不执行(事务管理部件责任)一致性(consistency):并发执行的事务,其执行结果与按某一顺序执行的结果一致(程序员责任)隔离性(isolation):多个并发事务的执行互不干扰(并发控制部件责任)持久性(Durability):提交的事务,对数据库中数据的改变不会丢失,即使发生故障(恢复部件责任)简称ACID准则6 考题1、事务特性可表示为ACID特性,其中字母I表示的是事务的2008.09A、原子性B、隔离性C、一致性D、持久性c2、确保事务的原子性是由数据库管理系统中的哪一个部件负责的?A、恢复管理B、并发控制C、完整性约束D、存储管理B(事务管理的一部分)2008.042005.97 3、事务的所有操作在数据库中要么全部正确反映出来,要么全部不反映,这是事务的哪个特性?2007.09A、持久性B、原子性C、隔离性D、一致性B4、被中止的事务对数据库所做的改变必须撤销,这称做事务的【1】2008.04回滚8 5、数据库管理系统中,保证事务的隔离性是由【1】部件完成2007.09并发控制9 9.2故障恢复 考点1故障类型事务故障逻辑错误:事务内非法的内部条件,使事务无法执行系统错误:由于系统进入不良状态(死锁),使事务无法继续执行事务故障由于没有全部执行,使数据库可能不一致,恢复子系统需要回滚事务(undo)系统故障硬件故障、数据库软件本身、操作系统BUG引起,内存内容丢失,外存内容完好磁盘故障磁盘损坏11 1、下列关于数据库系统的故障叙述中,哪个是不正确的?A、事务故障可能导致数据库处于不一致状态B、事务故障可能由两种错误产生:逻辑错误和系统错误C、系统发生故障时,一般主存储器内容完好,而外存储器内容丢失D、磁盘故障一般指的是磁头损坏或磁盘内容丢失C2008.042、在事务处理过程中,如果由于某些内部条件而使事务无法继续正常执行,则表示出现了A、由逻辑错误引起的事务故障B、由系统错误引起的事务故障C、系统故障D、磁盘故障A2008.0912 考点2基于日志的恢复保证数据库的一致性和事务的原子性日志记录了数据库中的所有更新操作,记录了数据库的写操作和事务处理的重要事件事务开始日志记录、更新日志记录、事务提交日志记录、事务的中止日志记录日志文件能够很好地支持事务故障和系统故障的恢复事务中的某个操作发生后,是先写日志文件还是先更新数据库遵循先写日志原则13 为什么先写日志,后写数据库如果先写数据库,故障发生时,还没有写日志文件,日志文件中没有记录数据库更新前后的值,那么就没法进行UNDO操作(回滚)如果先写日志文件,即使故障发生时,没有写数据库,由于更新前后的值保存在日志文件中,所以既可以进行UNDO,又可以进行REDO操作14 考题1、为了保证对故障恢复的支持,登记日志记录时必须遵循的原则是【1】原则先写日志2008.042、在修改数据库时,如果先对外存的数据库进行修改,而没对外存的日志文件进行修改,若此时系统出现故障,那么系统恢复时A、不可执行UNDO,也不可执行REDOB、不可以执行UNDO,但可以执行REDOC、可以执行UNDO,也可以执行REDOD、可以执行UNDO,但不可以执行REDOB2007.0915 3、下列哪一项不是日志文件中应该记录的内容?A)事务开始B)事务提交C)事务对数据的修改D)事务对数据的查询D2007.044、数据库恢复通常基于数据备份和【1】。日志文件2006.092005.0916 5、下列哪个与数据库日志无关?()A、保障事务原子性B、保障数据库一致性C、故障恢复D、死锁检测D死锁检测工作在并发控制中处理2005.046、日志文件是用于记录()2006.04A、程序运行过程B、对数据库所有的更新操作C、程序执行的结束D、用户对数据库的访问信息B17 9.3并发控制(重点) 考点1事务的并发执行可能出现的3个主要问题19 并发操作带来的数据不一致性丢失修改(lostupdate)不可重复读(non-repeatableread)读“脏”数据(dirtyread)数据库的并发操作通常会带来3个问题:20 1.丢失修改事务1与事务2从数据库中读出同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。21 读A=20A←A-1写回A=19①读A=20②③A←A-2写回A=18④事务T2事务T1(a)丢失修改图8.1三种数据不一致性22 2.不可重复读事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。23 图8.1三种数据不一致性(续)读B=100B←B*2写回B=200①读A=50读B=100求和=150②③读A=50读B=200求和=250(验算不对)T2T1(b)不可重复读24 不可重复读的3种情况1.事务1读取某些数据后,事务2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。2.事务1按照一定的条件,从数据库中读取了某些数据记录后,事务2删除了其中部分记录,当事务1再次读取数据时,发现某些记录神密地消失了。25 不可重复读的3种情况3.事务1按照一定的条件,从数据库中读取了某些数据记录后,事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象26 3.读“脏”数据事务1修改某一数据,并将其写回磁盘上的数据库中。这样,事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。事务2读取同一数据(被事务1修改后的数据)后,事务1由于某种原因被撤消,这时事务1已修改过的数据恢复原值27 图8.1三种数据不一致性(续)读C=200①读C=100C←C*2写回C=200②③ROLLBACKC恢复为100T2T1(c)读“脏”数据28 1、对未提交更新的依赖(“脏”数据的读出)是事务的哪个特性被破坏?A、原子性B、一致性C、隔离性D、持久性2008.04B2、设有两个事务T1,T2,对数据A的并发操作如下图所示,下列说法正确的是T1T21)读A2)读AA=A+10写回COMMIT3)读ACOMMITA、该操作不存在问题B、丢失更新C、不能重复读D、读“脏”数据C2007.0929 考点2并发事务的调度什么样的并发操作调度是正确的可串行化调度当多个事务在某个调度下的执行结果与这些事务在某个串行调度下的执行结果相同,该调度是可串行化调度简单说,一个并行调度与一个串行调度等价,就说这个并行调度为可串行化调度可串行化是多个事务并发执行正确性准则。可串行化调度保障数据库的一致性。30 级联回滚某事务故障导致一系列事务回滚现象无级联调度当某调度可以避免级联回滚的发生,这样的调度为无级联调度可串行调度且无级联调度是我们追求的目标31 如何保证并发操作的调度是正确的如何保证调度为可串行调度基于锁的并发控制通过锁的方法限制多个事务对同一数据的访问两种最基本的数据加锁方法1、共享琐(S)事务获得某数据项Q的共享琐,事务可读Q但不能写Q,其他事务仍然可以获得Q的共享琐2、排他琐(X)事务获得Q的排他琐,事务可读和写Q,其他事务不能再对Q加排他锁32 封锁的2种类型排它锁—写锁,X锁若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。共享锁—读锁,S锁33 封锁的相容矩阵Y=Yes,相容的请求N=No,不相容的请求T2T1XS-XNNYSNYY-YYY34 两段封锁协议保证可串行化,该协议把每个事务分解为加锁和解锁阶段第一个阶段增长阶段(加锁),事务可以获得锁,但不能释放锁第二个阶段(缩减阶段),事务只能释放锁,不能获得锁35 两段锁协议(续)T1SlockB读B=2Y=BXlockAA=Y+1写回A=3UnlockBUnlockAT2SlockA等待等待等待等待等待SlockA读A=3Y=AXlockBB=Y+1写回B=4UnlockBUnlockAT1SlockB读B=2Y=BUnlockBXlockAA=Y+1写回A=3UnlockAT2SlockA等待等待等待等待SlockA读A=3X=AUnlockAXlockBB=X+1写回B=4UnlockB(a)遵守两段锁协议(b)不遵守两段锁协议T1SlockB读B=2Y=BUnlockBXlockAA=Y+1写回A=3UnlockAT2SlockA读A=2X=AUnlockAXlockB等待XlockBB=X+1写回B=3UnlockB(c)不遵守两段锁协议-错误36 两阶段封锁协议的变体:严格两阶段封锁协议:要求排他锁在事务提交后才能释放,防止其他事务读数据强两阶段封锁协议:全部锁必须在事务提交后才能释放严格两阶段封锁协议和强两阶段封锁协议都能避免级联回滚,但不能保证死锁的发生37 两段锁协议(续)图遵守两段锁协议的事务发生死锁T1SlockB读B=2XlockA等待等待T2SlockA读A=2XlockB等待38 考题1、下列关于事务T1和T2的两种调度的叙述中,哪个是正确的?A)调度一和调度二都是并发调度,它们等价B)调度一和调度二都是串行调度,它们不等价C)调度一是串行调度,调度二是并发调度,它们等价D)调度一是串行调度,调度二是并发调度,它们不等价C2009.0339 2、如果有两个事务,同时对数据库中同一数据进行操作,不可能引起冲突的操作是A)其中有一个是DELETE B)一个是SELECT,另一个是UPDATE C)两个都是SELECT D)两个都是UPDATE读操作不会引起冲突C2009.033、下列叙述中,哪一条是不正确的?A、排他锁又称X锁或写锁B、共享锁与任何锁都相容C、强两阶段封锁协议表示事务提交之前不得释放任何锁D、封锁自身的主要问题是死锁B2008.0440 4、下列叙述中,哪条是不正确的?A、封锁是保证数据一致性的常用方法B、封锁协议限制了可能的调度数目C、封锁协议自身会产生死锁问题D、强两阶段封锁协议就是严格两阶段封锁协议D2008.095、严格两阶段协议要求【1】更新的封锁必须保持到事务的终点释放2007.0941 sh6、若事务T对数据R已加排他锁(X锁),则其他事务对RA)可以加共享锁(S锁),不能加X锁B)不能加S锁,可以加X锁C)可以加S锁,也可以加X锁D)不能加任何锁D2007.0442 9.4数据库安全性保护数据库不被被恶意访问 考点1安全性措施的层次恶意访问的形式未经授权读取数据(窃取信息)未经授权修改数据未经授权消除数据安全措施层次物理层、网络层、操作系统层、数据库系统、人员层44 考点2数据库的访问权限数据库的访问权限ReadInsertUpdateDelete数据库模式的修改权限IndexResource建新关系Alterationdrop45 考题1、下列对DELETE权限叙述中,正确的是A、允许删除数据B、允许删除关系C、允许对数据库模式进行删除D、和DROP权限等价A删除元组2、SQL语言中,Resouce权限允许创建新的【1】关系46 考点3SQL中的安全性说明SQL定义语言(DDL)中select,insert,update,delete对应数据库访问权限Read、Insert、Update、DeleteSQL中的权限授予和回收命令权限授予命令grant权限回收命令revoke47 考题1、SQL语言的REVOKE语句是实现下列哪种数据控制功能()A、可靠性B、并发性控制C、安全性控制D、完整性控制CREVOKE回收权限,属于安全控制2、SQL语言规定,对数据库中的表能够执行授予权限和回收权限命令的用户()A、只能是表的使用者B、只能是表的建立者C、只能是DBAD、是DBA和表的建立者D48 考点4可信计算机系统评估标准可信计算机系统评估标准由低到高分为7级D、C1、C2、B1、B2、B3、A1D最低级别,没有安全保证C2安全产品最低界别B1真正具有安全意义的产品49 1、实际安全产品的最低级别是()2006.4A、DB、C2C、B1D、B2BC2为产品最低安全级别B1为真正意义的安全产品产品名称中有“安全”,“可信”字样2、多用户数据库系统的目标之一是使每个用户好像使用一个单用户数据库一样,为此数据库系统必须进行A、安全控制B、完整性控制C、并发控制D、可靠性控制C2007.0950
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处