数据库原理二研讨实验作业题安排.docx
《数据库原理二研讨实验作业题安排.docx》由会员分享,可在线阅读,更多相关《数据库原理二研讨实验作业题安排.docx(14页珍藏版)》请在冰豆网上搜索。
数据库原理二研讨实验作业题安排
第1周(第五章:
函数依赖、推理规则、闭包)
一、实验课:
本学期分组完成“教学事务管理系统”,具体要求如下:
1.系统必须是在B/S结构下实现。
2.数据库在原理1的School数据库基础下自行修改,只能添加,不能删除。
3.系统具有为不同的角色(系统管理员、教师、学生)提供不同操作权限的功能。
4.系统为系统管理员提供具有学分制教务管理特色的各类功能。
5.学生根据每个学期所开设的课程进行自主选课并具有查询有关信息的功能。
6.教师根据学生所选课程进行成绩登录并且具有日常教学管理的功能。
7.系统为不同的角色提供各类统计分析。
8.数据库中至少包含一个触发器和一个存储过程在系统中使用和调用。
9.其他辅助功能。
二、研讨课:
1.假设员工关系EMP(员工号,姓名,部门,部门电话,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。
如果一个部门可以有多名员工,一个员工可以有多个家庭成员,那么关系EMP属于
(1)问题;为了解决这一问题,应该将员工关系EMP分解为
(2),
画出ER图(3),主外键(4)。
员工号
姓名
部门
部门电话
部门负责人
家庭住址
家庭成员
成员关系
0011
张晓明
开发部
808356
0012
北京海淀区1号
张大军
父亲
0011
张晓明
开发部
808356
0012
北京海淀区1号
胡敏铮
母亲
0011
张晓明
开发部
808356
0012
北京海淀区1号
张晓丽
妹妹
0012
吴俊
开发部
808356
0012
上海昆明路15号
吴胜利
父亲
0012
吴俊
开发部
808356
0012
上海昆明路15号
王若垚
母亲
0021
李立丽
市场部
808358
0021
西安雁塔路8号
李国庆
父亲
0021
李立丽
市场部
808358
0021
西安雁塔路8号
罗明
母亲
0022
王学强
市场部
808356
0021
西安太白路2号
王国钧
父亲
0031
吴俊
财务部
808360
西安科技路18号
吴鸿翔
父亲
2.判断F={A->BC,B->A,AD->E}和G={A->BC,B->A,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是冗余的。
2.课本Page124:
习题5.3
3.课本Page124:
习题5.8
第2周(第五章:
、关键码、最小函数依赖集)
一、实验课:
同上
二、研讨课:
1.建立一个关于系、学生、班级、社团等信息的关系数据库。
●描述学生的属性有:
学号、姓名、出生年月、系名、班号、宿舍区。
●描述班级的属性有:
班号、专业名、系名、人数、入校年份。
●描述系的属性有:
系名、系号、系办公室地点、人数。
●描述社团的属性有:
社团名、成立年份、地点、人数。
有关语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一个宿舍区。
每个学生可参加若干社团,每个社团有若干学生。
学生参加某社团有一个入会年份。
请给出该数据库中的关系模式的函数依赖集,求出候选键,指出是否存在部分依赖和传递函数依赖。
2.设有函数依赖集:
F={AB->C,C->A,BC->D,ACD->B,D->EG,BE->C,CG->BD,CE->AG},计算其等价的最小依赖集。
3.已知R(ABCDE),F={A→B,BC→A,A→D},求R的全部非主属性。
三、作业:
1.已知F={B→D,A→D,DA→CB,CD→A},求Fmin。
2.如果关系模式R(A,B)的候选码为(A,B)(即为全码),那么该关系模型一定不满足A→B,或B→A。
3.设有R(ABCDE),F={A→C,B→C,C→D,CE→A,DE→C},求候选码。
第3周(第五章:
分解无损和保持FD)
一、实验课:
同上
二、研讨课:
1.R(ABCDE),F={AB→C,AC→E,C→B,E→C,D→C},ρ={ABC,AD,AE,BE,DE},求ρ的分解无损性
2.关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X,X→Z,Y→W}。
关系模式R的候选键是
(1),
(2)是无损连接并保持函数依赖的分解。
3.举出一个满足无损但不保持FD的分解例子,并说明分解的不合理?
举出一个保持FD但不满足无损的分解例子,并说明分解的不合理。
三、作业:
1.证明BCNF一定是3NF。
2.给定关系模式R,其中:
U={A,B,C,D},F={A->B,B->C,C->D,D->A},判断关系模式R的分解ρ={AB,BC,CD}是否具有依赖保持性。
3.课本Page125:
习题5.15
4.已知R,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的关系模式。
2.假设某旅馆业务规定,每个账单对应一个顾客,账单的发票号是惟一的,账单中包含一个顾客姓名、到达日期和顾客每日的消费明细,账单的格式如图
发票号
到达日前
顾客姓名
消费日期
项目
金额
123456
2014/4/1
艾尚达
2014/4/1
房租
280
123456
2014/4/1
艾尚达
2014/4/1
餐费
56
123456
2014/4/1
艾尚达
2014/4/1
上网
10
123456
2014/4/1
艾尚达
2014/4/2
餐费
180
如果根据上述业务规则,设计一个关系模式:
R(发票号,到达日期,顾客姓名,消费日期,项目,金额)。
试回答下列问题:
(1)找出R的候选键。
(2)判断R最高可达到第几范式,为什么?
(3)给出R的一个可能的3NF分解。
(4)给出R的一个可能的BCNF分解。
3.设关系模式R(A,B,C),如果已知R的当前关系存在三个元组(a1,b,c1),(a1,b,c2),(a3,b,c2)。
根据下列MVD,补上其余的元组。
(1)A→→B
(2)B→→C
(3)C→→B
三、作业:
1.说明以下说法是否正确以及理由:
(1)所有候选码都为单个属性的关系模式一定满足2NF;
(2)二目关系一定是满足3NF的;
(3)候选码为全码的关系模式一定是满足BCNF的关系模式;
2.已知关系R(A,B,C,D,E,F,G)上的函数依赖集
F={AC->BEFG,A->B,C->DEF,E->F}
试将R分解成一组等价的3NF模式
3.设关系模式R(A,B,C,D),F={A→C,A→B,B→D},将R分解为BCNF。
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
read(A)
A=A-100
write(A)
COMMIT
read(D)
D=D-100
write(D)
read(A)
read(B)
B=B+A
write(B)
…
t1:
T1开始
t4:
T2开始
t8:
检查点
t9:
T3开始
t19:
发生故障
3.假定系统采用检查点方法,当系统崩溃时产生了以下并发事务的日志记录。
(1)请给出系统在恢复后搜索日志时所形成的重做队列和撤销队列。
(2)请给出恢复后各数据项的值。
三、作业:
1.课本Page195:
习题8.4。
2.课本Page195:
习题8.5。
3.为什么系统故障恢复时先UNDO再REDO操作?
请举日志队列说明
第7周(第八章:
并发控制)
一、实验课:
同上
二、研讨课:
1.判断下列并发调度是不是可串行化调度,为什么?
修改如下并发调度为可串行化调度
时间
事务T1
数据库中值
事务T2
t0
A=10,B=2
t1
ReadA
t2
ReadB
t3
ReadA
t4
UpdateA=A+1
t5
ReadB
t6
UpdateB=A+B
t7
UpdateB=B+1
2.设T1,T2,T3是如下三个事务:
T1:
A:
=A+2;T2:
A:
=A*2;T3:
A:
=A2;设A的初始值为0.
1)若三个事务允许并发执行,则有多少种可能的正确的结果,请分别列举出来
2)请给出一个可串行化的调度,并给出执行结果
3)请给出一个非串行化的调度,并给出执行结果
4)若三个事务都遵守两段锁协议,请给出一个产生死锁的调度。
3.操作序列T1、T2、T3对数据A、B、C并发操作如下所示,T1与T2间并发操作
(1),T2与T3间并发操作
(2)。
修改如下并发调度为可串行化调度
时间
T1
T2
T3
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
读A=50
读B=200
X1=A+B
读A=50
读B=100
X1=A+B
验算不对
读B=200
B=B-100
写B
读B=200
B=B+50
写B
三、作业:
1.课本Page196:
习题8.10。
2.课本Page196:
习题8.11。
3.课本Page196:
习题8.12。
第8周(第八章:
完整性和安全性;第九章分布式自学)
一、实验课:
同上
二、研讨课:
1.写有关school数据库的完整性约束
(1)确保每个学生在同一学期同一门课只能选一个老师开设的课程。
(2)确保每门课程每年只开设一次。
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门课程(用断言)。
2、如果总评成绩修改后低于60分,那么,如果平时成绩大于80分,在修改后的
总评成绩上再增加考试成绩的8%,但不得超过60分(用SQL3触发器)。
3.某图书借阅管理数据库有如下关系模式:
书籍表(书号,书名,数量,分类,状态,出版社名)
读者表(借书证号,姓名,年龄,电话,地址)
借阅情况表(借书证号,书号,借书日期,还书日期)
1)把对书籍表的查询、修改权和转授权授予用户admin。
2)使每个人都能查询未出借图书的借阅情况,但不能直接查看借阅情况表。
三、作业:
1.课本Page196:
习题8.19。
2.课本Page196:
习题8.20。
3.课本Page215:
习题9.5。
第9周(第十章:
对象数据库)
一、实验课:
同上
二、研讨课:
1.对照题目给出的内容,补充完整下面的对象联系图和对象关系数据库定义。
CREATETYPEMyStringcharvarying;
CREATETABLEDepartment(dnoMyString,
dnameMyString,
(1),
(2));
CREATETABLEEmployee(enointeger,
enameMyString,
sexMyString,
(3));
CREATETABLEManager(mnointeger,
(4))
underEmployee;
2.对上面定义的数据库用SQL完成以下查询:
⑴找出各个男职工的工号、姓名、部门名和经理编号。
⑵找出精通日语的经理所在部门的职工的工号和姓名。
2.根据如下对象关系数据库定义,画出对应的对象联系图
CREATETYPEMyStringcharvarying;
CREATETABLEdept(dnointeger,
dnameMyString,
enrollsetof(ref(student)),
offersetof(ref(coursetext)));
CREATETABLEstudent(snointeger,
snameMyString,
ageinteger,
enrolledref(dept),
choosesetof(ref(grade)));
CREATETABLEcourse(cnameMyString,
hoursinter,
creditinter.
offered_byref(dept),
opensetoff(ref(grad));
CREATETABLEs_c(gradeinter,
choosed_byref(student),
doneref(course)));
3.建立一个关于系、学生、班级、社团等信息的关系数据库。
●描述学生的属性有:
学号、姓名、出生年月等。
●描述系的属性有:
系名、系号、系办公室地点、宿舍区等。
●描述社团的属性有:
社团名、成立年份、地点。
有关语义如下:
一个系的学生住在同一个宿舍区。
每个学生可参加若干社团,每个社团有若干学生。
请画出对象关系图,用ORDB的定义语言定义这个数据库。
三、作业:
1.课本Page230:
习题10.1。
2.课本Page231:
习题10.6。
3.课本Page232:
习题10.7。
第10周(数据库原理2复习)
一、实验课:
验收“教学事务管理系统”
二、研讨课:
根据下半学期的学习情况,对学生在学习中的问题,两个班合班上习题课。