当前位置:   article > 正文

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

关系代数

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

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

二、关系代数的分类

传统的集合操作:

  • 并、差、交、笛卡尔积

专门的关系运算:

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

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

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

为了便于理解我将结合实例进行解释;其中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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/908693
推荐阅读
相关标签
  

闽ICP备14008679号