之前在學習資料庫時接觸過關係代數,只是在經過很長一段時間不應用之後,不能很快從大腦中將知識調出來,今天就來了個再次學習總結加深自己的印象。
關係代數:是一種抽象的查詢語言,用對關係的運算來表達 查詢。關係代數運算的是關係,運算結果亦是關係。關係代數的基本關係包括:並、交、差、笛卡爾積、選擇、投影、連線、除法運算。由於並、交、差運算很簡單,這裡不再贅述,只說明了幾個容易遺忘和混淆的運算。
1、笛卡爾積
計算兩個關係r和s的笛卡爾積,r的元數為r,s的元數為s,則r×s是乙個(r+s)元的元組集合,如下例所示:
結果:
由結果分析:笛卡爾積得到的結果元數為r+s即:3+3=6;記錄數為:r中的記錄數與s中的記錄數相乘,即:3×2=6。
2、選擇
選擇是根據某些條件對關係做水平切割,例如δ2 > '4'(r),表示從r中挑選第二個分量值(也就是r中b列的值)大於4的元組所構成關係。
結果:
3、投影π
投影與選擇正好相反,是對關係的一種垂直切割,消去某列,並重新安排列的順序。投影用(π)表示。例如:π
3,1(r)表示的結果如下:
由結果可以看出:查詢表示式中的下標可以用數字表示,也可以用列的名字表示,返回列的名字,而其他的列在結果關係中被去掉,也可以通過投影來重新布局關係的排列。
4、連線
連線運算:從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組,用(r ⋈ s)表示,連線分為兩種,一種是等值連線(有的書上寫的是連線),另一種是自然連線。等值連線:條件aθb中的θ為『=』的連線;自然連線:關係r與s選取a、b屬性值相等的那些元組。
看個例子就很容易明白了:
等值連線:如下有關係r和s,則
是什麼呢?
結果:
自然連線:一般自然連線使用在r和s有公共屬性時,如果沒有公共屬性,自然連線就轉為笛卡爾積操作。
例如:關係r和s,則自然連線的結果呢?
結果:5、除法
例子:r÷s
r: s:
結果:計算過程:
(1)t=π1,2
(r),從r中選取除去與s中相同的屬性,即選擇s#,sname
(2)w=(t ×s)-r,將上面得到的t與s進行笛卡爾積,再減去r,即計算t×s中不在r的元組
(3)v=π
1,2(w),從w中選取1,2對應的屬性列,即:s#,sname
(4)r ÷ s = t-v
總結:經過總結之後,發現其實關係之間的運算並不難,關鍵在於要認真分析,將符號與我們的實際找到聯絡,只有對各種符號印象深刻之後,這些關係之間的運算也就變得很簡單。在平時要多找聯絡多總結,方是正道。
關係代數運算
五種基本關係代數運算 集合 某些指定的物件集在一起就成了乙個集合,其中每乙個物件叫元素。集合的三特性 確定性 互異性 無序性。1 確定性 指的是概念清晰,物件描述明確,不能含混不清 不能模稜兩可。2 互異性 對於乙個給定的集合,它的任何兩個元素都是不同的。3 無序性 給定的乙個集合,集合內的元素間位...
關係代數運算除
1.關係運算的分類 1 基本運算操作 並 差 笛卡爾積 投影和選擇。2 組合運算操作 交 聯接 自然聯接和除。另外,還有幾種擴充的關係代數操作 外聯接 左外聯接和右外聯接 外部並和半聯接。2.除法定義的理解 設兩個關係r和s的元數分別為r和s r s 0 那麼r s是乙個 r s 元的元組的集合。r...
關係代數 除法運算
首先講講運算的約束條件,在我看的 資料庫系統原理 一書中,假設rs s,那麼一般情況下s的屬性集是rs屬性集的真子集。而樓主給出的原題不符合這個條件 關係r的屬性集為,關係s的屬性集為,實際上s中只有s r 這些屬性參與了運算 這種情況很少發生 要理解除法這個比較複雜的運算,得明白為什麼需要它,也就...