本文已参与[新人创作礼]活动, 一起开启掘金创作之路。
前言
关系代数是一种抽象的查询语言, 是数据库操作的数学符号体系,
可以理解为sql的数学版本。sql是关系代数的具体实现。
传统的集合运算包括:
- 并(∪)、
- 差(−)、
- 交(∩)、
- 笛卡尔积(×)
专门的关系运算包括:
- 选择(σ)、
- 投影(π)、
- 连接(⋈)、
- 除运算(÷)
学习记录
本周刚好学了一些关系代数的知识,把解题心得分享出来一起学习
第1题和第2题是 计算他们的结果,用表格表示
第3题和第4题是写出关系代数表达式,并且用表格表示结果
1
设有关系R和S,计算
解题:
2
已知关系R和S,计算
解题:
3.
设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC,如图所示。根据各小题要求用二维表表示关系运算的结果
题目涉及到的几张表:
具体要求以及解法:
1)查询‘D02’系全体学生
δSdno=’D02’(Student) 或 δ5=’D02’(Student)
其中下角标“ 5”为 Sdno的属性序号。
表格表示结果:
2)查询年龄小于20岁的学生
δSage<20(Student) 或 δ4<20(Student)
表格表示结果:
3)查询学生的姓名和所在系(提示:即求Student关系在学生姓名和所在系两个属性上的投影。
πSname, Sdno(Student) 或 π2, 5(Student)
表格表示结果:
4)查询学生关系Student中都有哪些系(提示:即查询关系Student在所在系属性上的投影)。
πSdno(Student)
表格表示结果:
5)查询学生的学号、姓名、性别、年龄、所在系、课程编号、成绩(提示:即将关系Student与关系SC自然连接)
Student ∞ SC
表格表示结果:
4.
已知下列5个关系,写出查询要求对应的关系代数表达式(用公式编辑器)
学生 S(学号SNo,姓名SN,性别Sex,年龄Age,系别Dept);
教师 T(教师号TNO,姓名TN,性别Sex,年龄Age,职称Prof,工资Sal,
岗位津贴Comm,系别Dept);
课程 C(课程号CNo,课程名CN,课时CT);
选课 SC(学号SNo,课程号CNo,成绩Score);
授课 TC(教师号TNo,课程号CNo)
1)查询工资大于1000的讲师的姓名和系别。
2)查询讲授C1课程的教师姓名和职称。
3)查询‘李思’和‘钱尔’同时选修的课程的课程号和课程名。
4)查询‘李思’同学未选修的课程号和课程名。
·····鸡哥,算了算了
5)查询 选修‘数据库原理与应用’的学生学号和姓名
6)查询 Lisa同学不学的课程号。
7)查询全部学生都选修的课程的课程号与课程名。(除法)