關係代數的基本運算
知乎編輯器不支持表格,原文請移步:關係代數的基本運算
集合運算符
運算符含義英文∪並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 得
推薦閱讀: