当前位置:首页 > 数据库第二章关系代数习题
1.设有如图所示的关系S、SC和C,试用关系代数表达式表示下列查询语句:
S
C
S# 1 2 5 2 5 5 SC
C# k1 k1 k1 k5 k5 k8 S# SNAME AGE SEX 1 2 5 李强 刘丽 张友 C# k1 CNAME C语言 TEACHER 王华 程军 程军 GRADE 83 85 92 90 84 80 23 22 22 男 女 男 k5 数据库原理 k8 编译原理 (1) 检索”程军”老师所授课的课程号(C#)和课程名(CNAME)。
∏C#,CNAME(δ∏S#,SNAME(δ
TEACHER=程军
(C)) (S))
TEACHER=程军
(2) 检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
AGE>21∧SEX=男
(3) 检索至少选修”程军”老师所授全部课程的学生姓名(SNAME)。
∏SNAME((∏S#,C#(SC)÷∏C#(δ
(4) 检索”李强”同学不学课程的课程号(C#)。
(C)))
S)
∏C#(C)-∏C#(δ∏S#(δ
SNAME=李强
(S)SC)
(5) 检索至少选修两门课程的学号(S#)。
1=4∧2≠5(SC×SC))
(6) 检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
∏C#,CNAME(∏S#,C#(SC)÷∏S#(S)C)
(7) 检索选修课程包含”程军”老师所授课程之一的学生学号(S#)。
∏C#(δ
TEACHER=程军
(C)SC)
C#=k1∨C#=k5
(8) 检索选修课程号为k1和k5的学生学号(S#)。
∏S#,C#(SC)÷∏C#(δ(C))
(9) 检索选修全部课程的学生姓名(SNAME)。
∏SNAME((∏S#,C#(SC)÷∏C#(C))S)
(10) 检索选修课程包含学号为2的学生所选修课程的学生学号(S#)。
∏S#,C#(SC)÷∏C#(δ
S#=2
(SC))
(C)))S) (SC))S)
(11) 检索选修课程名为”C语言”的学生学号(S#)和姓名(SNAME)。
∏S#,SNAME(∏S#(SC(δ
CNAME=C语言
(12)检索没有一门课程成绩不及格的学生学号,姓名。
∏S#,SNAME((∏S#(S)-∏S#(δ
GRADE<60
2.现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)。 课程(课程号,名称,学分)。
学习(学号,课程号,分数)。
用关系代数表达式实现下列1-4小题:
1. 检索\英语\专业学生所学课程的信息,包括学号、姓名、课程名和分数。
∏学号,姓名,课程,分数(δ∏学号,姓名,专业,分数(δ习))
专业=英语
(学生?课程?学习))
(课程?学生?学
(学习)
2. 检索\数据库原理\课程成绩高于90分的所有学生的学号、姓名、专业和分数。
名称=数据库原理∧分数>90
3. 检索不学课程号为\课程的学生信息,包括学号,姓名和专业。
∏学号,姓名,专业(学生)- ∏学号,姓名,专业(δ?学生)
课程号=C135
4. 检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业。
∏学号,姓名,专业(学生)- ∏学号,姓名,专业(δ学生))
3.现有关系数据库如下:
学生(学号,姓名,性别,专业、奖学金)。 课程(课程号,名称,学分)。 学习(学号,课程号,分数)。
用关系代数表达式实现下列1—4小题:
分数<60
(学习?
1. 检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数。
∏学号,姓名,课程名,分数(δ习))
∏课程号,名称,学分((δ∏学号,姓名,专业(δ
专业=国际贸易∧奖学金>0
(学生?课程?学
2. 检索学生成绩得过满分(100分)的课程的课程号、名称和学分。
分数=100
(学习))?课程) (学生?学习))
分数<80
3. 检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业。
奖学金<=0∧分数>95
4. 检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业。
∏学号,姓名,专业(学生)- ∏学号,姓名,专业(δ学习))
(学生?
4. 设有关系S、SC和C,试用关系代数表达式完成下列操作。 S(snum,sname,age,sex),例:(1,“李强”,23,‘男’)是一条数据记录。SC(snum,cnum,score), 例:(1,“C1”,83)是一条数据记录。C(cnum,cname,teacher) 例:(“C1”,“数据库原理”,“王华”)是一条数据记录。
(1) 检索“刘祥”同学不学课程的课程号。
∏cnum(C)-∏cnum(δ∏sname(δ
sname=刘祥
(S?SC))
(2) 检索有一门课程成绩在90分以上的男同学的姓名。
score>90∧sex=男
(S?SC))
(C?SC?S))
(C))?S)
(3) 列出没有选修“人工智能”的学生名单。
∏sname(S)-∏sname(δ
cname=人工智能
(4) 找出选修了袁老师教的所有课程的学生名单。
∏sname(∏snum,cnum(SC)÷∏cnum(δ∏sname-∏sname(δ
teacher=袁老师
(5) 查找每门课程成绩在70分以上并且平均成绩在75分以上的学生名单。
score<=70∨avg(score)<=75
(SC?S))
5.数据模型如下:
厂家S(SNO,SNAME,STATUS,CITY) 产品P(PNO,PNAME,WEIGHT,COLOR) 工程J(JNO,JNAME,CITY)
供货SPJ(SNO,PNO,JNO,QTY) 用关系代数写出下述操作.
1. 给出为工程J1供货的厂商号.
∏SNO(δδ
JNO=J1
(SPJ)) (SPJ) (S))?(δ
(J))?SPJ)
2. 给出供货量在300~500之间的所有供货情况.
QTY>=300∧QTY<=500
3. 给出由LONDON的厂商供给LONDON的工程的产品号.
∏ PNO((δ
CITY=LONDONCITY=LONDON
4. 给出满足如下条件的所有产品号:提供该零件的厂商和使用该零件的工程在同一城市.
∏PNO((∏SNO,CITY(S))?(∏JNO,CITY(J))?SPJ)
5. 给出由S1提供产品的工程名.
∏JNAME((δ
SNO=S1
(SPJ))?J)
(P)))?(∏SNO,PNO(SPJ)))
6. 给出使用了由供应红色产品的厂商供应的产品的工程名.
∏JNAME(∏SNO((∏PNO(δ
COLOR=红色
?SPJ?J)
7. 求使用了全部零件的工程名.
∏JNAME(∏PNO,JNO(SPJ)÷∏PNO(P)?J)
8. 供应P1,P2两种产品的厂家名.
∏SNAME(∏SNO(δ
2=P1∧6=P2∧1=5
(SPJ×SPJ))?S)
9. 显示与”TV”颜色相同的产品名.
∏PNAME(∏COLOR(δ
PNAME=TV
(P))?P)
(SPJ)))?J)
10. 给出使用了S1所提供的全部零件的工程名.
∏JNAME((∏JNO,PNO(SPJ)÷∏PNO(δ
SNO=S1
6.设教学数据库中有三个关系:
S(SNO,SNAME,AGE,SEX,SDEPT) SC(SNO,CNO,GRADE) C(CNO,CNAME,TNAME)
试用关系代数表达式表示下列查询语句:
① 查询LIU老师所授课程的课程号,课程名
∏CNO,CNAME(δ∏SNO,SNAME(δ
TNAME=LIU
(C)) )
② 查询年龄大于23岁的男生的学号与姓名
AGE>23∧SEX=男
③ 查询学号为S3学生所学课程的课程名与任课教师名
∏CNAME,TNAME((δ
SNO=S3
(SC))?C)
④ 查询选修LIU老师所授课程中一门课的女学生姓名
∏SNAME(δ
TNAME=LIU
(C?SC)?δ
SEX=女
(S))
⑤ 查询WANG同学不学的课程的课程号
∏CNO(C)-∏CNO(δ∏SNO(δ
1=4∧2≠5
SNAME=WANG
(S)?SC)
⑥ 查询至少选修两门课程的学生学号
(SC×SC)) (SC)÷δ
(S))?C)
⑦ 查询全部学生都选修的课程的课程号和课程名
∏CNO,CNAME((δ
SNO,CNOSNO
⑧ 查询选修课程包含LIU老师所授课程的学生学号
∏SNO,CNO(SC)÷∏CNO(δ
TNAME=LIU
(C))
共分享92篇相关文档