教务系统中存储着学生信息,包括学号、姓名、专业;课程信息,包括课程号、课程名,
学分,学生的选课信息,包括,学号、课程号、成绩。
1)写出课程信息、选课信息的数据库模式;
模式:关系名和其属性集合的组合称为这个关系的模式。
怎么表达一个模式:先给出一个关系名,再用圆括号括起所有的属性。
学生
(
学号
,
姓名
,
专业
);
课程
(
课程号
,
课程名
,
学分
);
选课
(
学号
,
课程号
,
成绩
);
|
2)写出创建课程信息的建表命令;
Create table
课程
(
课程号
char(6),
课程名
varchar(30),
学分
decimal(2,1),
Primary key (
课程号
)
);
|
3)写出下面查询的关系代数表达式:
a)查询出成绩小于 60 分的学生的学号;
Π学号(σ成绩<60(选课)) |
b)查询出成绩小于 60 分的学生的学号、姓名;
Π选课.学号,学生.姓名(σ选课.学号=学生.学号˄选课.成绩<60(选课 х 学生)) |
c)查询出从来没有选修课程的学生学号;
Π学号(学生) - Π学号(选课) |
d)查询出成绩最小的学生的学号;
Π学号(选课) - Π选课.学号(σ选课.成绩>s1.成绩((选课) х ρS1(选课))) ——>当一个表需要使用两次时,我们必须给他重命名做一个新的表 |
e)查询出至少有 2 个学生选修的课程号
;
Π选课.课程号(σ选课.课程号=s1.课程号˄选课.学号<>=s1.学号 ((选课) хρS1(选课))) |
f)查询出选修了所有课程的学生学号
Π学号 (选课) - Π学号 ( (Π学号(学生) хΠ课程号(课程) - Π学号,课程号(选课))) ——>Π学号(学生) хΠ课程号(课程) - Π学号,课程号(选课):将每一个学生与所有课程号组成一对(生成的新关系的实际意义是每个学生选修了所有的课程),再减去选课表中记录的每个学生的实际选课情况,所得到的结果就是只剩下没有选修完所有课程的学生。 |