著作權聲明
主要針對希賽出版的架構師考試教程《系統架構設計師教程(第4版)》,作者“希賽教育軟考學院”。完成相關的讀書筆記以便後期自查,僅供個人學習使用,不得用於任何商業用途。
著作權聲明 第四節 關係代數 並 差 笛卡爾積 投影 θ串連 除
第四節 關係代數
關係代數的基本運算主要有並、交、差、笛卡爾積、選擇、投影、串連和除法運算。 並
計算兩個關係在集合理論上的並集,即給出關係 R 和 S(兩者有相同元/列數),R∪S 的元組包括 R 和 S 所有元組的集合,形式定義如下:
R∪S={t|Rμt∉S} R ∪ S = { t | R μ t ∉ S } R \cup S = \{t|R \mu t \notin S\}
式中 t 是元組變數(下同)。顯然,R∪S=S∪R。 差
計算兩個關係的區別的集合,即給出關係 R 和 S(兩者有相同元/列數),R-S的元組包括 R 中有而 S 中沒有的元組的集合,形式定義如下:
R−S={t|t∈R∧t∉S} R − S = { t | t ∈ R ∧ t ∉ S } R - S = \{t | t \in R \wedge t \notin S\}
顯然,R∩S = R-(R-S) 和 R∩S = S-(S-R)成立。
笛卡爾積
計算兩個關係的笛卡爾乘積,令 R 為有 m 元的關係,S 為有 n 元的關係,則 R×S 是 m+n 元的元組的集合,其前 m 個元素來自 R 的一個元組,而後 n 個元素來自 S 的一個元組。形成定義如下:
R×S={t|t=<tr,ts>∧tr∈R∧ts∈S} R × S = { t | t =< t r , t s > ∧ t r ∈ R ∧ t s ∈ S } R \times S = \{ t | t = \wedge t_r \in R \wedge t_s \in S\}
若 R 有 u 個元組,S 有 v 個元組,則 R×S 有 u×v 個元組。例如,有關係 R 與關係 S 如表 3-1 和表 3-2 所示。
對 R 與 S 做笛卡爾積運算,其結果有 4+2=6 列,元組數量有 3*2=6 條。如表 3-3 所示。
投影
從一個關係中抽取指明的屬性(列)。令 R 為一個包含屬性 A 的關係,則
PA(R)={t[A]|t∈R} P A ( R ) = { t [ A ] | t ∈ R } P_A(R)=\{t[A]|t\in R\}
例如,對錶 3-1 關係 R 做投影操作, p1,2( R),則結果如表 3-4 所示。
注意:在關係代數操作中涉及的數字代表的是列號,, p1,2(R)操作是對第 1 列與第 2 列做投影。
其中 F 表示選擇條件,是一個邏輯運算式(邏輯運算子+算術運算式)。選擇運算是從元組(行)的角度進行的運算。 θ串連
θ串連從兩個關係的笛卡兒積中選取屬性之間滿足一定條件的元組,記作:
其中 A 和 B 分別為 R 和 S 上元數相等且可比的屬性群組。θ 為“=”的串連,稱為等值串連,記作:
如果兩個關係中進行比較的分量必須是相同的屬性群組,並且在結果中將重複的屬性去掉,則稱為自然串連,記作:
例如,對錶 3-1 關係 R 與表 3-2 關係 S 做自然串連操作。結果集如表 3-6 所示。
除
設有關係 R(X,Y)與關係 S(Z),Y 和 Z 具有相同的屬性個數,且對應屬性出自相同域。關係 R(X,Y)÷S(Z)所得的商關係是關係 R 在屬性 X 上投影的一個子集,該子集和 S(Z)的笛卡爾積必須包含在 R(X,Y)中,記為 R÷S,其具體計算公式為:
例如,對錶 3-1 的關係 R 與表 3-2 的關係 S 做除法運算。
求解過程為:首先,按除運算定義要求,確定 X,Y,Z 屬性集合。Y 是關係 R 中的屬性集合,Z 是 S 中全部屬性的集合,即 Z={U3,U4},由於 Y=Z,因此,Y={U3,U4}, X={U1,U2}。也就是說,R÷S 結果集包含屬性 U1 和 U2;然後,將關係 R 的 U1、U2(共有<a,b>、<c,a>兩個元組)與關係 S 作笛卡爾積操作,結果如表 3-7 所示。
通過檢查表 3-7,可以發現元組<a,b>與 S(Z)的笛卡爾積被包含在 R(X,Y)中,而元組<c,a>與S(Z)的笛卡爾積有一個元組未被包含在 R(X,Y)中,所以,結果集中只有元組<a,b>。
學渣。這點沒看懂,先往下讀,等第一遍掃完書再搞吧。頭疼。。。