%
数据库系统概论复习资料:
第一章
假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
)
要求:根据上述语义画出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 | sql统计每个系的学生人数 f |
)
3、已知关系r、s、w,如下图所示,计算T=( (r ∪s)÷w) S。
r关系 s关系 w关系
|
|
* | ||||||||||||||||||||||||||||||||||||||||||||
答:步骤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的学生记录;
·
⑥删除姓“王”的学生记录;
答案:
①INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”)
②INSERT INTO R(NO,NAME,CLASS) VALUES(30,“郑和”,“95031”)
③UPDATE R SET NAME=“王华”WHERE NO=10
④UPDATE R SET CLASS=“95091”WHERE CLASS=“95101”
⑤DELETE FROM R WHERE NO=20
⑥DELETE FROMR WHERE NAME LIKE“王%”
—
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)将一个新学生元组(学号:8;姓名:王丽;年龄:19;性别:女)插入到S表中
(5)将选修课程号为“C1”的同学成绩加5分
(6)出每个学生超过他选修课程平均成绩的课程号
(7)查询查询选修“C2”号课程且成绩在90分以上的所有学生。
(8)查询所有姓刘的学生的姓名、学号和性别
(9)检索平均成绩超过80分的学生学号和平均成绩
(10)检索选修了全部课程的学生姓名
【
(11)检索选修了三门课以上的学生的姓名
(12)创建视图stu_info,包括选修“C1”号课程所有学生的学号、姓名、性别、年龄、选修课程号、课程名、成绩
答案:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论