詳解【數據庫】關係代數基本運算——我的oracle學習之路


       關係代數是以關係爲運算對象的一組高級運算的集合。由於關係定義爲屬性個數相同的元組的集合,因此集合代數的操作就可以引入到關係代數中。關係代數中的操作可以分爲兩類:傳統的關係操作,並、差、交、笛卡爾積(乘)、笛卡爾積的逆運算(除);擴充的關係操作,對關係進行垂直分割(投影)、水平分割(選擇)、關係的結合(連接、自然連接)等。

五中基本的關係代數操作

並(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,定義如下:

投影(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}

舉個栗子,通過兩個關係分析下:

(a)R∪S 並 (b)R-S 差 (c)R×S 笛卡爾積 (d)πC,A(R ) 投影 (e)σB>’4’ (R ) 選擇

       說明:笛卡爾積,若R有m個元組,S有n個元組,則R×S有m×n個元組。投影,C和A爲屬性名,說明要選擇的列。選擇B>‘4’,即選擇語句的條件,對關係做水平分割,選擇符合條件的元組。

連接

連接(join)就是把兩個表中的行按照給定的條件進行拼接而達成新表。

等值連接

        通俗講就是兩個表的某些列值相等作爲條件連接,稱爲等值連接。記爲: R⋈X=YS

舉個栗子,現在有A表和B表,連接條件爲T1=T3。

自然連接

        數據庫中最常用的是自然連接進行自然連接運算要求兩個表有共同的屬性(列),自然連接運算的結果表是在參與操作兩個表的共同屬性上進行等值連接後,再去除重複的屬性後獲得的新表。舉個栗子,現在有A表和B表進行自然連接。

實戰練習

        在關係代數運算中,把由五個基本操作經過有限次複合的式子稱爲關係代數表達式。這種表達式的運算結果仍是一個關係。我們可以用關係代數表達式表示各種數據查詢操作。

例1:

有如下三個關係:
S(Sno,Sname,Ssex,Sage,Sdept)
學生關係(學號,姓名,性別,年齡,所在學院)
C(Cno,Cname,Cdept,Tname)
課程關係(課程號,課程名,課程開課學院,代課教師)
SC(Sno,Cno,Grade)
選修關係(學號,課程號,成績)

查詢至少選修了課程號爲“C5”和“C9”的學生學號,正確的關係代數爲_____?

答案:

此題涉及三個表,先進行選擇,再進行投影,之後∩。

例2:

有如下三個關係:
S(Sno,Sname,Ssex,Sage,Sdept)
學生關係(學號,姓名,性別,年齡,所在學院)
C(Cno,Cname,Cdept,Tname)
課程關係(課程號,課程名,課程開課學院,代課教師)
SC(Sno,Cno,Grade)
選修關係(學號,課程號,成績)

查詢學生“李力”所學課程的課程名與任課教師名,正確的關係代數爲________?

答案:

此題涉及三個表,先連接,再選擇,而後投影。

希望對您有所幫助!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章