题目
设学生管理系统中有以下三个关系:S (sno, sname, ssex, sage, sdept)C (cno, cname, cpno, ccredit)SC (sno, cno, grade)其中, S 为学生表, 各属性含义如下:Sno-学号, sname-姓名, ssex-性别, sage-年龄, sdept-专业C 为课程表, 各属性含义如下:Cno-课程号, cname-课程名, cpno-先修课程号, ccredit-学分SC 为选修表, 各属性含义如下:Sno-学号, Cno-课程号, grade-成绩使用关系代数[1]语言完成以下查询:查询选修课成绩大于 90 分的男生的学号和姓名
设学生管理系统中有以下三个关系: S (sno, sname, ssex, sage, sdept) C (cno, cname, cpno, ccredit) SC (sno, cno, grade) 其中, S 为学生表, 各属性含义如下: Sno-学号, sname-姓名, ssex-性别, sage-年龄, sdept-专业 C 为课程表, 各属性含义如下: Cno-课程号, cname-课程名, cpno-先修课程号, ccredit-学分 SC 为选修表, 各属性含义如下: Sno-学号, Cno-课程号, grade-成绩 使用关系代数[1]语言完成以下查询: 查询选修课成绩大于 90 分的男生的学号和姓名
题目解答
答案
根据题目要求,需查询成绩大于90分的男学生的学号和姓名。
1. 筛选 SC 表中 grade > 90 的记录:$\sigma_{grade > 90}(SC)$。
2. 筛选 S 表中 ssex = '男' 的记录:$\sigma_{ssex = '男'}(S)$。
3. 将两表按 sno 自然连接[2]:$\sigma_{grade > 90}(SC) \bowtie \sigma_{ssex = '男'}(S)$。
4. 投影出 sno 和 sname:$\pi_{sno, sname}(\cdot)$。
最终表达式为:
\[
\pi_{sno, sname}(\sigma_{grade > 90}(SC) \bowtie \sigma_{ssex = '男'}(S))
\]