当前位置: 首页 > article >正文

数据库系统概论期末经典大题讲解(用关系代数进行查询)

今天也是结束的最为密集的考试周,在分析过程中自己也有些许解题的感悟,在此分享出来,希望能帮到大家期末取得好成绩。


一.专门的关系运算

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、 查询借阅过《天龙八部》的读者的信息


好啦,这次的内容就先到这里啦,下一次大概率是数据库范式,最小依赖集个找主码相关的内容。 


http://www.kler.cn/a/157428.html

相关文章:

  • ASP.NET|日常开发中数据集合详解
  • flink实现复杂kafka数据读取
  • 学工管理系统-职校信息化管理平台
  • CTF学习24.12.21[隐写术进阶]
  • jmeter 接口性能测试 学习笔记
  • 游戏渠道假量解决方案
  • 前端 --- HTML
  • 【设计模式-4.3】行为型——责任链模式
  • Hive安装与配置
  • webpack打包体积优化,减少白屏时间
  • ARM与大模型,狭路相逢
  • 探索人工智能领域——每日20个名词详解【day6】
  • 关于近期互联网行业收缩的一些看法
  • 关于rocketMQ踩坑的那些事
  • 【hacker送书第8期】Java从入门到精通(第7版)
  • Unity Meta Quest 一体机开发(八):【手势追踪】实现 Hand Grab 扔物体功能
  • Kotlin学习之04
  • 时间序列预测实战(二十三)进阶版LSTM多元和单元预测(课程设计毕业设计首选)
  • 【初阶解法-数据结构】包含min函数的栈(代码+图示)
  • 熬夜会秃头——beta冲刺Day7
  • 【开源】基于Vue.js的河南软件客服系统
  • 【Node-RED】http response收发实现
  • Shell数组函数:数组(一)
  • 如何制作教育培训小程序
  • 数字孪生是什么,是干什么用的?
  • 01 高等数学.武忠祥.0基础