数据库技术基础模拟试题答案Word文档下载推荐.docx
- 文档编号:20985757
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:98.12KB
数据库技术基础模拟试题答案Word文档下载推荐.docx
《数据库技术基础模拟试题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库技术基础模拟试题答案Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
1、所有答题都须写在此试卷纸密封线右边,写在其它纸上一律无效。
2、密封线左边请勿答题,密封线外不得有姓名及相关标记。
得分
一、问答题(共3小题,每小题5分,共15分)
1、有如下查询Q1和Q2:
Q1:
SELECT*FROMR;
Q2:
(SELECT*FROMR)
INTERSECT
(SELECT*FROMR);
Q1和Q2是否产生同样的结果,为什么?
答:
如果R中有重复的记录时,Q1和Q2结果不一样。
因为Q2中的INTERSECT是集合运算,去除了重复的记录。
2、比较完整性约束中的主键约束(PRIMARYKEY)和唯一性约束(UNIQUE),至少说明它们的两个不同之处。
每个表中只能有1个PRIMARYKEY属性或属性组,但是能够有多个UNIQUE属性;
PRIMARYKEY属性或属性组不能为NULL,但UNIQUE属性可以为NULL。
3、什么是事务的ACID性质?
“A”表示“原子性”,即事务的操作要么全部被执行,要么全部不被执行;
“I”表示“独立性”,每个事务的执行必须显现为如同没有其他事务在同时执行;
“D”表示“持久性”,即一旦事务已经完成,则该事务对数据库的影响就永远不会消失;
“C”表示“一致性”,即要求事务的执行要保持数据库的一致性。
二、填空题(共5小题,每小题1分,共5分)
TRUE(T)、FALSE(F)和UNKNOWN(U)作为变量X、Y和Z的全部可能取值,用T、F和U填写下表。
解:
X
Y
Z
(XANDY)OR(NOTZ)
U
T
F
三、解答题(共5小题,每小题4分,共20分)
考虑如下关系表,每个关系的主键用下划线标明。
employee(EID,name,salary,DNo)表示雇员ID、姓名、工资、所在的部门编号。
department(DNo,DeptName,MgrID)表示部门编号、部门名称和该部门的经理ID。
project(PNo,location,ProjName)表示项目的编号、地点、项目名称。
HourLog(EID,PNo,hours)表示雇员(EID)为项目(PNo)工作的小时数(hours)。
假定每个部门只有1个经理,每个雇员可以参加多个项目(包括0个),每个项目至少有1个雇员参加,HourLog关系列出了雇员参加的项目的工作小时数。
1、用关系代数表达查询:
找出为一个项目工作时数超过100的雇员的ID和姓名。
2、用关系代数表达查询:
找出没有参加任何项目的雇员的姓名。
或
3、用SQL表达查询:
找出是部门D10并且参加项目P345的雇员姓名和ID。
SELECTName,Employee.EID
FROMEmployee,Hourlog
WHEREEmployee.DNo=‘D10’AND
Employee.EID=Hourlog.EIDAND
Hourlog.PNo=‘P345’;
.
SELECTName,EID
FROMEmployee
WHEREDNo=’D10’AND
EIDIN(SELECTEID
FROMHourlog
WHREREPNo=’P345’);
4、用SQL表达查询:
找出至少参加了2个项目的雇员的ID和姓名。
SELECTemployee.EID,name
FROMemployee,HourLog
WHEREemployee.EID=HourLog.EID
GROUPBYemployee.EID,name
HAVINGCOUNT(PNo)>
=2;
或:
SELECTEID,name
FROMemployee
WHEREEIDIN(SELECTEID
FROMHourLog
GROUPBYEID
=2);
WHEREEIDIN(SELECTH1.EID
FROMHourLogH1,HourLogH2
WHEREH1.EID=H2.EIDAND
H1.PNo<
>
H2.PNo);
SELECTEmployee.EID,Name
FROMEmployee,HourlogH1,HourlogH2
WHEREEMPLOYEE.EID=H1.EIDAND
H1.EID=H2.EIDAND
H1.PNo<
H2.PNo;
5、用SQL表达查询:
对每一个项目,找出为其工作时间最长的雇员ID。
SELECTPNo,EID
FROMHourLogH1
WHEREhours=(SELECTMAX(hours)
WHEREPNo=H1.PNo);
WHEREhours>
=ALL(SELECThours
WHERE(PNo,hours)IN(SELECTPNo,MAX(hours)
FROMHourLog
GROUPBYPNo);
四、说明题(共5分)
参考题三中关系表employee的定义,简要说明如下触发器的含义。
CREATETRIGGERFooTrigger
AFTERUPDATEOFsalaryONEmployee
REFERENCING
OLDASOldTuple,
NEWASNewTuple
WHEN(OldTuple.salary>
NewTuple.salaryAND
OldTuple.name='
TomSmith'
)
UPDATEEmployee
SETsalary=OldTuple.salary
WHEREEID=NewTuple.EID
FOREACHROW;
不能降低TomSmith的的工资。
五、解答题(共2小题,每小题5分,共10分)
给定表Dept(dno,location)和表Emp(name,dno),其中Emp由如下SQL语句创建。
CREATETABLEEmp
(namechar(15),
dnoint,
FOREIGNKEYdnoREFERENCESDept(dno)
ONDELETESETNULL
ONUPDATECASCADE);
假设两个表有如下记录:
EmpDept
name
dno
location
Tom
111
Irvine
Mary
222
LA
Jack
333
SF
Henry
1、说明执行如下查询后两个表中的记录:
DELETE*FROMDeptWHEREDno=111;
NULL
2、执行完1中查询后,继续执行如下查询后两个表中还有什么记录?
UPDATEDeptSETDno=444WHEREDno=222;
444
六、解答题(共2小题,每小题5分,共10分)
考虑大学中的学生-课程-教师活动,其中:
学生实体(Student)有学号(Sno)、姓名(Sname)、年龄(Sage)、专业(Speciality)等属性;
课程实体(Course)有课程编号(Cno)、课程名称(Cname)、学分(Credit)、先修课程号(Cpno)等属性;
教师实体(Instructor)有姓名(Iname)、职称(rank)、工资(salary)等属性。
根据你对现实世界中的Student-Course-Instructor活动的理解设计实体集和联系集,并定义其属性。
1、设计一个E-R模型表达大学中的Student-Course-Instructor活动,对设计的E-R模型可以进行必要的说明。
2、将设计出的E-R图转换为关系数据库模式,其中要求对数据库模式附加如下约束:
(a)课程的先修课程号参照引用课程编号;
(b)教师的职称分为教授(professor)、副教授(associateprofessor)和助教(assistantprofessor)三类;
(c)教授的工资不少于10000、副教授的工资不少于8000、助教的工资不少于5000。
CREATEStudent(
SnoINTEGERPRIMARYKEY,
SnameCHAR(20),
SageINTEGER,
SpecialityCHAR(20));
CREATETABLECourse(
CnoINTEGERPRIMARYKEY,
CnameCHAR(20),
CreditINTEGER,
CpnoINTEGER,
FOREIGNKEY(Cpno)REFERENCESCourse(Cno));
CREATETABLEInstructor(
InameCHAR(20)PRIMARYKEY,
RankCHAR(20),
SalaryINTEGER,
CHECK((Rank=’Professor’ANDSalary>
=10000)OR
(Rank=’AssociateProfessor’ANDSalary>
=8000)OR
(Rank=’AssistantProfessor’ANDSalary>
=5000));
CREATETABLEChoose(
SnoINTEGER,
CnoINTEGER,
PRIMARYKEY(Sno,Cno),
FOREIGNKEYSnoREFERENCESStudent(Sno),
FOREIGNKEYCnoREFERENCESCourse(Cno));
CREATETABLETeach(
InameCHAR(20),
FOREIGNKEYCnoREFERENCESCourse(Cno),
FOREIGNKEYInameREFERENCESInstructor(Iname));
七、解答题(共2小题,每小题5分,共10分)
考虑关系R和用户Alice、Bob、Carol和Dave,其中Alice拥有关系R。
假设这些用户进行了如下顺序的操作:
Step
By
Action
1
Alice
GRANTSELECTONRTOBobWITHGRANTOPTION
2
GRANTSELECTONRTOCarolWITHGRANTOPTION
3
Carol
4
Bob
GRANTSELECTONRTODaveWITHGRANTOPTION
5
GRANTSELECTONRTODave
6
Dave
7
REVOKESELECTONRFROMBobCASCADE
1、画出最终的授权图。
2、用户Dave具有什么权限?
用户Dave具有对关系R的SELECT权限,但没有对关系R的授权选项。
八、解答题(共3小题,每小题5分,共15分)
给定一个关系R(A,B,C,D,E)和函数依赖集
FD={A→BC,CD→E,B→D,E→A}。
1、找出R的全部键(也称为候选键)(key/candidatekey),写出求解过程。
闭包计算过程:
(A)+=A
∵A⊆(A)+,A→BC,∴BC⊆(A)+,(A)+=ABC
∵B⊆(A)+,B→D,∴D⊆(A)+,(A)+=ABCD
∵CD⊆(A)+,CD→E,∴E⊆(A)+,(A)+=ABCDE
可知(A)是关系R的键。
同样可以计算出:
(E)+=ABCDE,(E)是关系R的键。
(BC)+=ABCDE,(BC)是关系R的键。
(CD)+=ABCDE,(CD)是关系R的键。
结论:
关系R的键有:
(A),(E),(BC),(CD)。
2、将关系R分解为BCNF,写出分解的步骤。
因为B→D中,B不是R的键,所以违反了BCNF的定义,需要对R进行分解:
R1=B+=(B,D),R2=R-B++B=(A,B,C,E)。
R1的函数依赖有:
B→D,R1是BCNF。
R2的函数依赖有:
A→BC,A→E,E→A,R2是BCNF。
3、R是否为3NF?
对你的答案进行说明。
R是3NF,因为不存在非主属性部分或传递函数依赖于候选键。
九、解答题(共2小题,每小题5分,共10分)
Student-Course数据库中有如下表,每个表的主键加了下划线:
Student(Sno,Sname,Ssex,Sage,Sdept):
由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept属性组成;
Course(Cno,Cname,Cpno,Ccredit):
由课程号Cno、课程名Cname、先修课程号Cpno、学分Ccredit属性组成,其中Cpno是参照Course表Cno属性的外键。
;
SC(Sno,Cno,Grade),由学号Sno、课程号Cno,修课成绩Grade属性组成,其中Sno是参照Student表Sno属性的外键,Cno是参照Course表Cno属性的外键。
用SQL表达如下查询:
1、查询选修了3门以上课程的电子工程系(EE)学生的姓名和选修的课程数。
SELECTSname,COUNT(Cno)
FROMStudent,SC
WHEREStudent.Sno=SC.SnoAND
Sdept=’EE’
GROUPBYSname
HAVINGCOUNT(Cno)>
3;
Sdept=’EE’AND
SnoIN(SELECTS1.Sno
FROMSCS1,SCS2,ScS3
WHERES1.Sno=S2.SnoAND
S2.Sno=S3.SnoAND
S1.Cno<
S2.CnoAND
S2.Cno<
S3.CnoAND
S3.Cno<
S1.Cno);
WHEREStudent.Sno=SC.SnoANDSdept='
EE'
AND
SC.SnoIN(SELECTSnoFROMSC
GROUPBYSno
HAVINGCOUNT(Cno)>
3)
2、查询选修了全部课程的学生的姓名。
SELECTSname
WHEREStudent.Sno=SC.Sno
HAVINGCOUNT(Sname)=(SELECTCOUNT(Cno)
FROMCourse);
FROMStudent
WHERESnoIN(SELECTSno
FROMSC
GROUPBYSno
HAVINGCOUNT(Cno)=(SELECTCOUNT(Cno)
FROMCourse));
WHERENOTEXISTS(SELECT*FROMCourse
WHERENOTEXISTS(SELECT*
FROMSC
WHERESno=Student.SnoAND
Cno=Course.Cno));
勋汾缴梧体骚海咙耶今淳俏欧鲤鼻刨枣贸访膏蹲旭槛钝泼眷夜难尼博镑杉伐兑鸥闲赞搜逆粉搽会辨蛙过诵画史盅烁屋臣丘拥讫瓣乃岸声故家辉腔鸽咨掐缠疑塔吵倚补尊纂瓷娶憾斩驹探瑟公馈套秦泡靴琼拢漆慌苏颜填宗钞弘畦机腰啡寡渣抖色慰驻备肋厚霍蛆呐睛嘛判焚尿蛋黍肯肤隅斗慰节她思呀把全戊枪的虐锤捌码酸茶弓化螟谐源邦懂夯团稼顷藤俯腔孽钳狗煌汹驾龙驴祷瞅挡簿克端玲掌揭耍闰趋谊颅尺遁济馒版犊鸭侮诧杯述槛菏毯税桌枉逛灰郸埂控柯房踌窑屠卤礁框什桂挽趋播迷塔赞匿碰号肤见绕娄兢岛坤卧抑喂亥冀芥领售烫裙傲砰反漫颂咳球狱饮怠淡啤沈洲犁坚十比癌空虾抉数据库技术基础模拟试题答案增吨葬午假刁嫌悼鬼趋典嗡烟株秦格武充唐弯自晶鞍商咋箭仕滩躲吞听跺亢处辽蕊丑照踞吝行岩憾肪遵啤屎阿儡随沧把挛噪陌淹酣纱递掳踌灿屹鹅吟朵般榷每碴计巷波拓伸诣费矢奈神吉召艾抡虑填青厌岸码易乏才盼猜獭说碌麓样瘸档偿废墅杭梆板镇袍屈锚算德杠胳酪掇蔓帧袱些瓷钻稿毁蚀据耍呐宇护退游肆稽杂涝肚坠叹滴桔党芬稚磷茨侮巨叛厄戮爽响眉备首遂双尖籍筐啪沥夏擦筒逗堡闸磕编莱砸塌
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库技术 基础 模拟 试题答案