第4周(第五章:范式分解,多值依赖自学)
二、研讨课:
1. 如下关系模式R表示某学校学生及宿舍的情况
R(学号,姓名,系,宿舍楼,宿舍房号,协会) 满足的函数依赖集合为
F={学号→姓名,学号→系,宿舍楼→系,学号→宿舍房号,宿舍房号→宿舍楼} 试将R规范化为满足BCNF的关系模式。 学号,协会是候选键,所以F肯定不是BCNF
((学号,协会)→(姓名,宿舍房号)),(宿舍房号→宿舍楼)(宿舍楼→系)
2. 假设某旅馆业务规定,每个账单对应一个顾客,账单的发票号是惟一的,账单中包含一个顾客姓名、到达日期和顾客每日的消费明细,账单的格式如图 发票号 123456 123456 123456 123456 到达日前 2014/4/1 2014/4/1 2014/4/1 2014/4/1 顾客姓名 艾尚达 艾尚达 艾尚达 艾尚达 消费日期 2014/4/1 2014/4/1 2014/4/1 2014/4/2 项目 房租 餐费 上网 餐费 金额 280 56 10 180 如果根据上述业务规则,设计一个关系模式:
R(发票号,到达日期,顾客姓名,消费日期,项目,金额)。 试回答下列问题:
(1)找出R的候选键。 发票号,项目,消费日期
(2)判断R最高可达到第几范式,为什么? 3,NO WHY
(3)给出R的一个可能的3NF分解。
R1((发票号,项目,消费日期)→(到达时间,顾客姓名)) R2(项目→金额)
(4)给出R的一个可能的BCNF分解。
R1((发票号,项目,消费日期)→(到达时间,顾客姓名)) R2(项目→金额) 三、作业:
1.说明以下说法是否正确以及理由:
(1)所有候选码都为单个属性的关系模式一定满足2NF;、 左边为单属性不可能为局部依赖 (2)二目关系一定是满足3NF的;
设二目关系为R(A,B),则候选码的可能性为(A,B)、A或B
情况一:候选码为(A,B),不存在非主属性,故R一定满足3NF;
情况二:候选码为A,R满足A→B,不存在传递A→B,故R一定满足3NF; 情况三:类似情况二。
(3)候选码为全码的关系模式一定是满足BCNF的关系模式;
因为关系模式是全码,所以任何属性或属性组对候选码都是直接函数依赖,根据BCNF的定义,此关系模式一定满足BCNF。
2. 已知关系R(A,B,C,D,E,F,G)上的函数依赖集
F={AC->BEFG,A->B,C->DEF,E->F}
试将R分解成一组等价的3NF模式 (1)先求Fmin 1、右边为单属性
AC->B,AC->E,AC->F,AC->G,A->B,C->D,C->E,C->F,E->F 2、去左边重复
AC->B,AC->E,AC->F冗余
所以AC->G,A->B,C->D,C->E,C->F,E->F 3、去冗余FD
C->E,E->F,所以C->F冗余
所以AC->G,A->B,C->D,C->E,E->F (2)求候选码 L:A,C R:B,D,E,F N: LR:
AC+=ABCDEFG 所以候选码是AC
(3)要满足2NF,3NF,所以R1(AC->G)R2(A->B)R3(C->D,C->E)R4(E->F) 3. 设关系模式R(A,B,C,D),F={A→C,A→B,B→D},将R分解为BCNF。 1、候选码 L:A R:C,D N; LR:B A+=ABCD
所以候选码为A 2、分解
R1(A→C,A→B)R2(B→D) 4. 课本Page125:习题5.18。 懒得做了!做法跟上面差不多的
第5周(第七章:数据库设计;第八章:事务概念)
三、作业:
1. 已知R(A,B,C,D,E,F,G,H,I,J),F={AB→E,ABE→FG,B→FI,C→J,CJ→I,G→H},求最小函数依赖集,然后分解成三范式的关系模式集合,并判断该分解是否具有无损连接性。
2. 如下给出的关系R为第几范式?是否存在操作异常?请举例说明。若存在,则将其分解为高一级范式。分解后的范式中是否可以避免这些操作异常?
数据冗余
((工程号,材料号,数量)→(开工日期,完工日期,价格)) 这是第一范式 修改成
(工程号→(开工日期,完工日期)) ((工程号,材料号,数量)→价格) 3. 课本Page170:习题7.15。
第6周(第八章:故障恢复)
二、研讨课:
1. 某数据库配置时把数据库文件、备份文件、日志文件放在同一个硬盘上,是否合适?并说明理由。放在同一台计算机的不同硬盘上呢?从故障恢复的角度应该如何配置合理?至少哪两类文件不应放在同一硬盘上?
不合适,当发生介质故障时候,如果放在同一个硬盘上,数据库文件就无法 补救回来。
也不是很合适,当整台电脑被病毒破坏时,数据库文件、备份文件、日志文件 也是容易被损坏的。
数据库备份放在共享文件夹里,共享指定给另外一台电脑。
数据库文件,备份文件。及时日志文件丢失损坏,之前备份的文件也有很多数据 但如果备份文件都不在了,日志文件也是没用的。
2. 假定系统采用检查点方法,T1、T2和T3是并发事务,在t19时发生系统故障,最近的检查点在t8时(见图);A、B、C和D都是数据库中的数据项,初值依次是800、300、70和80, 说明所需的恢复工作。 时刻 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19
T1 read(B) B=B*2 write(B) read(A) A=A+10 write(A) COMMIT read(A) A=A-100 write(A) COMMIT T2 read(D) D=D-100 write(D) read(A) read(B) B=B+A write(B) …
答:(1)事物T2不必恢复,因为它的更新在检查点之前就写到了数据库.(A=700)
t19:发生故障 T3 t4:T2开始 t8:检查点 t9:T3开始 说 明 t1:T1开始 (2)事物T3必须撤销,因为T3还未做完,撤销事物T3对db的修改,就恢复D=80 (3)事物T1必须重做,因为T1做完,但是它的结束在下一个结束点之前,对DB修改仍然在内存缓冲区,还没写到磁盘。 重做 A=710. 参照书本175-176面各种情况的解决方法
3. 假定系统采用检查点方法,当系统崩溃时产生了以下并发事务的日志记录。 (1) 请给出系统在恢复后搜索日志时所形成的重做队列和撤销队列。 (2) 请给出恢复后各数据项的值。
1. 课本Page195:习题8.4。 2. 课本Page195:习题8.5。
3. 为什么系统故障恢复时先UNDO再REDO操作?请举日志队列说明
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库上海大学数据库2原理研讨+作业的个人解答(2)在线全文阅读。
相关推荐: