数据库系统概念 I 关系代数

本节参考 Chap 2.1 Chap 2.2 Chap 2.3 Chap 2.6 Chap6.1

目录

知识

2.1 关系数据库的结构

2.2 数据库模式

2.3 码

2.6 关系运算·关系代数

Relation Instructor

Relation Course

Relation Prereq

Relation Department

Relation Setion

Relation Teaches

6.1.1.1 选择运算 σ

6.1.1.2 投影运算 

6.1.1.3 关系运算的组合

6.1.1.4 并运算 ∪

6.1.1.5 集合差运算 -

6.1.1.6 笛卡尔积运算 ×

6.1.1.7 更名运算 ρ

6.1.3.1 集合交运算 ∩

6.1.3.2 自然连接运算 

6.1.3.3 赋值运算 ←

6.1.3.4 外连接运算

6.1.4.1 广义投影

6.1.4.2 聚集运算​≈G

练习 2.6  2.7 2.12 2.13 6.11 6.13

Exercise 2.6

Figure 2.14

Exercise 2.7 

Exercise 2.12 

Figure 2.15

Exercise 2.13 

Figure 6.22

Exercise 6.11

Exercise 6.13 

练习·参考答案 略


知识

2.1 关系数据库的结构

  1. 关系 表
  2. 元组 行
  3. 属性 列

2.2 数据库模式

  1. 关系模式

2.3 码

  1. 超码 一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组
  2. 候选码 任意真子集都不能成为超码的最小超码
  3. 主码 被数据库设计者选中的、主要用来在一个关系中区分不同元组的候选码

2.6 关系运算·关系代数

Relation Instructor

Relation Course

Relation Prereq

Relation Department

Relation Setion

Relation Teaches

6.1.1.1 选择运算 σ

  1. 选择运算选出满足给定谓词元组
  2. 谓词写作\sigma的下标 参数关系\sigma后的括号中【例:选择关系instructor中属于“Physics”系元组
  3.  允许使用=选择谓词中进行比较【例:工资额大于90000美元的所有元组
  4. 连词and(\wedge)、or(\vee)、not()将多个谓词合并【例:选择关系instructor中属于“Physics”系元组
  5. 选择谓词可以包含两个属性的比较【例:系名楼名相同的系】

6.1.1.2 投影运算 \prod

  1. 投影运算返回作为参数关系
  2. 属性写作\prod的下标 参数关系\prod后的括号中【例:所有教师的ID、name、salary

6.1.1.3 关系运算的组合

  1. 关系运算的结果自身也是一个关系
  2. 【例:物理系所有教师名字
  3. 投影运算而言,没有给出一个关系的名字来作为其参数,而是用一个对关系进行求值的表达式来作为参数
  4. 把多个关系代数运算组合成一个关系代数表达式

6.1.1.4 并运算 ∪

  1. 【例:开设在2009年秋季学期或者2010年春季学期或者这二者皆开所有课程
  2. 要使并运算r ∪ s有意义,要求以下两个条件同时成立
  1. 关系 r 和 s 必须是同元的,即它们的属性数目必须相同
  2. 对所有的 i , r 的第 i 个属性的域必须和 s 的第 i 个属性的域相同

6.1.1.5 集合差运算 -

  1. 集合差运算可以找出在一个关系中不在另一个关系中的那些元组
  2. 表达式 r - s 的结果即一个包含所有在 r 中而不在 s 中的元组关系
  3. 【例:开设在2009年秋季学期但是在2010年春季学期不开的课程
  4. 要使集合差运算r - s有意义,要求以下两个条件同时成立
  1. 关系 r 和 s 必须是同元的,即它们的属性数目必须相同
  2. 对所有的 i , r 的第 i 个属性的域必须和 s 的第 i 个属性的域相同

6.1.1.6 笛卡尔积运算 ×

  1. 笛卡尔积运算可以将任意两个关系的信息组合在一起
  2. 【例:只包含物理系的教师,courese_id列可能包含并非这些教师所教授的课程】
  3. 【例:只与物理教师以及他们所教课程相关的元组】
  4. 【例:物理系的所有教师,以及他们教授的所有课程】

6.1.1.7 更名运算 ρ

  1.  返回关系代数表达式E的结果,并把名字x赋给了它
  2. 返回关系代数表达式E的结果,并把名字x赋给了它,同时将各属性更名为A

6.1.3.1 集合交运算 ∩

  1. 【例:开设在2009年秋季学期2010年春季学期课程
  2. 可以通过用一对集合差运算替代集合交运算来重写

6.1.3.2 自然连接运算 \Join

  1. 自然连接运算首先形成它的两个参数的笛卡尔积,然后基于两个关系模式中都出现的属性上的相等性进行选择,最后还要去除重复属性。
  2. 【例:所有教师姓名,连同他们教的所有课程的course_id】

6.1.3.3 赋值运算 ←

  1. 给临时关系变量赋值的方法来些关系代数式
  2. 【例:r\Joins】

6.1.3.4 外连接运算

  1. 外连接运算可以处理缺失的信息,它在结果中创建带空值的元组,以此来保留在连接中丢失的那些元组
  2. 左外连接 取出左侧关系中所有与右侧关系的任一元组都不不匹配的元组,用空值填充所有来自右侧关系的属性,再把产生的元组加到自然连接的结果中。
  3. 右外连接 取出右侧关系中所有与左侧关系的任一元组都不不匹配的元组,用空值填充所有来自左侧关系的属性,再把产生的元组加到自然连接的结果中。
  4. 全外连接 既填充左侧关系中与右侧关系的任一元组都不匹配的元组,又填充右侧关系中与左侧关系的任一元组都不匹配的元组,并把结果都加到连接的结果中。

6.1.4.1 广义投影

形式

F:(涉及常量以及E的模式中属性的)算术表达式

E关系代数表达式

1.F中可以使用对数值属性或者产生数值结果的表达式的代数运算【例:每个教师ID、name、dept_name、每月的工资

6.1.4.2 聚集运算≈G

形式

G:(用于分组的)属性

F聚集函数

A属性名

E关系代数表达式

  1. sum 返回值的和【例:所有教师工资总和
  2. avg 返回值的平均【例:所有教师平均工资】,对单个元组集合执行聚集函数
  3. count 返回汇集中元素的个数
  4. min 返回汇集中的最小值
  5. max 返回汇集中的最大值
  6. ……-distinct 去除重复【例:在2010年春季学期教课教师数】
  7. 一组元组集合执行聚集函数【例:每个平均工资

练习 2.6  2.7 2.12 2.13 6.11 6.13

Exercise 2.6

Figure 2.14

Exercise 2.7 

Exercise 2.12 

Figure 2.15

Exercise 2.13 

Figure 6.22

 

Exercise 6.11

Exercise 6.13 

练习·参考答案 略

2.6

 

2.7

 

2.12

 

2.13

 

6.11

 

6.13

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值