数据库复习题打印.docx
《数据库复习题打印.docx》由会员分享,可在线阅读,更多相关《数据库复习题打印.docx(36页珍藏版)》请在冰点文库上搜索。
数据库复习题打印
数据库系统原理期末考试样题
综合题
一、设文件F具有10000个记录,每个记录50字节,其中10字节用来表示文件的键值。
每个磁盘块大小1000字节,指向磁盘块的指针占5字节,不允许记录跨两个块。
(1).存放整个文件需要多少个磁盘块?
如果F是顺序文件,查找一个记录需要多少次磁盘I/O?
如果F无序,查找一个记录需要多少次磁盘I/O?
(9分)
(2).如果为文件F建立主索引,索引文件占用多少磁盘块?
利用这个主索引查询需要多少次磁盘I/O?
(6分)
综合题答案
一、答:
1.每个磁盘块能存放记录数:
1000/50=20个。
整个文件占用的磁盘块数:
10000个记录/20个每块=500块。
(3分)
如果F是顺序文件,查找一个记录需要的磁盘I/O数:
log2500=9块。
(3分)
如果F无序,查找一个记录需要的磁盘I/O数:
500/2=250块。
(3分)
2.每个磁盘块能存放记录数:
1000/50=20个。
整个文件占用的磁盘块数:
10000个记录/20个每块=500块。
因为主索引为稀疏索引,数据文件的每个磁盘块对应一个索引项,因此主索引共有500个索引项。
每个索引项存放一个键值指针对,共10+5=15字节。
每个磁盘块能存放索引项个数为1000/15=66个。
因此索引文件占用的磁盘块数为500/66=8块。
(3分)
利用主索引查询,需要读索引文件log28=3块,数据块1块,因此利用这个主索引查询某记录需要3+1=4次磁盘I/O。
(3分)
数据库系统概论期末复习题2
一、(每小题4分,共12分)
用SQL语言定义
1)学生关系S,包括学号SNo、姓名SN、年龄SA、系别SD;
2)课程关系C,包括课程号CNo、课程名CN、学分CC;
3)学生选课关系SC,包括SNo、CNo和成绩G。
注意:
说明主键码和外键码(如果有的话)。
二、(每小题4分,共12分)
按题1的关系模式,用SQL语言
1)对于学生选课关系SC,授予李小兰删除权限以及对SNo和CNo的修改权限;2)删除学号为"9900205”的学生;
3)从学生选课关系SC中,删除王云(学生关系中可能有重名)的所有选课。
三、(共6分)
结合题1的关系模式,用SQL语句查询每个学生的总成绩,输出学号和总成绩,输出时按总成绩排序(升序),若总成绩相同,再按学号排序(降序)。
四、(共6分)
按嵌入式SQL的格式插入任一个商品的商品号、商品名、价格。
五、(每小题4分,共8分)
有关工厂生产产品的数据库,涉及如下数据:
工厂号、工厂名称、地址;
产品号、产品名称、成本;
某工厂生产某产品的数量和日期。
1)设计E/R图;
2)转换成关系模型。
六、(每小题6分,共12分)
有关图书发行的关系模型如下:
书店S(书店号SNo,书店名SN,地址A)
图书B(书号BNo,书名T,作者N,价格P)
图书馆L(馆号LNo,馆名LN,城市C)
图书发行SBL(SNo,LNo,BNo,发行量Q)
分别用1)关系代数和2)SQL语言表达如下查询:
“上海图书馆”(馆名)收藏图书的书名和出售该书的书店名。
七、(每小题8分,共16分)
按题1的学生关系模式,找出不是既大于20岁又属于计算机系的学生。
1)用关系代数表达式表达查询;
2)用数据逻辑规则表达查询。
八、(每小题8分,共16分)
涉及到学生、教师和课程的关系模式STC(SNo,SN,SA,TN,CN,G),其中6个属性分别为学生的学号、姓名、年龄、教师的姓名、课程名以及学生的成绩。
假设学生有重名,课程名也可能有重名。
又假设每个教师只教一门课,但一门课可有几个教师开设。
当某个学生选定某门课后,其上课教师就固定了。
1)写出键码和函数依赖;
2)分解关系模式使之属于BC范式。
九、(每小题6分,共12分)
电影数据库涉及如下数据:
电影类包括电影名、制作年份等属性;
演员类包括姓名、性别等属性;
每部电影都可能有多个演员出演,而每个演员都可能出演多部电影。
1)用ODL给出类的说明(包括范围名);
2)用0QL查询演员孙小华所出演电影的电影名。
答案
—、(每小题4分,共12分)
1)CREATETABLESI
SNoINTPRIMARYKEY,
SNCHAR(30),
SAINT,
SDCHAR(20)
};
2)CREATETABLEC{
CNoINTPRIMARYKEY,
CNCHAR(20),
CCINT
};
3)CREATETABLESC{
SNoINT,
CNoINT,
GINT,
PRIMARYKEY(SNo,CNo),
FOREIGNKEY(SNo)REFERENCESS(SNo),
FOREIGNKEY(CNo)REFERENCESC(CNo)
};
二、(每小题4分,共12分)
1)GRANTDELETE,UPDATE(SNo,CNo)ONSCTO李小兰;
2)DELETEFROMS
WHERESno=9900205;
3)DELETEFROMSC
WHERESNoIN
(SELECTSNo
FROMS
WHERESN=‘王云’
);
三、(共6分)
SELECTSNo,SUM(G)
FROMSC
GROUPBYSNo
ORDERBYSUM(G),SNoDESC
四、(共6分)
1)说明:
EXECSQLBEGINDECLARESECTION;
intpno;
charpn[30];
floatpp[1];
charSQISTATE[6];
EXECSQLENDDECLARESECTION;
2)赋值:
pno:
=20010101;
pn:
‘巧克力’;
pp:
=5.00;
3)插入:
EXECSQLINSERTINTOP
VALUES(:
pno,:
pn,:
pp);
五1)
2)工厂(工厂号,工厂名,地址)
产品(产品号,产品名,单价)
生产(工厂号,产品号,数量,日期)
六、
(每小题6分,共12分)
2)SELECTT,SN
FROML,SBL,B,S
WHEREL.LNo=SBL.LNoANDSBL.BNo=B.BNo
ANDSBL.SNo=S.SNo
ANDL.LN=‘上海图书馆’
八、(每小题8分,共16分)
九、(每小题6分,共12分)
1)interfaceMovie
(extentMovies)
{attributestring'title;
attributeintegeryear;
relationshipSetatcs
inverseAct:
:
starredIn;
};
intefaceAct
(extentActs)
{attributestringname;
attributecharsex;
relationshipSet〈Movie〉starredIn
inverseMovie:
:
acts;
};
2)SELECTm.title
FROMActsa,a.starredInm
WHEREa.name=‘孙小华’;
1.设有一个学生课程数据库,包括学生关系Student、课程关系Course、选修关系SC,图1所示:
Student
ѧºÅ
Sno
ÐÕÃû
Sname
ÐÔ±ð
Ssex
ÄêÁä
Sage
ËùÔÚϵ
Sdept
95001
ÀîÓÂ
ÄÐ
20
CS
95002
Áõ³¿
Å®
19
IS
95003
ÍõÃô
Å®
18
MA
95004
ÕÅÁ¢
ÄÐ
19
IS
Course
¿Î³ÌºÅ
Cno
¿Î³ÌÃû
Cname
ÏÈÐпÎ
Cpno
ѧ·Ö
Ccredit
1
Êý¾Ý¿â
5
4
2
Êýѧ
2
3
ÐÅϢϵͳ
1
4
4
²Ù×÷ϵͳ
6
3
5
Êý¾Ý½á¹¹
7
4
6
Êý¾Ý´¦Àí
2
7
PASCALÓïÑÔ
6
4
SC
ѧºÅ
Sno
¿Î³ÌºÅ
Cno
³É¼¨
Grade
95001
1
92
95001
2
85
95001
3
88
95002
2
90
95002
3
80
图1 学生-课程数据库
写出完成下列要求的SQL语句:
1)查询所有年龄在20岁以下的学生姓名与年龄。
2)查询年龄不在20~23(包括20岁和23岁)之间的学生的姓名、系别和年龄。
3)查询每个学生及其选修课程的情况。
2.把下面用关系表示的实体、实体与实体之间的联系,用E-R图表示出来,要求在图中表示联系的类型(1∶1、1∶n、m∶n)。
实体1:
学生(学号,姓名,性别,年龄)
关键字为:
学号
实体2:
课程(课程号,课程名,学分数)
关键字为:
课程号
实体1与实体2的联系:
学习(学号,课程号,成绩)
关键字为:
学号+课程号
注:
一个学生可以选多门课程,一门课程也可以被多个学生选,
学生选课后有成绩。
五、综合题(每小题10分,共20分)
1.1)selectSname,SagefromStudentwhereSage<20;或
selectSname,SagefromStudentwherenotSage>=20;
2)selectSname,Sdept,Sage
fromStudent
whereSagenotbetween20and23;
3)selectStudent.*,SC.*
fromStudent,SC
whereStudent.Sno=SC.Sno;
六、假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
要求:
根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;
解答:
3、设有如下关系表R:
R(No,NAME,SEX,AGE,CLASS)
主关键字是NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
写出实现下列功能的SQL语句。
①插入一个记录(25,“李明”,“男”,21,“95031”);。
②插入“95031”班学号为30、姓名为“郑和”的学生记录;。
③将学号为10的学生姓名改为“王华”;。
④将所有“95101”班号改为“95091”;。
⑤删除学号为20的学生记录;。
⑥删除姓“王”的学生记录;。
答案:
①INSERTINTORVALUES(25,“李明”,“男”,21,“95031”)
②INSERTINTOR(NO,NAME,CLASS)VALUES(30,“郑和”,“95031”)
③UPDATERSETNAME=“王华”WHERENO=10
④UPDATERSETCLASS=“95091”WHERECLASS=“95101”
⑤DELETEFROMRWHERENO=20
⑥DELETEFROMRWHERENAMELIKE“王%”
1、设学生课程数据库中有三个关系:
学生关系S(S#,SNAME,AGE,SEX)
学习关系SC(S#,C#,GRADE)
课程关系C(C#,CNAME)
其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。
用SQL语句表达下列操作
(1)检索选修课程名称为“MATHS”的学生的学号与姓名
(2)检索至少学习了课程号为“C1”和“C2”的学生的学号
(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄
(4)检索平均成绩超过80分的学生学号和平均成绩
(5)检索选修了全部课程的学生姓名(6)检索选修了三门课以上的学生的姓名
答案
(1)SELECTSNAME,AGEFROMS,SC,CWHERES.S#=SC.S#
ANDC.C#=SC.C#ANDCNAME=’MATHS’
(2)SELECTS#FROMSCWHERECNO=’C1’ANDS#IN(SELECTS#
FROMSCWHERECNO=’C2’)
(3)SELECTS#,SNAME,AGEFROMSWHEREAGEBETWEEN18AND20
(4)SELECTS#,AVG(GRADE)‘平均成绩FROMSCGROUPBYS#HAVINGAVG(GRADE)>80
(5)SELECTSNAMEFROMSWHERENOTEXISTS
(SELECT*FROMCWHERENOTEXISTS
(SELECT*FROMSCWHERES#=S.S#ANDC#=C.C#))
(6)SELECTSNAMEFROMS,SCWHERES.S#=SC.S#GROUPBYSNAMEHAVINGCOUNT(*)>3
2、设学生-课程数据库中包括三个表:
学生表:
Student(Sno,Sname,Sex,Sage,Sdept)
课程表:
Course(Cno,Cname,Ccredit)
学生选课表:
SC(Sno,Cno,Grade)
其中Sno、Sname、Sex、Sage、Sdept、Cno、Cname、Ccredit、Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。
试用SQL语言完成下列项操作:
(1)查询选修课程包括“1042”号学生所学的课程的学生学号
(2)创建一个计科系学生信息视图S_CS_VIEW,包括Sno学号、Sname姓名、Sex性别;
(3)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平
(4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。
答案:
(1)SELECTDISTINCTSNOFROMSCSCXWHERENOTEXISTS
(SELECT*FROMSCSCYWHERESCY.SNO='1042'ANDNOTEXISTS
(SELECT*FROMSCSCZWHERESCZ.SNO=SCX.SNOANDSCZ.CNO=SCY.CNO));
(2)CREATEVIEWS_CS_VIEWASSELECTSNO,SNAME,SEXFROMSTUDENTWHERESdept=’CS’
(3)UPDATES_CS_VIEWSETSNAME=’王慧平’WHERESNAME=’王平’
(4)CREATEVIEWdatascore_viewASSELECTSNO学号、SNAME姓名、GRADE成绩
FROMSTUDENT,SC,COURSEWHERESTUDENT.SNO=SC.SNOANDCOURSE.CNO=SC.CNOANDCNAME=‘数据库’
1、平凡的函数依赖
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但YÍX,则称X→Y是非平凡的函数依赖
2、非平凡的函数依赖
在关系模式R(U)中,对于U的子集X和Y,
若X→Y,但YÍX,则称X→Y是平凡的函数依赖
四、综合练习
1、已知学生关系模式
S(Sno,Sname,SD,Sdname,Course,Grade)
其中:
Sno学号、Sname姓名、SD系名、Sdname系主任名、Course课程、Grade成绩。
(1)写出关系模式S的基本函数依赖和主码。
(2)原关系模式S为几范式?
为什么?
分解成高一级范式,并说明为什么?
(3)将关系模式分解成3NF,并说明为什么?
(1)写出关系模式S的基本函数依赖和主码。
答:
关系模式S的基本函数依赖如下:
Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course)→Grade
关系模式S的码为:
(Sno,Course)。
(2)原关系模式S为几范式?
为什么?
分解成高一级范式,并说明为什么?
答:
原关系模式S是属于1NF的,码为(Sno,Course),非主属性中的成绩完全依赖于码,而其它非主属性对码的函数依赖为部分函数依赖,所以不属于2NF。
消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:
S1(Sno,Sname,SD,Sdname)
S2(Sno,Course,Grade)
(3)将关系模式分解成3NF,并说明为什么?
答:
将上述关系模式分解成3NF如下:
关系模式S1中存在Sno→SD,SD→Sdname,即非主属性Sdname传递依赖于Sno,所以S1不是3NF。
进一步分解如下:
S11(Sno,Sname,SD)S12(SD,Sdname)
分解后的关系模式S11、S12满足3NF。
对关系模式S2不存在非主属性对码的传递依赖,故属于3NF。
所以,原模式S(Sno,Sname,SD,Sdname,Course,Grade)按如下分解满足3NF。
S11(Sno,Sname,SD)
S12(SD,Sdname)
S2(Sno,Course,Grade)
2、设有如下关系R:
(1)它为第几范式?
为什么?
(2)是否存在删除操作异常?
若存在,则说明是在什么情况下发生的?
(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?
(1)它为第几范式?
为什么?
解:
它是2NF。
因为R的候选关键字为“课程名”。
依赖关系:
课程名→教师名,教师名→课程名,教师名→教师地址,所以课程名→教师地址。
即存在非主属性“教师地址”对候选关键字课程名的传递函数,因此R不是3NF。
但:
因为不存在非主属性对候选关键字的部分函数依赖,所以R是2NF。
(2)是否存在删除操作异常?
若存在,则说明是在什么情况下发生的?
解:
存在。
当删除某门课程时会删除不该删除的教师的有关信息。
(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?
解:
分解为高一级范式如图所示。
R1如下:
R2如下:
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
3、设某商业集团数据库中有一关系模式R如下:
R(商店编号,商品编号,数量,部门编号,负责人)
如果规定:
(1)每个商店的每种商品只的在一个部门销售;
(2)每个商店的每个部门只有一个负责人;(3)每个商店的每种商品只有一个库存数量。
试回答下列问题:
(1)根据上述规定,写出关系模式R的基本函数依赖;
答:
关系模式S的基本函数依赖如下:
(商店编号,商品编号)→部门编号,(商店编号,部门编号)→负责人,(商店编号,商品编号)→数量
(2)找出关系模式R的候选码;答:
关系模式R的码为:
(商店编号,商品编号,部门编号)。
(3)试问关系模式R最高已经达到第几范式?
为什么?
答:
原关系模式R是属于1NF的,码为(商店编号,商品编号,部门编号),非主属性对码的函数依赖全为部分函数依赖,所以不属于2NF。
消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:
R1(商店编号,商品编号,部门编号,数量)
R2(商店编号,部门编号,负责人)
(4)如果R不属于3NF,请将R分解成3NF模式集。
答:
将R分解为
R1(商店编号,商品编号,部门编号,数量)
R2(商店编号,部门编号,负责人)
分解后的R不存在传递的函数依赖,所以分解后的R已经是第3NF。
5、请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:
读者
号,姓名,地址,性别,年龄,单位。
对每本书存有:
书号,书名,作者,出版社。
对
每本被借出的书存有读者号、借出日期和应还日期。
要求:
给出E一R图,再将其转换为关系模型。
答:
关系模型为:
读者(读者号,姓名,地址,性别书(书号,书名,作者,出版社)借书
(读者号,书号,借出日期,年龄,单位)应还日期)
综合题
•1、假设某商业集团数据库中有一关系模式R如下:
•R(商店编号,商品编号,数量,部门编号,负责人)
•如果规定:
•
(1)每个商店的每种商品只在一个部门销售;
•
(2)每个商店的每个部门只有一个负责人;
•(3)每个商店的每种商品只有一个库存数量。
•试回答下列问题:
•
(1)根据上述规定,写出关系模式R的基本函数依赖;
(商店编号,商品编号)→部门编号
(商店编号,商品编号)→数量
(商店编号,部门编号)→负责人
•
(2)找出关系模式R的候选码;
候选码(商店编号,商品编号)
•(3)试问关系模式R最高已经达到第几范式?
为什么?
1NF,存在部分函数和传递函数依赖。
•(4)如果R不属于3NF,请将R分解成3NF模式集。
R1(商店编号,商品编号,商品库存数量,部门编号);R2(商店编号,负责人)
2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。
•学生:
学号、姓名、出生年月、系名、班号、宿舍区。
•班级:
班号、专业名、系名、人数、入校年份。
•系:
系名、系号、系办公地点、人数。
•学会:
学会名、成立年份、办公地点、人数。
•语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
•请给出关系模式,写出每个关系模式的极小函数依赖集,