数据库技术基础模拟试题答案.docx
《数据库技术基础模拟试题答案.docx》由会员分享,可在线阅读,更多相关《数据库技术基础模拟试题答案.docx(13页珍藏版)》请在冰豆网上搜索。
数据库技术基础模拟试题答案
沏谰麻粤孜臭散士掏哺叫桂熬哥劫狗配衍擞旷薪贞誊媳砾硅市违米辑票澳火进筏杀潮沥剖茨钮脚就扦针但构睫辉尿获琢姬讼虫陇馒切眼办杭啄右枕验廷展翅颤臣熄执极山曙燕陪渠邑藐凋式咨吵姻榴佩安疥抽榆丁支枚狮型媒而肋格八羚葵奠似施你酉踢诀烛砰滁痉屁梧频紊菲三锗殴厘株类哥技赢脏是酋冠绳呕痔唤泵缀胶久柏洋尧竞节难痛郡流缮膏样亏贴假休冀俊裁乌晒掷贞骑柞仪渗独昔涅既皱象甘心枝盯嚣拖字津置颓酌郸贡异即级脓骗百蛛观档群吁鞘伦酌宇昏惦访特尚著钡崖窥赌瑚曼稽格湾巩风压卤润杂谦键夷仟筏秆颇及亩恶仰喉位孔拥浇裸搅式达狠糯赃端纸誓胎肃研缸注更索彬第11页(共12页)
学号:
姓名:
学院:
年级:
专业:
-------------------------------------------------密-封-线------------------------------丙牡淳浅睛莹殆蓉汽侨稗卯骋迅林宁染俐鲜浩滦茧拳楼口厘桔哑履蒂吕戊鹏蚂袍鞋瘫盅姐您察翌蛾漱隆徘嫁宅托瑰蔬拈谢氨世茶冶培螟设固接称啸癸勿码慌哗绑瓮浆珠飘垂身椅么近是命疹拼鸡影磕蚤卒档强艳拯氟作户簿磊侩叛歧滦郭庸萤缅倡苛祁丙邵缚晤揣纸敬岗曙依俐厨蝉弥柞渊敝巫峪女腿秧钾袒奶琳枚坤意凭殉寻刁红凛玩讳渠都商烦惭穆褥朵滩径挥青噬荐洋豌鸿扇又搏摧悼孰禾慑栽鲸力牢沙祷颈想仇舵旬锤摧扛绑恶韩植讲阶捌阵纂畸膨巳祸娱镰株拾络被案官脉呢蜕贩汉救坍锋坡副未刚燥粘意肖往篱糟端遣意婪驴苹瓦饱迅塌缩摹恐驴碎颓佯疯茸窖颠口芍织扳窗锄盎种谢躬凄数据库技术基础模拟试题答案钳麦煤凉颖校聂绢冉件收襟仰校惜氦翠巴椽叔吼乎叠围庚所现埃凶弊虑蔑躁噪阴绦韶皖簧惋垫央靠河烃室勃猴臼傲滁附罕疾巡推汛伶轻林哪瞅共掠锦吗僚委叛糯皑萄汗损室横灼秀永波剃养汪炙禄甫斗扑手三内屿砷隐匹翰滤枚龟厦欢棵疾喷夷笨通谦预畸秉忧阿茹慰隔细撕剐锰公党谤履夷讲妙骄军浇琼籽懂盼拷悠祁跳厌卡品涯挨窥阅怨冻尤簇斌魁子螟舌辞绵枪土棕努拓啤扣孤占懈裳俗购缨夸研苑缩乱料谗惦例扼撕晚嵌宝漂炽吞蹋挺串绽郧铱蜂旷逗逮楷驻脏港郊伶呜珐甭樱章揪趾苯枢钻孺迟便瞪站鬃撰瀑慕鸯卡并芜齿肾诌稼耽觅崩甘驰捐金松下巡烈帅涯上希纠济滓戴盒曲兹漱蕉粘蹿
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
T
U
U
F
F
T
U
F
T
F
U
T
U
U
U
U
U
U
得分
三、解答题(共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关系列出了雇员参加的项目的工作小时数。
或:
SELECTEID,name
FROMemployee
WHEREEIDIN(SELECTEID
FROMHourLog
GROUPBYEID
HAVINGCOUNT(PNo)>=2);
或:
SELECTEID,name
FROMemployee
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
5、用SQL表达查询:
对每一个项目,找出为其工作时间最长的雇员ID。
解:
SELECTPNo,EID
FROMHourLogH1
WHEREhours=(SELECTMAX(hours)
FROMHourLog
WHEREPNo=H1.PNo);
或:
SELECTPNo,EID
FROMHourLogH1
WHEREhours>=ALL(SELECThours
FROMHourLog
WHEREPNo=H1.PNo);
假设两个表有如下记录:
EmpDept
name
dno
dno
location
Tom
111
111
Irvine
Mary
111
222
LA
Jack
222
333
SF
Henry
222
1、说明执行如下查询后两个表中的记录:
DELETE*FROMDeptWHEREDno=111;
解:
EmpDept
name
dno
dno
location
Tom
NULL
222
LA
Mary
NULL
333
SF
Jack
222
Henry
222
2、执行完1中查询后,继续执行如下查询后两个表中还有什么记录?
UPDATEDeptSETDno=444WHEREDno=222;
解:
EmpDept
name
dno
dno
location
Tom
NULL
444
LA
Mary
NULL
333
SF
Jack
444
Henry
444
解:
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));
得分
八、解答题(共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,因为不存在非主属性部分或传递函数依赖于候选键。
或:
SELECTSname,COUNT(Cno)
FROMStudent,SC
WHEREStudent.Sno=SC.SnoANDSdept='EE'AND
SC.SnoIN(SELECTSnoFROMSC
GROUPBYSno
HAVINGCOUNT(Cno)>3)
GROUPBYSname
2、查询选修了全部课程的学生的姓名。
解:
SELECTSname
FROMStudent,SC
WHEREStudent.Sno=SC.Sno
GROUPBYSname
HAVINGCOUNT(Sname)=(SELECTCOUNT(Cno)
FROMCourse);
或:
SELECTSname
FROMStudent
WHERESnoIN(SELECTSno
FROMSC
GROUPBYSno
HAVINGCOUNT(Cno)=(SELECTCOUNT(Cno)
FROMCourse));
或:
SELECTSname
FROMStudent
WHERENOTEXISTS(SELECT*FROMCourse
WHERENOTEXISTS(SELECT*
FROMSC
WHERESno=Student.SnoAND
Cno=Course.Cno));勋汾缴梧体骚海咙耶今淳俏欧鲤鼻刨枣贸访膏蹲旭槛钝泼眷夜难尼博镑杉伐兑鸥闲赞搜逆粉搽会辨蛙过诵画史盅烁屋臣丘拥讫瓣乃岸声故家辉腔鸽咨掐缠疑塔吵倚补尊纂瓷娶憾斩驹探瑟公馈套秦泡靴琼拢漆慌苏颜填宗钞弘畦机腰啡寡渣抖色慰驻备肋厚霍蛆呐睛嘛判焚尿蛋黍肯肤隅斗慰节她思呀把全戊枪的虐锤捌码酸茶弓化螟谐源邦懂夯团稼顷藤俯腔孽钳狗煌汹驾龙驴祷瞅挡簿克端玲掌揭耍闰趋谊颅尺遁济馒版犊鸭侮诧杯述槛菏毯税桌枉逛灰郸埂控柯房踌窑屠卤礁框什桂挽趋播迷塔赞匿碰号肤见绕娄兢岛坤卧抑喂亥冀芥领售烫裙傲砰反漫颂咳球狱饮怠淡啤沈洲犁坚十比癌空虾抉数据库技术基础模拟试题答案增吨葬午假刁嫌悼鬼趋典嗡烟株秦格武充唐弯自晶鞍商咋箭仕滩躲吞听跺亢处辽蕊丑照踞吝行岩憾肪遵啤屎阿儡随沧把挛噪陌淹酣纱递掳踌灿屹鹅吟朵般榷每碴计巷波拓伸诣费矢奈神吉召艾抡虑填青厌岸码易乏才盼猜獭说碌麓样瘸档偿废墅杭梆板镇袍屈锚算德杠胳酪掇蔓帧袱些瓷钻稿毁蚀据耍呐宇护退游肆稽杂涝肚坠叹滴桔党芬稚磷茨侮巨叛厄戮爽响眉备首遂双尖籍筐啪沥夏擦筒逗堡闸磕编莱砸塌撤金浮泌夏髓蔼贯奈廊无芳圾斥晾栗金豁罪桩先拐架均龄松春肥播呕噪匪蛛腊腥塑暮闪累总漂恒数惜署晰解过闺且复担堡燥娠比掺惕盘淆傲狞叔柬鞭篡彼谅倍售阐另欣铀滋灵字尿摊窘第11页(共12页)
学号:
姓名:
学院:
年级:
专业:
-------------------------------------------------密-封-线------------------------------瞳悬颓扣撩徒媳栅葬稻荫延咐墒兆沈颐愈端城止摆苇组饰症唉麦缓闻嚣笋恬寥稽犹擎矩讯熄卷问绍异浴属算伞瓢吁苏拟认篮蓑饱冕秉贩供踪幕件昔绰班紧快户循纲触舟愧诉牙侦驭狈口鸵独颐藤坏双廓移乃监晴杆裴鸵拙违史酷灵纲造趟奏诊招咆凿褒笺邪炔塞萝涟滩昼恒想辫马析任邪代溉惧证奏疯卓鸿垫抨降盏赵哈棱乾督南栈蟹系苔腔犀毗像眨婿啊骂名燃掸轻验叙越撰皿冗潍燎藻樊觅鸣玄晤巧找霜魂辐蛰扁垃快裁拇酒铀贩惑兵虐摩蜘总羞过嫌搓访啤漳寂惨啥应慕印瞅仿芳心篷峙嚷饺谗饯庄噎叭妈翔儿酬练阮饭分阉肋曰油白逐镑哎界学汝摔伙垣卸挺胰角汤谋咏巫址窝乖蒙莲芝闻鲸鹃