FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
您的足迹: 关系代数基本运算
关系代数基本运算

转自:https://keelii.github.io/2017/02/19/basic-operations-of-relation-algebra/

关系代数运算符

集合运算符

运算符 含义 英文
—— ——– —————–
∪∪ Union
−− Difference
∩∩ Intersection
×× 笛卡尔积 Cartesian Product

比较运算符

运算符 含义
—— ——–
» 大于
≥≥ 大于等于
« 小于
≤≤ 小于等于
== 等于
≠≠ 不等于

专门的关系运算符

运算符 含义 英文
—— —- ———-
σσ 选择 Selection
ππ 投影 Projection
⋈⋈ 链接 Join
÷÷ Division

逻辑运算符

运算符 含义
—— —-
∧∧
∨∨
¬¬

5 种基本的关系代数运算

并(Union)

关系 R 与 S 具有相同的关系模式,即 R 与 S 的元数相同(结构相同),R 与 S 的并是属于 R 或者属于 S 的元组构成的集合,记作 R ∪ S,定义如下:

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

差(Difference)

关系 R 与 S 具有相同的关系模式,关系 R 与 S 的差是属于 R 但不属于 S 的元组构成的集合,记作 R − S,定义如下:

R−S={t|t∈R∨t∉S}R−S={t|t∈R∨t∉S}

广义笛卡尔积(Extended Cartesian Product)

两个无数分别为 n 目和 m 目的关系 R 和 S 的 笛卡尔积是一个 (n+m) 列的元组的集合。组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 R × S,定义如下:

R×S={t|t=<(tn,tm)∧tn∈R∧tm∈S}R×S={t|t=<(tn,tm)∧tn∈R∧tm∈S}

(tn,tm)(tn,tm) 表示元素 tntn 和 tmtm 拼接成的一个元组

投影(Projection)

投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作 πA(R)πA(R),其形式如下:

πA(R)={t[A]|t∈R}πA(R)={t[A]|t∈R}

选择(Selection)

选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作 σF(R)σF(R),其形式如下:

σF(R)={t|t∈R∧F(t)=True}σF(R)={t|t∈R∧F(t)=True}

实例

设有关系 R、S 如图所示,求 R∪SR∪S、 R−SR−S、 R×SR×S、 πA,C(R)πA,C(R)、 σA>B(R)σA>B(R) 和 σ3<4(R×S)σ3<4(R×S)

关系表RS

进行并、差运算后结果如下:

并差

进行笛卡尔、 投影、 选择运算后结果如下:

笛卡尔_投影_选择

扩展的关系代数运算

交(Intersection)

关系 R 和 S 具有相同的关系模式,交是由属于 R 同时双属于 S 的元组构成的集合,记作 R∩S,形式如下:

R∩S={t|t∈R∧t∈S}R∩S={t|t∈R∧t∈S}

链接(Join)

注:下面的 θ 链接应该记作:theta链接

θ 链接

从 R 与 S的笛卡尔积中选取属性间满足一定条件的元组,可由基本的关系运算笛卡尔积和选取运算导出,表示为:

R⋈XθYS=σXθY(R×S)R⋈XθYS=σXθY(R×S)

XθY 为链接的条件,θ 是比较运算符,X 和 Y 分别为 R 和 S 上度数相等且可比的属性组

例如:求 R⋈R.A<S.BSR⋈R.A<S.BS,如果为:

theta链接小于过程

等值链接

当 θ 为「=」时,称之为等值链接,记为: R⋈X=YSR⋈X=YS

自然链接

自然链接是一种特殊的等值链接,它要求两个关系中进行比较的分量必须是 相同的属性组,并且在结果集中将 重复的属性列 去掉

例如:设有关系 R、S 如图所示,求 R⋈SR⋈S

关系RS

先求出笛卡尔积 R×SR×S,找出比较分量(有相同属性组),即: R.A/S.A 与 R.C/S.C

求出笛卡尔积

取等值链接 R.A=S.AR.A=S.A 且 R.C=S.CR.C=S.C

找出相同属性的比较分量

结果集中去掉重复属性列,注意无论去掉 R.A 或者 S.A 效果都一样,因为他们的值相等,结果集中只会有属性 A、B、C、D

结果集中找出重复属性列

最终得出结果

RS自然链接结果

除(Division)

设有以下如图关系,求 R÷SR÷S

关系RS1

取关系 R 中有的但 S 中没有的属性组,即:A、B

关系RS1取属性AB

取唯一 A、B 属性组值的象集

关系RS1取属性AB对应的象集

可知关系S存在于 a,b/c,k 象集 中。即 R÷SR÷S 得

关系RS1除结果



打赏作者以资鼓励: