数据库系统-关系代数

数据库系统-关系代数

关系数据库语言的分类

关系代数语言

  • 用对关系的运算来表达查询要求

关系演算语言

  • 元组关系演算语言
    • 谓词变元的基本对象是元组变量
    • 代表:APLHA,QUEL
  • 域关系演算语言
    • 谓词变元的基本对象是域变量
    • 代表:QBE

具有关系代数和关系演算双重特点的语言

  • 代表:SQL(Structured Query Language)

关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询

关系代数

  • 运算对象是关系
  • 运算结果亦为关系
  • 关系代数的运算符有两类:集合运算符和专门的关系运算符

关系代数运算符

image-20220311235301669

符号解释

image-20220311235716134

image-20220311235919637

image-20220311235940436

image-20220311235957866

image-20220312000204257

并(Union)

R和S

  • 具有相同的目n(即两个关系都有n个属性)
  • 相应的属性取自同一个域

R ∪ S

  • 仍为n目关系,由属于R或属于S的元组组成

image-20220312001016376

image-20220312001116972

差(Difference)

R和S

  • 具有相同的目n
  • 相应的属性取自同一个域

R-S

  • 仍为n目关系,由属于R而不属于S的所有元组组成

image-20220312001338743

image-20220312001431165

交(Intersection)

R和S

  • 具有相同的目n
  • 相应的属性取自同一个域

R∩S

  • 仍为n目关系,由既属于R又属于S的元组组成

image-20220312001634555

image-20220312003626539

笛卡尔积(Cartesian Product)

  • R: n目关系,k1个元组; S: m目关系,k2个元组

  • R X S

    • 列:(n+m)列元组的集合
      • 元组的前n列是关系R的一个元组
      • 后m列是关系S的一个元组
    • 行:k1 X k2 个元组

image-20220312004131086

image-20220312004246488

专门的关系运算符

学生关系Student、课程关系Course和选修关系SC

Student

学号
Son
姓名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
201215121李勇20CS
201215122刘晨19CS
201215123王敏18MA
201215125张立19IS

Course

课程号
Con
课程名
Cname
先行课
Cpon
学分
Ccredit
1数据库54
2数学2
3信息系统14
4操作系统63
5数据结构74
6数据处理2
7PASCAL语言64

SC

学号
Son
课程号
Cno
成绩
Grade
201215121192
201215121285
201215121388
201215122290
201215122380

选择(Selection)

选择又称为限制(Restriction)

选择运算符的含义

image-20220312165021280

选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算

查询信息系(IS系)全体学生

​ Sdept = ‘IS’(Student)

结果:

SnoSnameSsexSageSdept
201215125张立19IS

投影(Projection)

  • 从R中选择出若干属性列组成新的关系

image-20220312170811356

  • 投影操作主要是从列的角度进行运算
  • 投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组

查询学生的姓名和所在系

即求Student关系上学生姓名和所在系两个属性上的投影

image-20220312172010357

结果:

SnameSdept
李勇CS
刘晨CS
王敏MA
张立IS

连接(Join)

连接运算的含义

从两个关系的笛卡尔积中选取属性间满足一定条件的元组

image-20220312180430072

image-20220312180513832

image-20220312180524957

一般的连接操作是从行的角度进行运算

image-20220312180704343

自然连接还需要取消重复列,所以是同时从行和列的角度进行运算

image-20220312180840011

image-20220312185101543

image-20220312185124458


悬浮元组(Dangling tuple)

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

外连接(Outer Join)

  • 如果把悬浮元组也保存在结果关系中,而在其他属性上填空值(Null),就叫做外连接

  • 左外连接(LEFT OUTER JOIN或LEFT JOIN)

    • 只保留左边关系R中的悬浮元组
  • 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)

    • 只保留右边关系S中的悬浮元组

关系R和关系S的外连接

image-20220312192027273

左外连接 和 右外连接

image-20220312193155263

除运算(Division)

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组

R中的Y与S中的Y出自相同的域集

R与S的除运算得到一个新的关系P (X),P是R中满足下列条件的元组在X属性列上的投影:

image-20220312204211357

image-20220312204345663

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小旺不正经

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值