关于数据库中关系代数的一些理解(一)

一、首先我们来了解一下什么是关系代数

关系代数是以关系为运算对象的一组高级运算集合,显然这样的解释 较难理解;简单的说,关系代数是一种用于关系数据查询的一种抽象查询语句,主要是通过对关系的运算来表达查询。

二、关系代数的分类

传统的集合操作:

  • 并、差、交、笛卡尔积

专门的关系运算:

  • 投影(对关系进行垂直分割——对列的操作)
  • 选择(对关系进行水平分割——对行的操作)
  • 连接(关系之间的结合)
  • 除法(笛卡尔积的逆运算)

下面的表格更加直观的介绍关系代数的分类,并对其进行了简单的分类
在这里插入图片描述

三、常用的关系代数的使用以及含义

为了便于理解我将结合实例进行解释;其中R 、S分别为两个独立的关系,关系R和S具体属性如下:

  • 关系R
ABC
abc
daf
cbd
  • 关系S
ABC
bga
daf
  1. 并:R和S的并是由属于R或S的元组构成的集合(元组是指二维表中的行)

例: R U S

ABC
abc
daf
cbd
bga

R U S ={t | t ∈ R ∨ t ∈ S}

在这里有一个问题,那就是为什么要删除重复的元组,而不是简单的将两个关系直接加在一起,而这是因为关系是一种规范化了的二维表,所以在关系模型中,需要对关系作出一些限制

  • 关系中的每一个属性值都不可分(属性——二维表的列)
  • 关系中不可出现重复列
  • 由于关系是一个集合,因此不考虑元组间的顺序,即没有行序
  • 列的顺序无所谓,即列的顺序可以任意交换
  1. 差:R和S的差属于R不属于S的元组组成(对行进行操作同时是在R的基础上剪出S里的元组)

例: R - S

ABC
abc
cbd
  1. 交:R和S的交,是由属于R又属于S的元组构成

例: R ∩ S

ABC
daf
  1. 笛卡尔积:R和S的笛卡尔积,简单来说为R的每一个元组与S的每一个元组相互组合形成一个新的关系,而这个新的关系则为R和S的笛卡尔积的结果

由于R和S的属性相同(行名相同)这里用RA表示R中的A…

例: R X S

R.AR.BR.CS.AS.BS.C
abcbga
abcdaf
dafbga
dafdaf
cbdbga
cbddaf

希望路过的大神多多指点错误之处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值