关系代数可以按运算符的不同分为:传统的集合运算专门的关系运算两种

传统的集合运算将关系看作是元祖的集合,运算是从关系的水平方向(也就是“行”的角度)来进行的 专门的关系运算不仅会涉及到行的运算,也会涉及到列的运算。

传统的集合运算

传统的集合运算是二目运算,包括并、差、交、笛卡尔积4种运算


  1. 关系R和关系S的并集可以记作是:关系代数 - 图1
    并集的结果仍是n目关系

  2. 关系R和关系S的差:就是在R中,删除同时在S中的部分

  3. 关系R和关系S的交,就是既在R中,也在S中的部分
  4. 笛卡尔积
    这里的笛卡尔积指的是广义笛卡尔积
    关系R中有K1个元祖,关系S中有K2个元祖
    那么关系R和关系S笛卡尔积后,共有K1*K2个元祖

专门的关系运算

专门的关系运算包括选择、投影、连接、除运算等
(1)连接
设关系R是n目关系,关系S是m目关系,那么关系R和关系S连接后形成的新关系,就是m+n目关系。
前n个分量是关系R中的一个n元组,后m个分量是关系S中的一个m元组
是从两个关系的笛卡尔积中选择属性间满足一定关系的元组

类比于SQL中,多表查询时,使用外键关联另外一张表 有两种常用、常见的连接方式:等值连接自然连接

  • 等值连接:两个关系连接的时候使用的是等号
  • 自然连接:是特殊的等值连接,要求两个关系进行比较的分量必须是同名的属性组,并且在结果集中,把重复的属性列给删去。多表查询时的结果就是使用的自然连接。

连接又可分为内连接和外连接 两个关系进行连接自然操作时,可能出现关系R不能和关系S中的任何一行匹配的情况,那么R中的其他属性此时就为NULL,这样的元组被称为是悬浮元组。如果连接后将悬浮元组保存下来,那么这样的连接就称为是外连接。根据保留的是左边元组还是右边元组的不同,分为左外连接右外连接 类比于SQL中的LEFT JOINRIGHT JOIN

(2)选择
选择又被称为是限制,在关系R中只选择满足某些指定条件的诸元组

选择和SQL语句中,WHERE进行的操作是对应的

(3)投影
关系R上的投影是从R中选择出若干属性列组成新的关系

相当于从关系R中,只选择部分属性 和SQL语句中的SELECT操作是对应的

(4)除运算
设关系R除以关系S的结果为关系T,那么T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中

象集:表示某个属性的某个值对应元组中其他属性值的集合 比如下图所示关系R中 x1在R中的象集Zx1Zx1={Z1,Z2,Z3} x2在R中的象集Zx2={Z2,Z3} x3在R中的象集Zx3={Z1,Z3}

x1 z1
x1 z2
x1 z3
x2 z2
x2 z3
x3 z1
x3 z3

image.png