【資料庫系統概念】第6章 形式化關係查詢語言 知識總結
《資料庫系統概念》第6章知識點總結
形式化關係查詢語言
關係代數
關係代數基本運算:選擇、投影、並、集合差、笛卡爾積、更名
基本運算
選擇運算
選出滿足給定謂詞的元組,用sigma(σ)來表示,將謂詞寫作σ的下表
例如:屬於物理系的元組可以這樣寫
通常,我們允許在選擇謂詞中進行比較,使用的是=、≠、<、≤、>、≥
另外,我們可以用連詞將多個謂詞合併為一個較大的謂詞
例如:
投影運算
投影運算是一元運算,它返回作為引數的關係,但把某些屬性排除在外。
用大寫希臘字母pi(π就大概這個樣子寫大點。。。我打不出來2333)
例如:
關係運算的組合
例如:找出物理系的所有教師的名字
並運算
就是將兩個集合並起來
例如:找出開設在2009年秋季學期或者2010年春季學期或者這兩者皆開的所有課程的集合
另一方面,設r和s是資料庫關係或者作為關係代數表示式結果的臨時關係。要使r U s有意義,需滿足以下兩個條件:
(1)關係r和s必須是同元的,即它們的屬性數目必須相同
(2)對所有的i,r的第i個屬性的域必須和s的第i個屬性的域相同
集合差運算
用 - 表示集合差運算,可以找出在一個關係中而不在另一個關係中的那些元組。
例如:找出所有開設在2009年秋季學期但是在2010年春季學期不開的課程
笛卡爾積運算
用X表示笛卡爾積,可以將任意兩個關係的資訊組合在一起。
更名運算
關係代數表示式的結果沒有可供我們引用的名字,我們可以通過小寫希臘字母
返回表示式E的結果,並把名字x賦給了它
返回表示式E的結果,並賦給它名字x,同時將各屬性更名為A1,A2,... ,An
附加的關係代數運算
集合交運算
例如:在2009年秋季和2010年春季都開設的課程
集合交運算與集合差運算的關係:
自然連線運算
用連線符號來表示
自然連線運算首先形成它的兩個引數的笛卡爾積,然後基於兩個關係模式中都出現的屬性上的相等性進行選擇,最後還要去除重複屬性。
例如:找出所有教師的姓名,連同他們教的所有課程的course_id
自然連線是可結合的
theta連線是自然連線的擴充套件,它使得我們可以把一個選擇運算和一個笛卡爾積運算合併為單獨的一個運算,即自然連線是選出笛卡爾積中相同的屬性,而
賦值運算
將R x S的結果賦給temp1
外連線運算
外連線是連線運算的擴充套件,可以處理確實的資訊。有左外連線、右外連線和全外連線
左外連線():取出左側關係中所有與右側關係的任一元組都不匹配的元組,用空值填充所有來自右側關係的屬性,再把產生的元組加到自然連線的結果中。
右外連線():與左外連線相對稱
全外連線():既做左外連線又做右外連線,既填充左側關係中與右側關係的任一元組都不匹配的元組,又填充右側關係中與左側關係的任一元組都不匹配的元組,並把結果都加到連線的結果中。
擴充套件的關係代數運算
廣義投影
廣義投影允許在投影列表中使用算術運算和字串函式等來對投影進行擴充套件。
例如:
聚集
聚集運算可以用來對值的集合使用聚集函式,例如計算最小值或者求平均值
聚集函式:輸入值的一個彙集,將單一值作為結果返回。比如輸入幾個數的集合,返回他們的和作為結果
將distinct新增在函式名後,可以去除重複
例如:
元組關係演算
元組關係演算表示式具有如下形式:
其中P是一個公式,公示中可以出現多個元組變數。如果元組不被“存在”或“任意”修飾,則稱為自由變數。
域關係演算
域關係演算是從屬性域中取值的域變數,而不是整個元組的值。
注:圖片均來自《資料庫系統概念》第6版——機械工業出版社