MySQL入門,第六部分,關係代數

2021-10-04 06:37:44 字數 2370 閱讀 3621

關係代數是一種集合操作為基礎過程化查詢語言,特點:運算物件是關係,運算結果亦為關係

運算物件:關係

運算結果:關係

運算子:四類

運算子型別

運算子含義

集合運算子∪

並集合運算子-差

集合運算子∩交

集合運算子

×廣義笛卡爾積

比較運算子>

大於比較運算子≥

大於等於

比較運算子<小於

比較運算子≤

小於等於

比較運算子

=    

等於比較運算子

≠ 不等於

專門的關係運算子

選擇專門的關係運算子π投影

專門的關係運算子⋈連線

專門的關係運算子÷除

邏輯運算子¬非

邏輯運算子∧與

邏輯運算子∨或

將關係r, s看作是元組的集合,進行交、並及差集合運算,必須具備下列條件:

表示式操作型別

含義r ∪ s

並r、s兩者中元組的集合,乙個元素在並集中只出現一次

r ∩ s

交同時存在於r和s中的元組的集合

r – s

差在r中存在,而在s中不存在的元素的集合

r × s

笛卡爾積

r(n目p元組),s(m目q元組);運算得到的新關係中有(n+m)個目(p×q)個元組

解析:廣義笛卡爾積運算

表示式操作型別

含義備註

舉例σ c (r)

選擇在關係r上選擇滿足條件c的元組,構成乙個新的關係。新關係是r的子集,模式與r相同

條件 c 是乙個邏輯表示式,表示式中可以使用比較運算子和邏輯運算子

σ name = '小明' (student)

π a1,a2,…,an (r)

投影從關係r產生乙個只有r的某些列的新的關係

新的關係中含有舊關係的a1,a2,…,an 列

π name,age (student)

r⋈ aθb s

θ連線從兩個關係r,s的廣義笛卡爾積中選擇屬性間滿足一定條件的元組;記作s⋈r(aθb)

a為包含r中的屬性的表示式,b為包含s中的屬性的表示式,θ通常為關係比較符;

等效於σ aθb (r×s)

student ⋈ sgpa≥cgpa company

r⋈ a=b s

等值連線

當比較運算子θ 為 = 時的θ連線

a為包含r中的屬性的表示式,b為包含s中的屬性的表示式;

等效於σ a=b (r×s)

student ⋈ sgpa=cgpa company

r⋈s自然連線

一種特殊的等值連線。兩個關係中進行比較的分量必須是相同的屬性組。在結果中把重複的屬性列去掉

student ⋈ gpa

r÷s除

詳解見本文最後

詳解見本文最後

詳解見本文最後

解析:自然連線

除法運算:

為什麼把這個分支知識點放到最後單獨來說呢?因為它的概念確實是比較抽象的,單獨靠乙個**確實無法深入的理解,下面我們一步一步來了解什麼是關係代數中的除運算

關係r(a,z)  

a和z為關係r的屬性,a是屬性a中的分量值

a在r中的象集:r中在a上值為a元組在z屬性上對應分量的集合

例如:

首先我們來看一下官方定義:

除運算是同時從關係的水平方向和垂直方向進行運算。給定關係r(x,y)和s(y,z),x、y、z為屬性組。r÷s應當滿足元組在x上的分量值x的象集y,包含關係s在屬性組y上投影的集合

分析:關係 r (a,y)、s (y,z)

p(a) = r÷s      (經過除法運算得到乙個新的關係p(a))

關係r在a上分量值a的象集 稱作 seta

關係s在y屬性組上投影的集合 稱作sety

若seta包含了 sety,  則 a 就是關係p中的元組分量

例如:關係r和關係s擁有共同的屬性cno、r÷s得到的新關係中存在著「關係r包含但關係s不包含「」的屬性,即sno屬性

第六部分總結(51 54)

這一部分主要學習了jquery的節點新增 刪除 替換 複製等操作。外插 1 從後面插after insertafter 效果一樣,寫法不同 2 從前面 efore insertafter 效果一樣,寫法不同 刪除 刪除指定元素 remove detach 效果一樣,寫法不同,如li.remove i...

第六部分 屬性3

attributeusage屬性 除了用於標註常規c 型別的自定義屬性以外,還可以使用attributeusage屬性定義你使用這些屬性的方式.文件記錄的attributeusage屬性呼叫慣例如下 attributeusage validon,allowmultiple allowmultiple...

第六部分 函式的工作原理一

寫這篇文章得益於我最近錢林松 趙海旭寫的新書 c 反彙編與逆向分析 一直希望學習相關的技術,但是一直沒有開始,看到此書後,激發起了我以前的興趣,最近一直在讀這本書,今日將我了解到的知識分享給大家。首先讓我們來看一段最簡單的 includevoid func int first,int second ...