今天也是结束的最为密集的考试周,在分析过程中自己也有些许解题的感悟,在此分享出来,希望能帮到大家期末取得好成绩。
一.专门的关系运算
1.选择(σ)
选择操作符用于从关系中选择满足特定条件的元组
例如,σ 年龄>20 (学生) 表示选择学生表中年龄大于20的学生(默认取出全部信息)
eg:
下方是一个标准的学生表:
学生 | ||||
Sno | Sname | Ssex | Sage | Sdept |
98010 | 张三 | 男 | 20 | 计算机系 |
99001 | 张敏 | 女 | 20 | 数学系 |
99002 | 刘丰 | 男 | 21 | 信息系 |
99003 | 王翔 | 男 | 19 | 计算机系 |
99004 | 陆逸 | 女 | 18 | 信息系 |
99006 | 陈敏 | 女 | 18 | 数学系 |
99007 | 扬阳 | 女 | 18 | 计算机系 |
99008 | 谷正 | 男 | 17 | 数学系 |
接下来我们用关系代数表示在学生课程数据库中查询计算机系的全体学生的操作 :
σSdept= ‘计算机系’ (学生) 或者 σ5= ‘计算机系’ (学生) 5代表第五列。
我们经常去选择第一种写法。
选择完后的结果如下:
2.投影(π)
投影操作符用于从关系中选择指定的属性 (即选择指定的列)
例如,π 学号,姓名 (学生) 表示选择学生表中的学号和姓名属性
eg:
学生 | ||||
Sno | Sname | Ssex | Sage | Sdept |
98010 | 张三 | 男 | 20 | 计算机系 |
99001 | 张敏 | 女 | 20 | 数学系 |
99002 | 刘丰 | 男 | 21 | 信息系 |
99003 | 王翔 | 男 | 19 | 计算机系 |
99004 | 陆逸 | 女 | 18 | 信息系 |
99006 | 陈敏 | 女 | 18 | 数学系 |
99007 | 扬阳 | 女 | 18 | 计算机系 |
99008 | 谷正 | 男 | 17 | 数学系 |
在学生课程数据库中,查询学生的姓名和所在系 :
3.连接(⋈)
连接操作符用于将两个关系进行连接,通常是在它们的公共属性上进行 (一个表不能够满足我的需求)
例如,学生表和选课表可以通过学号进行连接,得到学生选课的信息
eg:
已知关系R, S如下: R
S
求:
按照要求连接后的表格为:
连接的分类:
等值连接:
- 等值连接是基于两个关系中的属性之间的相等条件来进行连接的。具体来说,如果两个关系 R 和 S 中存在一个属性 A,使得 R.A = S.A,那么这两个关系就可以进行等值连接
- 等值连接的结果是一个新的关系,包含了满足等值条件的 R 和 S 的元组的组合
自然连接:
- 自然连接是基于两个关系中相同属性的相等条件来进行连接的。具体来说,自然连接会自动查找两个关系中相同属性名的属性,并根据这些属性进行等值连接
- 自然连接的语法通常表示为 R ⨝ S,其中 R 和 S 是要进行自然连接的两个关系
- 自然连接的结果是一个新的关系,包含了满足相同属性值的 R 和 S 的元组的组合,并且会自动去除重复的属性
等值连接和自然连接都是用于将两个关系进行连接操作的方法,它们的区别在于连接的条件和结果的属性
4.除法操作(÷)
R ÷ S 其中,R 和 S 分别是两个关系,R 的属性必须是 S 的属性的超集(全部所有才用÷)
例子:假设有两个关系:学生(学号,姓名)和选课(学号,课程名)。现在想要找出选修了所有课程的学生,可以使用除法操作符来实现:
学生 ÷ π 学号 (选课)
二.较为综合的例题
第一个
已知学生选课数据库模式:
- Student(Sno, Sname,Sage, Sdept)
- Course(Cno,Cname)
- SC(Sno,Cno,Score)
用关系代数进行如下查询:
选修了2号课程的学生的姓名?
计算机系有不及格课程的学生名单
学生张林的“数据库原理”成绩
查询选修了学号为“00002”的学生所选修的所有课程的学生学号和姓名
第二个
图书馆管理数据库
- 读者(读者编号, 姓名, 单位)
- 图书(书号, 书名, 作者, 出版社, 单价, 类型)
- 借阅记录(读者编号, 书号, 借阅日期, 应还日期)
- 还书记录(读者编号, 书号, 归还日期)
3、 查询8号读者2003年3月10日所借图书的相关信息
4、 查询超期归还图书的读者姓名和单位
5、 查询借阅过《天龙八部》的读者的信息
好啦,这次的内容就先到这里啦,下一次大概率是数据库范式,最小依赖集个找主码相关的内容。