第4章 關(guān)系運(yùn)算
4.1 關(guān)系代數(shù)
基于集合運(yùn)算分類
傳統(tǒng)的集合運(yùn)算:并、差、交、乘積
專門的關(guān)系運(yùn)算:選擇、投影、連接、自然連接、除法等
基于關(guān)系代數(shù)完備性分類
五種基本運(yùn)算:并、差、乘積、選擇、投影,構(gòu)成關(guān)系代數(shù)完備運(yùn)算集
其他擴(kuò)充運(yùn)算:交、連接、自然連接、除法等
4.1.1 關(guān)系代數(shù)的五種基本運(yùn)算
并:與集合論中的求和運(yùn)算相同
合并的結(jié)果中必須刪除重復(fù)的元組
必須是相容的關(guān)系
差:與集合論中的差運(yùn)算相同
乘積:由原來兩個集合中的元組連接而成新的元組
乘積的基等于原來兩個關(guān)系的基的乘積
選擇:對關(guān)系進(jìn)行水平分割
投影:對關(guān)系進(jìn)行垂直分割
4.1.2 關(guān)系代數(shù)的其他運(yùn)算
交:與集合論中的交運(yùn)算相同
R∩S=R-(R-S)=S-(S-R)
連接:θ連接與F連接(多個θ比較)
自然連接:
默認(rèn)公共屬性上的等值連接。
自然連接是一種很實(shí)用的操作,用于表達(dá)數(shù)據(jù)間聯(lián)系結(jié)果。
如果兩個關(guān)系沒有公共屬性,則自然連接轉(zhuǎn)化為乘積運(yùn)算。
除法:乘積的逆運(yùn)算。
外連接:連接的擴(kuò)充運(yùn)算,目的是保留那些連接時被舍棄的元組。
外連接(又稱全外連接)
左外連接
右外連接
外部并:并的擴(kuò)充運(yùn)算,目的是滿足不相容的兩個關(guān)系求并的需要。
4.2 關(guān)系演算
關(guān)系演算就是數(shù)理邏輯的謂詞演算推廣到關(guān)系運(yùn)算中
元組演算:以元組為變量
域演算:以域?yàn)樽兞?/h6> 4.2.1 元組關(guān)系演算
一個關(guān)系可以用一個元組表達(dá)式表示
原子公式
自由元組變量:原子公式中沒有使用存在量詞和全稱量詞的元組變量
約束變量:原子公式中使用了存在量詞和全稱量詞的元組變量
公式:定義是可遞歸的
每個原子公式是一個公式,其中的元組變量是自由變量
所有公式都可以按照規(guī)則進(jìn)行有限次復(fù)合求得
公式等價變換
QUEL:基于元組關(guān)系演算的數(shù)據(jù)查詢語言
4.2.2 域關(guān)系演算
原子公式
公式:定義是可遞歸的
元組表達(dá)式與域表達(dá)式的轉(zhuǎn)換
QBE:基于域演算的數(shù)據(jù)查詢語言
4.2.3 關(guān)系演算安全約束簡介
安全約束是對關(guān)系運(yùn)算附加的一種限制
關(guān)系代數(shù):舍棄“補(bǔ)”運(yùn)算,保證安全性
關(guān)系演算:規(guī)定有限集合DOM(B),防止無限關(guān)系和無窮驗(yàn)證過程的出現(xiàn),保證安全性。
經(jīng)過安全約束的三類運(yùn)算具有同等的表達(dá)能力。
備注:
《數(shù)據(jù)庫技術(shù)基礎(chǔ)與應(yīng)用(第2版)》的豆瓣鏈接https://book.douban.com/subject/2995584/