数据库原理 关系代数计算

756 阅读2分钟

本文已参与[新人创作礼]活动, 一起开启掘金创作之路。

前言

关系代数是一种抽象的查询语言, 是数据库操作的数学符号体系,

可以理解为sql的数学版本。sql是关系代数的具体实现。

传统的集合运算包括:

  • 并(∪)、
  • 差(−)、
  • 交(∩)、
  • 笛卡尔积(×)

专门的关系运算包括:

  • 选择(σ)、
  • 投影(π)、
  • 连接(⋈)、
  • 除运算(÷)

学习记录

本周刚好学了一些关系代数的知识,把解题心得分享出来一起学习

第1题和第2题是 计算他们的结果,用表格表示

第3题和第4题是写出关系代数表达式,并且用表格表示结果

1

设有关系R和S,计算

image.png

解题:

image.png

image.png

image.png

image.png

2

已知关系R和S,计算

image.png

解题:

image.png

image.png

image.png

3.

设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC,如图所示。根据各小题要求用二维表表示关系运算的结果

题目涉及到的几张表:

image.png

image.png

image.png

具体要求以及解法:

1)查询‘D02’系全体学生

δSdno=’D02’(Student) 或   δ5=’D02’(Student)

其中下角标“ 5”为  Sdno的属性序号。

表格表示结果:

image.png

2)查询年龄小于20岁的学生

δSage<20(Student)  或    δ4<20(Student)

表格表示结果:

image.png

3)查询学生的姓名和所在系(提示:即求Student关系在学生姓名和所在系两个属性上的投影。

πSname, Sdno(Student) 或   π2, 5(Student)

表格表示结果:

image.png

4)查询学生关系Student中都有哪些系(提示:即查询关系Student在所在系属性上的投影)。

πSdno(Student)

表格表示结果:

image.png

5)查询学生的学号、姓名、性别、年龄、所在系、课程编号、成绩(提示:即将关系Student与关系SC自然连接)

Student  ∞  SC

表格表示结果:

image.png

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的讲师的姓名和系别。

image.png

2)查询讲授C1课程的教师姓名和职称。

image.png

3)查询‘李思’和‘钱尔’同时选修的课程的课程号和课程名。

image.png

4)查询‘李思’同学未选修的课程号和课程名。

·····鸡哥,算了算了

5)查询 选修‘数据库原理与应用’的学生学号和姓名

image.png

6)查询 Lisa同学不学的课程号。

image.png

7)查询全部学生都选修的课程的课程号与课程名。(除法)

image.png