数据库复习题全(6页).doc
《数据库复习题全(6页).doc》由会员分享,可在线阅读,更多相关《数据库复习题全(6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-数据库复习题全-第 6 页数据库与管理信息系统 复习题一、简答题1. 试述数据库二级映像和数据独立性之间的关系DBMS在三级模式之间提供二级映像“外模式|模式映像”和“模式|内模式映像”,保证了数据库的数据具有较高的逻辑独立性和物理独立性。数据库的二级映像保证了数据库外模式的稳定性,从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。数据库的三级模式与二级映像实现了数据与程序之间的独立性,使数据的定义和描述可以从应用程序中分离出来。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大降低了应用程序的维护和修改成本。2.
2、 请举例说明在同一个关系内部也可能存在参照的完整性约束。参照完整性约束是不同关系之间或一个关系的不同元组之间的制约。不仅在关系间存在引用,同一关系内部属性也可能存在引用关系。也就是说,参照完整性规则中,参照关系和目标关系(被参照关系)可以是同一个关系。比如对于关系“学生(学号,姓名,性别,专业号,年龄,班长)”,主键是学号,班长属性表示该学生所在班级的班长的学好呢,这班长的属性实际引用了学号属性,也就是是说,班长必须是实际存在的学生的学号。3. 简述事务的特性。(PPT上只给出了四个特性,我又在后面加了每个特性的意思,作为参考)事务的:原子性、一致性、隔离性、持续性(1) 原子性事务的原子性指
3、的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。(事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性。假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新。前者称事务已提交,后者称事务撤消(或流产)。DBMS必须确保由成功提交的事务完成的所有操纵在数据库内有完全的反映,而失败的事务对数据库完全没有影响)(2) 一致性事务的一致性指的是在一个事务执行之前和执行之后数据
4、库都必须处于一致性状态。即事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。这种特性称为事务的一致性。(假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。一致性处理数据库中对所有语义约束的保护。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。例如,当数据库处于一致性状态S1时,对数据库执行一个事务,在事务执行期间假定数据库的状态是不一致的,当事务执行结束时,数据库处在一致性状态S2。)(3) 隔离性隔离性指并发的事务是相互隔离的。一个事务的执行不能被其他事物干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能相互干扰。(
5、隔离性是DBMS针对并发事务间的冲突提供的安全保证。DBMS可以通过加锁在并发执行的事务间提供不同级别的隔离。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。DBMS可以在并发执行的事务间提供不同级别的隔离。隔离的级别和并发事务的吞吐量之间存在反比关系。较多事务的可隔离性可能会带来较高的冲突和较多的事务流产。流产的事务要消耗资源,这些资源必须要重新被访问。)(4)持续性持久性也成永久性。指一个事务一旦提交,它对数据库中数据的改变应该是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。持久性主要在于DBMS的恢复性能。4. 简述并发操作引发
6、的问题。并发操作可能会破坏事务的隔离性,从而引发数据的一致性问题,主要包括丢失修改、不可重复读和读“脏”数据等问题。5. 什么是封锁协议,简述三级封锁协议。在运用封锁方法时,对数据对象加锁时需要需要约定一些规则,例如何时申请封锁、持续时间、何时释放封锁等。我们称这些规则为封锁协议。约定不同的规则,就形成了不同的封锁协议。三级封锁协议是一级封锁协议加上事务T在读取数据R之前必须先对其加S锁即共享锁,直到事务结束才释放。而一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。二、证明或推导1. 已知关系
7、模式R的属性集合U=A,B,C,D,E。函数依赖集合F=A-C,B-C,C-D,DE-C,CE-A,分解=R1(A,D),R2(A,B),R3(B,E),R4(C,D,E),R5(A,E)。请验证是否具有无损联接性解:用判断无损连接的算法来解。 构造一个初始的二维表,若“属性”属于“模式”中的属性,则填aj,否则填bij。 根据AC,对上表进行处理,由于属性列A上第1、2、5行相同均为a1,所以将属性列C上的b13、b23、b53改为同一个符号b13(取行号最小值)。(有A的相对就的行改)相同的改成一样的 根据BC,对上表进行处理,由于属性列B上第2、3行相同均为a2,所以将属性列C上的b13
8、、b33改为同一个符号b13(取行号最小值)。 根据CD,对上表进行处理,由于属性列C上第1、2、3、5行相同均为b13,所以将属性列D上的值均改为同一个符号a4。(因为C也依赖于A ,B) 根据DEC,对上表进行处理,由于属性列DE上第3、4、5行相同均为a4a5,所以将属性列C上的值均改为同一个符号a3。 根据CEA,对上表进行处理,由于属性列CE上第3、4、5行相同均为a3a5,所以将属性列A上的值均改为同一个符号a1。 通过上述的修改,使第三行成为a1a2a3a4a5,则算法终止。且分解具有无损连接性。2.设关系模式R(A, B, C, D), 其函数依赖集:F=DB, BD, ADB
9、, ACD 求R的所有候选码。 L类: A, C R类: N类: LR类: B, D因为(AC)F+=ACDB,所以AC是R的唯一候选码。3. 试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的。证明:首先以两个并发事务Tl和T2为例,存在多个并发事务的情形可以类推。根据可串行化定义可知,事务不可串行化只可能发生在下列两种情况:(l)事务Tl写某个数据对象A,T2读或写A;(2)事务Tl读或写某个数据对象A,T2写A。下面称A为潜在冲突对象。设Tl和T2访问的潜在冲突的公共对象为A1,A2,An。不失一般性,假设这组潜在冲突对象中X(A1,A2,Ai均符合情况1。YAi+1,
10、An符合所情况(2)。VXx,Tl需要XlockXT2需要Slockx或Xlockx1)如果操作先执行,则Tl获得锁,T2等待由于遵守两段锁协议,Tl在成功获得x和Y中全部对象及非潜在冲突对象的锁后,才会释放锁。这时如果存在wx或Y,T2已获得w的锁,则出现死锁;否则,Tl在对x、Y中对象全部处理完毕后,T2才能执行。这相当于按Tl、T2的顺序串行执行,根据可串行化定义,Tl和几的调度是可串行化的。2)操作先执行的情况与(l)对称因此,若并发事务遵守两段锁协议,在不发生死锁的情况下,对这些事务的并发调度一定是可串行化的。证毕。4.设关系模式R(ABCD),F是R上成立的FD集,F=ABCD,A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 复习题
限制150内