大数据库系统概论习地训练题目及答案详解其它地训练题目.docx
- 文档编号:3269001
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:9
- 大小:35.51KB
大数据库系统概论习地训练题目及答案详解其它地训练题目.docx
《大数据库系统概论习地训练题目及答案详解其它地训练题目.docx》由会员分享,可在线阅读,更多相关《大数据库系统概论习地训练题目及答案详解其它地训练题目.docx(9页珍藏版)》请在冰豆网上搜索。
大数据库系统概论习地训练题目及答案详解其它地训练题目
数据库系统概论复习资料:
第一章
假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
要求:
根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;
解答:
第2章关系数据库
1、设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。
(4)检索”李强”同学不学课程的课程号(C#)。
(5)检索至少选修两门课程的学生学号(S#)。
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。
(8)检索选修课程号为k1和k5的学生学号(S#)。
(9)检索选修全部课程的学生姓名(SNAME)。
(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
解:
本题各个查询语句对应的关系代数表达式表示如下:
(1).∏C#,CNAME(σTEACHER=‘程军’(C))
(2).∏S#,SNAME(σAGE>21∧SEX=”男”(C))
(3).∏SNAME{s
[∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]}
(4).∏C#(C)-∏C#(σSNAME=‘李强’(S)
SC)
(5).∏S#(σ[1]=[4]∧[2]≠[5](SC×SC))
(6).∏C#,CNAME(C
(∏S#,C#(sc)÷∏S#(S)))
(7).∏S#(SC
∏C#(σTEACHER=‘程军’(C)))
(8).∏S#,C#(sc)÷∏C#(σC#=’k1’∨C#=’k5’(C))
(9).∏SNAME{s
[∏S#,C#(sc)÷∏C#(C)]}
(10).∏S#,C#(sc)÷∏C#(σS#=’2’(SC))
(11).∏S#,SNAME{s
[∏S#(SC
σCNAME=‘C语言’(C))]}
2、关系R和S如下图所示,试计算R÷S。
R
A
B
C
D
a
b
c
d
a
b
e
f
a
b
h
k
b
d
e
f
b
d
d
l
c
k
c
d
c
k
e
f
S
C
D
c
d
e
f
3、已知关系r、s、w,如下图所示,计算T=((r∪s)÷w)
S。
r关系 s关系 w关系
A
B
C
1
b
2
2
a
3
1
b
1
3
a
2
A
B
C
2
b
1
3
b
1
3
a
1
3
a
2
B
C
a
2
b
1
答:
步骤1:
计算出新关系R1=r∪s
R1=
A
B
C
1
b
2
2
a
3
1
b
1
3
a
2
2
b
1
3
b
1
3
a
1
步骤2:
计算出新关系R2=R1÷w
R2=
A
3
步骤3:
计算出新关系R3=R2
s
R3=
A
B
C
3
b
1
3
b
2
3
a
2
即T=R3=(r∪s)÷w)
s
4、设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式(具体见教材74页第5题):
1)求供应工程J1零件的供应商号码SNO:
πSno(σJno=‘J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO:
πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:
πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))
4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))
第3章关系数据库标准语言SQL
1、设有如下关系表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“王%”
2、设学生课程数据库中有三个关系:
学生关系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)将一个新学生元组(学号:
200215128;姓名:
王丽;年龄:
19;性别:
女)插入到S表中
(5)将选修课程号为“C1”的同学成绩加5分
(6)找出每个学生超过他选修课程平均成绩的课程号
(7)查询查询选修“C2”号课程且成绩在90分以上的所有学生。
(8)查询所有姓刘的学生的姓名、学号和性别
(9)检索平均成绩超过80分的学生学号和平均成绩
(10)检索选修了全部课程的学生姓名
(11)检索选修了三门课以上的学生的姓名
(12)创建视图stu_info,包括选修“C1”号课程所有学生的学号、姓名、性别、年龄、选修课程号、课程名、成绩
答案:
(1)SELECTSNAME,AGE
FROMS,SC,C
WHERES.S#=SC.S#
ANDC.C#=SC.C#
ANDCNAME=’MATHS’
(2)SELECTS#
FROMSC
WHERECNO=’C1’ANDS#IN(SELECTS#
FROMSC
WHERECNO=’C2’)
(3)SELECTS#,SNAME,AGE
FROMS
WHEREAGEBETWEEN18AND20
(4)INSERTINTOS(S#,SNAME,AGE,SEX)
VALUES(“200215128”,”王丽”,19,”女”);
(5)updatesc
Setgrade=grade+5
Wherec#=‘C1’;
(6)selects#,c#
FromSxwheregrade>=(selectavg(grade)fromcywherey.S#=x.s#);
(7)selects.s#,snamefroms,scwheres.s#=sc.s#andsc.c#=’C2’andsc.grade>90;
(8)selectsname,s#,sexfromswherelike‘刘%’;
(9)SELECTS#,AVG(GRADE)‘平均成绩’
FROMSC
GROUPBYS#
HAVINGAVG(GRADE)>80
(10)SELECTSNAME
FROMS
WHERENOTEXISTS
(SELECT*
FROMC
WHERENOTEXISTS
(SELECT*
FROMSC
WHERES#=S.S#ANDC#=C.C#
)
)
(11)SELECTSNAME
FROMS,SC
WHERES.S#=SC.S#
GROUPBYSNAME
HAVINGCOUNT(*)>3
(12)CREATEVIEWstu_infoAS
SELECTs.sno,sname,sex,age,o,cname,grade
Froms,sc,c
wheres.sno=sc.snoando=oando=‘C1’
3、设学生-课程数据库中包括三个表:
学生表:
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)SELECTDISTINCTSNO
FROMSCSCX
WHERENOTEXISTS
(SELECT*
FROMSCSCY
WHERESCY.SNO='1042'AND
NOTEXISTS
(SELECT*
FROMSCSCZ
WHERESCZ.SNO=SCX.SNOAND
SCZ.CNO=SCY.CNO));
(2)CREATEVIEWS_CS_VIEW
AS
SELECTSNO,SNAME,SEX
FROMSTUDENT
WHERESdept=’CS’
(3)UPDATES_CS_VIEW
SETSNAME=’王慧平’
WHERESNAME=’王平’
(4)CREATEVIEWdatascore_view
AS
SELECTSNO学号、SNAME姓名、GRADE成绩
FROMSTUDENT,SC,COURSE
WHERESTUDENT.SNO=SC.SNO
ANDCOURSE.CNO=SC.CNO
ANDCNAME=’数据库’
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 训练 题目 答案 详解 其它