關係代數的基本運算

知乎編輯器不支持表格,原文請移步:關係代數的基本運算

集合運算符

運算符含義英文∪並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)

進行並、差運算後結果如下:

進行笛卡爾、 投影、 選擇運算後結果如下:

擴展的關係代數運算

交(Intersection)

關係 R 和 S 具有相同的關係模式,交是由屬於 R 同時雙屬於 S 的元組構成的集合,記作 R∩S,形式如下:

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

鏈接(Join)

註:下面的 θ 鏈接應該記作:

θ 鏈接

從 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,如果為:

等值鏈接

當 θ 為「=」時,稱之為等值鏈接,記為: R?X=YSR?X=YS

自然鏈接

自然鏈接是一種特殊的等值鏈接,它要求兩個關係中進行比較的分量必須是 相同的屬性組,並且在結果集中將 重複的屬性列 去掉

例如:設有關係 R、S 如圖所示,求 R?SR?S

先求出笛卡爾積 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

最終得出結果

除(Division)

設有以下如圖關係,求 R÷SR÷S

取關係 R 中有的但 S 中沒有的屬性組,即:A、B

取唯一 A、B 屬性組值的象集

可知關係S存在於 a,b/c,k 象集 中。即 R÷SR÷S 得


推薦閱讀:

從集合的意義上說,圓是到定點為定長的點的集合,這種說法沒毛病嗎?
在一個圓中弦的集合與直徑的集合等勢嗎?

TAG:数据库 | 集合数学 |