数据库复习题全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库与管理信息系统复习题
一、简答题
1. 试述数据库二级映像和数据独立性之间的关系
DBMS在三级模式之间提供二级映像——“外模式|模式映像”和“模式|内模式映像”,保证了数据库的数据具有较高的逻辑独立性和物理独立性。
数据库的二级映像保证了数据库外模式的稳定性,从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。
数据库的三级模式与二级映像实现了数据与程序之间的独立性,使数据的定义和描述可以从应用程序中分离出来。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大降低了应用程序的维护和修改成本。
2.请举例说明在同一个关系内部也可能存在参照的完整性约束。
参照完整性约束是不同关系之间或一个关系的不同元组之间的制约。不仅在关系间存在引用,同一关系内部属性也可能存在引用关系。也就是说,参照完整性规则中,参照关系和目标关系(被参照关系)可以是同一个关系。
比如对于关系“学生(学号,姓名,性别,专业号,年龄,班长)”,主键是学号,班长属性表示该学生所在班级的班长的学好呢,这班长的属性实际引用了学号属性,也就是是说,班长必须是实际存在的学生的学号。
3.简述事务的特性。(PPT上只给出了四个特性,我又在后面加了每个特性的意思,作为参考)
事务的:原子性、一致性、隔离性、持续性
(1)原子性
事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。
(事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性。假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新。前者称事务已提交,后者称事务撤消(或流产)。DBMS必须确保由成功提交的事务完成的所有操纵在数据库内有完全的反映,而失败的事务对数据库完全没有影响)
(2) 一致性
事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。即事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。这种特性称为事务的一致性。
(假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。一致性处理数据库中对所有语义约束的保护。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。例如,当数据库处于一致性状态S1时,对数据库执行一个事务,在事务执行期间假定数据库的状态是不一致的,当事务执行结束时,数据库处在一致性状态S2。)
(3) 隔离性
隔离性指并发的事务是相互隔离的。一个事务的执行不能被其他事物干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能相互干扰。
(隔离性是DBMS针对并发事务间的冲突提供的安全保证。DBMS可以通过加锁在并发执行的事务间提供不同级别的隔离。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。DBMS可以在并发执行的事务间提供不同级别的隔离。隔离的级别和并发事务的吞吐量之间存在反比关系。较多事务的可隔离性可能会带来较高的冲突和较多的事务流产。流产的事务要消耗
资源,这些资源必须要重新被访问。)
(4)持续性
持久性也成永久性。指一个事务一旦提交,它对数据库中数据的改变应该是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。持久性主要在于DBMS的恢复性能。
4.简述并发操作引发的问题。
并发操作可能会破坏事务的隔离性,从而引发数据的一致性问题,主要包括丢失修改、不可重复读和读“脏”数据等问题。
5.什么是封锁协议,简述三级封锁协议。
在运用封锁方法时,对数据对象加锁时需要需要约定一些规则,例如何时申请封锁、持续时间、何时释放封锁等。我们称这些规则为封锁协议。约定不同的规则,就形成了不同的封锁协议。
三级封锁协议是一级封锁协议加上事务T在读取数据R之前必须先对其加S锁即共享锁,直到事务结束才释放。而一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
二、证明或推导
1. 已知关系模式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)}。请验证ρ是否具有无损联接性解:用判断无损连接的算法来解。
①构造一个初始的二维表,若“属性”属于“模式”中的属性,则填a j,否则填b ij。
②根据A→C,对上表进行处理,由于属性列A上第1、2、5行相同均为a1,所以将属性列C上的b13、b23、b53改为同一个符号b13(取行号最小值)。(有A的相对就的行改)相同的改成一样的
③根据B→C,对上表进行处理,由于属性列B上第2、3行相同均为a2,所以将属性列C上的b13、b33改为同一个符号b13(取行号最小值)。
④根据C→D,对上表进行处理,由于属性列C上第1、2、3、5行相同均为b13,所以将属性列D上的值均改为同一个符号a4。(因为C也依赖于A ,B)
⑤根据DE→C,对上表进行处理,由于属性列DE上第3、4、5行相同均为a4a5,所以将属性列C上的值均改为同一个符号a3。
⑥根据CE→A,对上表进行处理,由于属性列CE上第3、4、5行相同均为a3a5,所以将属性列A上的值均改为同一个符号a1。
⑦通过上述的修改,使第三行成为a1a2a3a4a5,则算法终止。且分解具有无损连接性。
2.设关系模式R(A, B, C, D), 其函数依赖集:F={D→B, B→D, AD→B, AC→D} 求R的所有候选码。
L类: A, C