题目
现有关系数据库如下: 学生 ( 学号,姓名,性别,专业、奖学金 ) 课程 ( 课程号,名称,学分 ) 学习 ( 学号,课程号,分数 ) 用关系代数[1]表达式实现下列 1 — 4 小题: 1. 检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数; 2. 检索学生成绩得过满分 (100 分 ) 的课程的课程号、名称和学分; 3. 检索没有获得奖学金、同时至少有一门课程成绩在 95 分以上的学生信息,包括学号、姓名和专业; 4. 检索没有任何一门课程成绩在 80 分以下的学生的信息,包括学号、姓名和专业
现有关系数据库如下: 学生 ( 学号,姓名,性别,专业、奖学金 ) 课程 ( 课程号,名称,学分 ) 学习 ( 学号,课程号,分数 ) 用关系代数[1]表达式实现下列 1 — 4 小题: 1. 检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数; 2. 检索学生成绩得过满分 (100 分 ) 的课程的课程号、名称和学分; 3. 检索没有获得奖学金、同时至少有一门课程成绩在 95 分以上的学生信息,包括学号、姓名和专业; 4. 检索没有任何一门课程成绩在 80 分以下的学生的信息,包括学号、姓名和专业
题目解答
答案
1. Π学号,姓名,课程名,分数 ( σ奖学金 >0 ∧专业 = 国际贸易 ( 学生∞学习∞课程 )) 2. Π课程号,名称,学分 ( σ分数 =100( 学习∞课程 )) 3. Π学号,姓名,专业 ( σ奖学金 95( 学生∞学习 )) 4. Π学号,姓名,专业 ( 学生 ) —Π学号,姓名,专业 ( σ分数
解析
步骤 1:检索“国际贸易”专业中获得奖学金的学生信息
- 首先,我们需要从学生表中筛选出专业为“国际贸易”且获得奖学金的学生,即满足条件“专业 = '国际贸易'”和“奖学金 > 0”的学生。
- 然后,我们需要将这些学生的信息与学习表和课程表进行连接,以获取课程名和分数。
- 最后,我们选择需要的属性,即学号、姓名、课程名和分数。
步骤 2:检索学生成绩得过满分 (100 分 ) 的课程的课程号、名称和学分
- 首先,我们需要从学习表中筛选出分数为100的学生课程记录。
- 然后,我们需要将这些课程记录与课程表进行连接,以获取课程号、名称和学分。
- 最后,我们选择需要的属性,即课程号、名称和学分。
步骤 3:检索没有获得奖学金、同时至少有一门课程成绩在 95 分以上的学生信息
- 首先,我们需要从学生表中筛选出没有获得奖学金的学生,即满足条件“奖学金 = 0”的学生。
- 然后,我们需要将这些学生的信息与学习表进行连接,以获取他们的课程成绩。
- 接着,我们需要筛选出至少有一门课程成绩在95分以上的学生。
- 最后,我们选择需要的属性,即学号、姓名和专业。
步骤 4:检索没有任何一门课程成绩在 80 分以下的学生的信息
- 首先,我们需要从学习表中筛选出所有课程成绩在80分以下的学生。
- 然后,我们需要将学生表与这些学生进行差集操作,以获取没有任何一门课程成绩在80分以下的学生。
- 最后,我们选择需要的属性,即学号、姓名和专业。
- 首先,我们需要从学生表中筛选出专业为“国际贸易”且获得奖学金的学生,即满足条件“专业 = '国际贸易'”和“奖学金 > 0”的学生。
- 然后,我们需要将这些学生的信息与学习表和课程表进行连接,以获取课程名和分数。
- 最后,我们选择需要的属性,即学号、姓名、课程名和分数。
步骤 2:检索学生成绩得过满分 (100 分 ) 的课程的课程号、名称和学分
- 首先,我们需要从学习表中筛选出分数为100的学生课程记录。
- 然后,我们需要将这些课程记录与课程表进行连接,以获取课程号、名称和学分。
- 最后,我们选择需要的属性,即课程号、名称和学分。
步骤 3:检索没有获得奖学金、同时至少有一门课程成绩在 95 分以上的学生信息
- 首先,我们需要从学生表中筛选出没有获得奖学金的学生,即满足条件“奖学金 = 0”的学生。
- 然后,我们需要将这些学生的信息与学习表进行连接,以获取他们的课程成绩。
- 接着,我们需要筛选出至少有一门课程成绩在95分以上的学生。
- 最后,我们选择需要的属性,即学号、姓名和专业。
步骤 4:检索没有任何一门课程成绩在 80 分以下的学生的信息
- 首先,我们需要从学习表中筛选出所有课程成绩在80分以下的学生。
- 然后,我们需要将学生表与这些学生进行差集操作,以获取没有任何一门课程成绩在80分以下的学生。
- 最后,我们选择需要的属性,即学号、姓名和专业。