上海大学数据库2原理研讨+作业的个人解答Word文档下载推荐.docx
- 文档编号:4569490
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:23
- 大小:189.06KB
上海大学数据库2原理研讨+作业的个人解答Word文档下载推荐.docx
《上海大学数据库2原理研讨+作业的个人解答Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《上海大学数据库2原理研讨+作业的个人解答Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。
AD,因为AD->
E,所以BD->
E,所以。
。
3.设关系模式R具有n个属性,在模式R上可能成立的函数依赖有
(1)个?
其中平凡的FD有
(2)个?
非平凡的FD有(3)个?
以上3点都需说明为什么
三、作业:
1.设函数依赖集F={AB->
E,AC->
G,AD->
BG,B->
C,C->
D},试证AC->
G是冗余的。
AD->
BG,C->
D,所以AC->
BG,所以AC->
G,所以冗余
2.课本Page124:
习题5.3
(1)X->
ø
永远满足。
(2)ø
->
Y,则属性Y对于各元组的值相同。
(3)ø
为平凡的函数依赖,永远满足。
3.课本Page124:
习题5.8
证明:
(反证法)假设存在A→B
那么A→AB,关系模式R的候选码即为A,不是全码
∴假设不存在,R不满足A→B
同理:
R不满足B→A
第2周(第五章:
、关键码、最小函数依赖集)
2.设有函数依赖集:
F={AB->
A,BC->
D,ACD->
B,D->
EG,BE->
C,CG->
BD,CE->
AG},计算其等价的最小依赖集。
1、把右边都写成单属性
AB->
E,D->
G,BE->
B,CG->
D,CE->
A,CE->
G
2、去左边冗余属性
C->
A冗余,去掉CE->
A,所以
D,CE->
3、去冗余的FD
D->
G,所以CD->
CG,CG->
B,所以CD->
B,所以ACD->
B冗余
所以
D,D->
3.已知R(ABCDE),F={A→B,BC→A,A→D},求R的全部非主属性。
L:
C
R:
D
N:
E
LR:
A,B
CE+=CE
ACE+=ABCDE
BCE+=ABCDE
所以非主属性为D
1.已知F={B→D,A→D,DA→CB,CD→A},求Fmin。
1、右边单属性
B→D,A→D,DA→C,DA→B,CD→A
2、左边冗余属性
A→D,DA→C,DA→B,所以A→C,A→B
B→D,A→D,A→C,A→B,CD→A
3、冗余的FD:
无
2.如果关系模式R(A,B)的候选码为(A,B)(即为全码),那么该关系模型一定不满足A→B,或B→A。
没什么好说的
3.设有R(ABCDE),F={A→C,B→C,C→D,CE→A,DE→C},求候选码。
B,E
A,C,D
BE+=ABCDE
所以BE
第3周(第五章:
分解无损和保持FD)
1.R(ABCDE),F={AB→C,AC→E,C→B,E→C,D→C},ρ={ABC,AD,AE,BE,DE},求ρ的分解无损性
A
B
ABC
a1
a2
a3
b41
b51
AD
b22
b32
a4
b52
AE
b23
b33
b43
a5
BE
b14
b34
b44
DE
b15
b25
b35
2.关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X,X→Z,Y→W}。
关系模式R的候选键是
(1),
(2)是无损连接并保持函数依赖的分解。
L:
R:
Z
N:
LR:
W,X,Y
W+=WXYZ
Y+=WXYZ
X+=XZ
候选键:
W和Y
出发点:
X→Z
不妨大胆的假设R1,R2使得无损联结,也就是R1∩R2=X,R2-R1=Z
就有WXY与XZ
验证依赖性
πWXY(F)={WX→Y,W→X,Y→W}
πXZ(F)={X→Z}
πWXY(F)∪πXZ(F)=F
大功告成!
3.举出一个满足无损但不保持FD的分解例子,并说明分解的不合理?
举出一个保持FD但不满足无损的分解例子,并说明分解的不合理。
没什么好说的!
1.证明BCNF一定是3NF。
反证法,假设不是,存在传递
然而传递的中间不是候选键的话语BCNF矛盾
所以。
到时候自己编一个BCNF
2.给定关系模式R<
U,F>
其中:
U={A,B,C,D},F={A->
B,B->
A},判断关系模式R的分解ρ={AB,BC,CD}是否具有依赖保持性。
求投影,方法看研讨
3.课本Page125:
习题5.15
画表格,方法如研讨
4.已知R<
U,F>
,U={A,B,C,D,E},F={AB→C,D→E,C→D},R的一个分解ρ={R1(A,B,C),R2(C,D),R3(D,E)}。
判定分解ρ是否为无损连接的分解和保持函数依赖性。
画表格+求投影
第4周(第五章:
范式分解,多值依赖自学)
1.如下关系模式R表示某学校学生及宿舍的情况
R(学号,姓名,系,宿舍楼,宿舍房号,协会)
满足的函数依赖集合为
F={学号→姓名,学号→系,宿舍楼→系,学号→宿舍房号,宿舍房号→宿舍楼}
试将R规范化为满足BCNF的关系模式。
学号,协会是候选键,所以F肯定不是BCNF
((学号,协会)→(姓名,宿舍房号)),(宿舍房号→宿舍楼)(宿舍楼→系)
2.假设某旅馆业务规定,每个账单对应一个顾客,账单的发票号是惟一的,账单中包含一个顾客姓名、到达日期和顾客每日的消费明细,账单的格式如图
发票号
到达日前
顾客姓名
消费日期
项目
金额
123456
2014/4/1
艾尚达
房租
280
餐费
56
上网
10
2014/4/2
180
如果根据上述业务规则,设计一个关系模式:
R(发票号,到达日期,顾客姓名,消费日期,项目,金额)。
试回答下列问题:
(1)找出R的候选键。
发票号,项目,消费日期
(2)判断R最高可达到第几范式,为什么?
3,NOWHY
(3)给出R的一个可能的3NF分解。
R1((发票号,项目,消费日期)→(到达时间,顾客姓名))
R2(项目→金额)
(4)给出R的一个可能的BCNF分解。
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->
D,C->
E,C->
F,E->
F
2、去左边重复
F冗余
所以AC->
3、去冗余FD
E,E->
F,所以C->
(2)求候选码
A,C
B,D,E,F
AC+=ABCDEFG
所以候选码是AC
(3)要满足2NF,3NF,所以R1(AC->
G)R2(A->
B)R3(C->
E)R4(E->
F)
3.设关系模式R(A,B,C,D),F={A→C,A→B,B→D},将R分解为BCNF。
1、候选码
C,D
N;
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
说明
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
read(B)
B=B*2
write(B)
read(A)
A=A+10
write(A)
COMMIT
A=A-100
read(D)
D=D-100
write(D)
B=B+A
…
t1:
T1开始
t4:
T2开始
t8:
检查点
t9:
T3开始
t19:
发生故障
答:
(1)事物T2不必恢复,因为它的更新在检查点之前就写到了数据库.(A=700)
(2)事物T3必须撤销,因为T3还未做完,撤销事物T3对db的修改,就恢复D=80
(3)事物T1必须重做,因为T1做完,但是它的结束在下一个结束点之前,对DB修改仍然在内存缓冲区,还没写到磁盘。
重做A=710.
参照书本175-176面各种情况的解决方法
3.假定系统采用检查点方法,当系统崩溃时产生了以下并发事务的日志记录。
(1)请给出系统在恢复后搜索日志时所形成的重做队列和撤销队列。
(2)请给出恢复后各数据项的值。
<
T3,start>
T3,Update,A,600,60>
T1,start>
T1,Update,C,50,-10>
T2,start>
T2,Update,B,150,190>
T1,Commit>
T4,start>
checkpointL{T2,T3,T4}>
T4,Update,D,200,130>
T4,Commit>
T3,Update,B,190,320>
T2,Update,C,-10,90>
T2,Commit>
T2T4重做,T3撤销
A=600D=130C=90B=190
1.课本Page195:
习题8.4。
2.课本Page195:
习题8.5。
3.为什么系统故障恢复时先UNDO再REDO操作?
请举日志队列说明
第7周(第八章:
并发控制)
1.判断下列并发调度是不是可串行化调度,为什么?
修改如下并发调度为可串行化调度
时间
事务T1
数据库中值
事务T2
t0
A=10,B=2
t1
ReadA
ReadB
t4
UpdateA=A+1
UpdateB=A+B
UpdateB=B+1
2.设T1,T2,T3是如下三个事务:
T1:
A:
=A+2;
T2:
=A*2;
T3:
=A2;
设A的初始值为0.
1)若三个事务允许并发执行,则有多少种可能的正确的结果,请分别列举出来
2)请给出一个可串行化的调度,并给出执行结果
3)请给出一个非串行化的调度,并给出执行结果
4)若三个事务都遵守两段锁协议,请给出一个产生死锁的调度。
1)A33=6
12316
1328
2134
2312
3124
3212
结果为4种,为2、4、8、16
2)
3)
3.操作序列T1、T2、T3对数据A、B、C并发操作如下所示,T1与T2间并发操作
(1),T2与T3间并发操作
(2)。
t1
t2
t8
读A=50
读B=200
X1=A+B
读B=100
验算不对
B=B-100
写B
B=B+50
1.课本Page196:
习题8.10。
2.课本Page196:
习题8.11。
3.课本Page196:
习题8.12。
第8周(第八章:
完整性和安全性;
第九章分布式自学)
1.写有关school数据库的完整性约束
(1)确保每个学生在同一学期同一门课只能选一个老师开设的课程。
createassertionasse1check
(notexists(select*
fromeasa,easb
wherea.xh=b.xhanda.xq=b.xqanda.kh=b.kh
anda.gh<
>
b.gh
)
);
(2)确保每门课程每年只开设一次。
Createassertionass2check
(1>
all(selectcount(distinct(A.课号))
From开课表asA,开课表asB
WhereA.学年=B.学年
AndA.课号=B.课号
Groupby学年,课号
));
2.设有三个关系模式:
STUDENT(SNO,SNAME,AGE,SEX,SADDR,DNO)
COURSE(CNO,CNAME,CHARA,CREDIT,DNO,TERM,TNAME)
GRADE(SNO,CNO,TERM,PGRADE,EGRADE,GGRADE)
中文含义:
学生(学号,姓名,年龄,性别,住址,所在系),
课程(课程号,课程名,课程性质,学分数,开课系,开课学期,教师),
成绩(学号,课程号,开课学期,平时成绩,考试成绩,总评成绩)。
请用指定的方法定义下列完整性约束:
1、每个学期每个学生至多可选8门课程(用断言)。
Createassertionass1check
(8>
=all(selectcount(distinct(cno))
Fromgrade
Groupbysno,term
2、如果总评成绩修改后低于60分,那么,如果平时成绩大于80分,在修改后的
总评成绩上再增加考试成绩的8%,但不得超过60分(用SQL3触发器)。
createtriggertrig1
afterupdateofggradeongrade
referencing
oldasoldtuple
newasnewtuple
when(newtuple.ggrage<
60andoldtuple.egrade>
80)
updategrade
setggrade=newtuple.ggrade+oldtuple.pgrade*0.08
wheresno=newtuple.snoandcno=oandterm=newtuple.termand
(60>
=newtuple.ggrade+oldtuple.pgrade*0.08)
setggrade=60
wheresno=newtuple.snoandcno=oandterm=newtuple.term
and(60<
newtuple.ggrade+oldtuple.pgrade*0.08)
foreachrow;
3.某图书借阅管理数据库有如下关系模式:
书籍表(书号,书名,数量,分类,状态,出版社名)
读者表(借书证号,姓名,年龄,电话,地址)
借阅情况表(借书证号,书号,借书日期,还书日期)
1)把对书籍表的查询、修改权和转授权授予用户admin。
Grantselect,updateon书籍表toadmin
Withgrantoption
2)使每个人都能查询未出借图书的借阅情况,但不能直接查看借阅情况表。
createviewAas
Select书籍表.所有属性from书籍表,借阅情况表
Where书籍表.书号=借阅表.书号and书籍.状态=’未出借’
GrantselectonAtopublic
习题8.19。
习题8.20。
3.课本Page215:
习题9.5。
第9周(第十章:
对象数据库)
1.对照题目给出的内容,补充完整下面的对象联系图和对象关系数据库定义。
CREATETYPEMyStringcharvarying;
CREATETABLEDepartment(dnoMyString,
dnameMyString,
(1),
(2));
CREATETABLEEmployee(enointeger,
enameMyString,
sexMyString,
(3));
CREATETABLEManager(mnointeger,
(4))
underE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海 大学 数据库 原理 研讨 作业 个人 解答