關聯式資料庫的資料操作分為查詢和更新兩類。查詢語句用於各種檢索操作,更新操作用於插入、刪除和修改等操作。
關係查詢語言根據其理論基礎的不同分成兩大類:
1.關係代數語言:查詢操作是以集合操作為基礎運算的dml語言。
2.關係演算語言:查詢操作是以謂詞演算為基礎運算的dml語言。
關係代數的五個基本運算
關係代數是以關係為運算物件的一組高階運算的集合。關係定義為元數相同的元組的集合。集合中的元素為元組,關係代數中的操作可分為兩類:
傳統的集合操作:並、差、交、笛卡爾積。
擴充的關係操作:投影,選擇,聯接和自然聯接,除。
1.並設有兩個關係r和s具有相同的關係模式,r和s的並是由屬於r和s的元組構成的集合,記為r∪s。
注意:r和s的元數相同。
2.差設有兩個關係r和s具有相同的關係模式,r和s的差是由屬於r但不屬於s的元組構成的集合,記為r-s。
注意:r和s的元數相同。
3.笛卡爾積
設關係r和s的元數分別為r和s。定義r和s的笛卡爾積是乙個(r+s)元的元組集合,每個元組的前r個分量(屬性值)來自r的乙個元組,後s個分量來自s的乙個元組,記為r×s。
若r有m個元組,s有n個元組,則r×s 有m×n個元組。
4.選擇
從關係中找出滿足給定條件的所有元組稱為選擇。其中的條件是以邏輯表示式給出的 ,該邏輯表示式的值為真的元組被選取。這是從行的角度進行的運算,即水平方向抽取元組。經過選擇運算得到的結果可以形成新的關係,其關係模式不變,但其中元組的數目小於或等於原來的關係中的元組的個數,它是原關係的乙個子集。
記為: δf(r)≡
5.投影
從關係中挑選若干屬性組成的新的關係稱為投影。這是從列的角度進行運算。經過投影運算可以得到乙個新關係,其關係所包含的屬性個數往往比原關係少,或者屬性的排列順序不同。如果新關係中包含重複元組,則要刪除重複元組。
記為:∏a(r)= a為r中的屬性列。
例如: ∏3,1(r)
關係代數的四個組合操作
1.交關係r和s的交是由屬於r又屬於s的元組構成的集合,記為r∩s。r和s要求定義在相同的關係模式上。
r∩s≡ ,r和s的元數相同。
2.聯接
聯接有兩種:θ聯接和f聯接(θ是算術比較符,f是公式)。
⑴ θ聯接
θ聯接是從關係r和s的笛卡爾積中選取屬性值滿足某一θ操作的元組,記為:
r?×i θj?s,這裡i和j 分別是關係r和s中第 i個、第j個屬性的序號。
r?×i θj?s≡ δi θ (r+j)( r×s )
如果θ是等號「=」,該聯接操作稱為「等值聯接」。
⑵f聯接
f聯接操作是從關係r和s的笛卡爾積中選取屬性值滿足某一公式f的元組,記為:
r?×f?s,這裡的f是形為f1∧f2∧…∧fn的公式,每乙個f都是形為i θj的式子,而i和j 分別是關係r和s中第 i個、第j個屬性的序號。
3.自然聯接
兩個關係r和s的自然聯接用r?×?s表示。具體計算過程如下:
①計算r×s
②設r和s的公共屬性是a1,……,ak,挑選r×s中滿足r .a1=s.a1,……,r.ak=s.ak的那些元組
③去掉s.a1,……, s.ak的這些列。
如果兩個關係中沒有公共屬性,那麼其自然聯接就轉化為笛卡爾積操作。
4.除法
給定關係r(x,y)和s(y,z),其中x,y,z為屬性組。r中的y與s中的y可以有不同的屬性名,但必須出自相同的域集。r與s的除運算得到乙個新的關係p(x),p是r中滿足下列條件的元組在x屬性上的投影:元組在x上分量值x的象集yx包含s在y上投影的集合。
資料庫關係代數
概述 傳統的集合運算 並,差,交,笛卡爾積 專門的關係運算 r和s 具有相同的目n 即兩個關係都有n個屬性 相應的屬性取自同乙個域 r s 仍為n目關係,由屬於r或屬於s的元組組成 r s r和s 具有相同的目n 相應的屬性取自同乙個域 r s 仍為n目關係,由屬於r而不屬於s的所有元組組成 r s...
資料庫 關係代數
目錄 有了資料庫,還要通過查詢來獲得資料。sql是常用的查詢語言,但我想用更抽象的查詢語言來表達,從思路上去理解而忽略實現細節。下面將介紹關係代數。在介紹查詢語言之前,先定義乙個資料庫例項 sailors sid integer,sname string,rating interger,age re...
資料庫的關係代數
並差交使用的前提是 1.這三個操作符所操作的關係有相同的目 即 有相同數目的列屬性 2.相應的屬性取自同乙個 並交差都不改變關係的列數,但是笛卡爾積改變了關係的列數 專門的關係運算 選擇 投影 連線 除 1.選擇 又稱為限制 將符合篩選要求的元組顯示出來 選擇 只改變表元組的數目 2.投影 從原有的...