2.2 关系代数2——关系特有操作

2.2 关系代数

关系数据库语言的分类
	♥ 关系代数语言
		■ 用对关系的运算来表达查询要求 
	♥ 关系演算语言
		■ 元组关系演算语言
			◆ 谓词变元的基本对象是元组变量
			◆ 代表:APLHA,QUEL
		■ 域关系演算语言
			◆ 谓语变元的基本对象是域变量
			◆ 代表:QBE
	♥ 具有关系代数和关系演算双重特点的语言(第三章)
		■ 代表:SQL(Structured Query Language)

2.2.1 传统集合操作

2.2.2 关系特有操作

2.2.3 综合训练

学生-课程数据库
学生关系Student、课程关系Course和选修关系SC
Student:

学号(SNO)姓名(Sname)性别(Ssex)年龄(Sage)所在院系(Sdept)
202015121李勇20CS
202015122刘晨19CS
202015123王敏18MA
202015125张立19IS

Course:

课程号(CNO)课程名(Cname)先行课(Cpno)学分(Ccred)
1数据库54
2数学2
3信息系统14
4操作系统63
5数据结构74
6数据处理2
7C语言64

SC:

学号(SNO)课程号(CNO)成绩(Grade)
202015121192
202015121285
202015121388
2020151212290
2020151212380

专门的关系运算
    ■ 选择
    ■ 投影
    ■ 连接
    ■ 除运算


  1. 选择(Selection)
    ♥  选择又称为限制(Restriction)
    ♥  选择运算符的含义
        ■ 在关系R中选择满足给定条件的诸元组
    σ F σ_F σF ( R ) = {t | t∈R ∧ F(t) = ‘真’}
        ■ F:选择条件,是一个逻辑表达式,取值为“真”或“假”
            ◆ 基本形式为 X 1 X_1 X1θ Y 1 Y_1 Y1
            ◆ θ表示比较运算符,它可以是<、≤、>、≥、= 或 <>

♥  选择运算是从关系R中选取是逻辑表达式F为真的元组,是从的角度进行的运算
[例 2.4] 查询信息喜(IS系)全体学生 σ ( S d e p t = ′ I S ′ ) σ_(Sdept = 'IS') σ(Sdept=IS) ( Student )

结果:

学号(SNO)姓名(Sname)性别(Ssex)年龄(Sage)所在院系(Sdept)
202015125张立19IS

[例 2.5] 查询年龄小于20岁的学生 σ ( S a g e < 20 ) σ_(Sage < 20) σ(Sage<20) ( Student )

结果:

学号(SNO)姓名(Sname)性别(Ssex)年龄(Sage)所在院系(Sdept)
202015122刘晨19CS
202015123王敏18MA
202015125张立19IS

  1. 投影(Projection)
    ♥  从R中选择出若干属性列组成新的关系π
    π A π_A πA ( R ) = {t[A] | t∈R},A:R中的属性列
    ♥  投影操作主要是从的角度进行运算
    ♥  投影之后不仅取消了缘关系中的某些列,而且还肯呢个取消某些元组(避免重复行)

[例 2.6] 查询学生的姓名和所在系。
集求Student关系上学生姓名和所在系两个属性上的投影 π ( S n a m e , S d e p t ) π_(Sname, Sdept) π(Sname,Sdept) ( Student )
结果:

姓名(Sname)所在院系(Sdept)
李勇CS
刘晨CS
王敏MA
张立IS

[例 2.7] 查询学生关系Student中都有那些系, π ( S d e p t ) π_(Sdept) π(Sdept) ( Student )

结果:

所在院系(Sdept)
CS
MA
IS

  1. 连接(Join)
    ♥  连接也成为θ连接
    ♥  连接运算的含义
    从两个关系的笛卡尔积中选取属性间满足一定条件的元组
    公式
        ■ A和B:分别为R和S上度数相同且可比的属性组
        ■ θ:比较运算符
    连接运算从R和S的广义笛卡尔积RXS中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组
    ♥  两类常用连接运算
        ■ 等值连接(equijoin)
            ◆ θ为“=”的连接运算为等值连接
            ◆ 从关系R和S的广义笛卡尔积中选取A、B属性值相等的元组,即等值连接为:
    公式
        ■ 自然连接(Natural join)
            ◆ 自然链接是一种特殊的等值连接
                ▹两个关系中进行比较的分量必须是相同的属性组
                ▹在结果中把重复的属性列去掉
            ◆ 自然链接的含义
               R和S具有相同的属性组B
    公式
    ♥  一般的链接操作是从的角度进行的运算
    自然连接还需要取消重复列,所以是同时行和列的角度进行运算
    [例 2.8] 关系R和关系S如下所示

R:

ABC
a1b15
a1b26
a2b38
a2b412

S:

BE
b13
b27
b310
b32
b52

一般连接

AR.BCS.BE
a1b15b27
a1b15b310
a1b26b27
a1b26b210
a2b38b310

等值连接

AR.BCS.BE
a1b15b13
a1b26b27
a2b38b310
a2b38b32

♥  悬浮元组(Dangling tuple)
    ■ 两个关系R和S在做自然链接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些在操作是被舍弃了,这些被舍弃的元组称为悬浮元组。

♥  外连接(Outer Ioin)
    ■ 如果把悬浮元组也保存在结果关系中,而在其他属性上填控制(Null),就叫做外连接
    ■ 左外链接(LEFT OUTER JOIN或Left Join)
        ◆ 只保留左边关系R中的悬浮元组
    ■ 右外链接(RIGHT OUTER JOIN或Right Join)
        ◆ 只保留右边关系S中的悬浮元组

关系R和关系S的外连接:

ABCE
a1b153
a1b267
a2b3810
a2b382
a2b412NULL
NULLb5NULL2

关系R和关系S的左外连接:

ABCE
a1b153
a1b267
a2b3810
a2b382
a2b412NULL

关系R和关系S的右外连接:

ABCE
a1b153
a1b267
a2b3810
a2b382
NULLb5NULL2

  1. 除运算(Division)
    给定关系R(X, Y)和S(Y, Z),其中X,Y,Z为属性组
    R中的Y和S中的Y出自相同的域集。
    R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:
    元组在X上的分量之x的象集 Y x Y_x Yx 包含S在Y上投影的集合,记作:
    R÷S = { t r t_r tr[x] | t r t_r tr ∈ R ∧ π Y π_Y πY ( S ) ⊆ Y X Y_X YX}
    Y X Y_X YX:x在R中的象集,x = t r t_r tr[x]
    ♥  除操纵是同时从行和列角度进行运算
    **[例 2.9]**设关系R、S分别如下,则 R÷S 为:

R:

ABC
a1b1c2
a2b3c7
a3b4c6
a1b2c3
a4b6c6
a2b2c3
a1b2c1

S:

BCD
b1c2d1
b2c1d1
b2c3d2

R÷S:

A
a1

上一篇:2.2 关系代数1——传统集合操作
目    录:《数据库系统概论》
下一篇:2.3 关系演算1——元组关系演算

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值