数据库期中(一)

教务系统中存储着学生信息,包括学号、姓名、专业;课程信息,包括课程号、课程名,
学分,学生的选课信息,包括,学号、课程号、成绩。
1)写出课程信息、选课信息的数据库模式;
模式:关系名和其属性集合的组合称为这个关系的模式。
怎么表达一个模式:先给出一个关系名,再用圆括号括起所有的属性。
学生 ( 学号 , 姓名 , 专业 );
课程 ( 课程号 , 课程名 , 学分 );
选课 ( 学号 , 课程号 , 成绩 );
2)写出创建课程信息的建表命令;
Create table 课程 (
课程号 char(6),
课程名 varchar(30),
学分 decimal(2,1),
Primary key ( 课程号 )
);
3)写出下面查询的关系代数表达式:
数据库期中(一)_第1张图片
         a)查询出成绩小于 60 分的学生的学号;
   Π学号(σ成绩<60(选课))

        b)查询出成绩小于 60 分的学生的学号、姓名;

Π选课.学号,学生.姓名(σ选课.学号=学生.学号˄选课.成绩<60(选课 х 学生))
         c)查询出从来没有选修课程的学生学号
Π学号(学生) - Π学号(选课)
        d)查询出成绩最小的学生的学号;

Π学号(选课) - Π选课.学号(σ选课.成绩>s1.成绩((选课) х ρS1(选课)))

——>当一个表需要使用两次时,我们必须给他重命名做一个新的表

        e)查询出至少有 2 个学生选修的课程号
Π选课.课程号(σ选课.课程号=s1.课程号˄选课.学号<>=s1.学号 ((选课) хρS1(选课)))
        f)查询出选修了所有课程的学生学号

Π学号 (选课) - Π学号 ( (Π学号(学生) хΠ课程号(课程) - Π学号,课程号(选课)))

——>Π学号(学生) хΠ课程号(课程) - Π学号,课程号(选课):将每一个学生与所有课程号组成一对(生成的新关系的实际意义是每个学生选修了所有的课程),再减去选课表中记录的每个学生的实际选课情况,所得到的结果就是只剩下没有选修完所有课程的学生。

你可能感兴趣的:(数据库,数据库)