關系數據庫關系代數


之前在學習數據庫時接觸過關系代數,只是在經過很長一段時間不應用之后,不能很快從大腦中將知識調出來,今天就來了個再次學習總結加深自己的印象。

     關系代數:是一種抽象的查詢語言,用對關系的運算來表達 查詢。關系代數運算的是關系,運算結果亦是關系。關系代數的基本關系包括:並、交、差、笛卡爾積、選擇、投影、連接、除法運算。由於並、交、差運算很簡單,這里不再贅述,只說明了幾個容易遺忘和混淆的運算。

     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

       總結:

       經過總結之后,發現其實關系之間的運算並不難,關鍵在於要認真分析,將符號與我們的實際找到聯系,只有對各種符號印象深刻之后,這些關系之間的運算也就變得很簡單。在平時要多找聯系多總結,方是正道。     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM