数据库MySQL关系模型之关系代数
關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同可分為
- 傳統(tǒng)的集合運(yùn)算(并、差、交、笛卡爾積)
- 專門的關(guān)系運(yùn)算(選擇、投影、連接、除運(yùn)算)
關(guān)系代數(shù)運(yùn)算的約束
某些關(guān)系代數(shù)操作,如并、差、交等需滿足 “并相容性”,下面是一個(gè)并相容性的示例:
STUDENT(SID `char(10)`,Sname `char(8)`,Age `char(3)`) PROFESSOR(PID `char(10)`,Pname `char(8)`,Age `char(3)`)兩個(gè)關(guān)系是相容的.
并(Union)
定義:假設(shè)關(guān)系R和關(guān)系S是相容的,則關(guān)系R與關(guān)系S的并運(yùn)算結(jié)果也是一個(gè)關(guān)系,記作:RUS,它由或者出現(xiàn)在關(guān)系R中,或者出現(xiàn)在S中的元組構(gòu)成.
數(shù)學(xué)描述R∪S={ t | t∈R∨t∈S},其中t是元組
并運(yùn)算是將兩個(gè)關(guān)系的元組合并成一個(gè)關(guān)系,在合并時(shí)去掉重復(fù)的元組
差(Difference)
定義:假設(shè)關(guān)系R和關(guān)系S是相容的,則關(guān)系R與關(guān)系S的并運(yùn)算結(jié)果也是一個(gè)關(guān)系,記作:R-S,它由出現(xiàn)在關(guān)系R中但不出現(xiàn)在關(guān)系S中的元組構(gòu)成.
數(shù)學(xué)描述:R-S = { t | t∈R ∧ t?S} (可以把t看做上圖R-S中的f,b,e元組)
廣義笛卡爾積(Cartesian Product)
RxS,它由關(guān)系R中的元組和關(guān)系S的元組進(jìn)行所有可能的拼接(或串接)構(gòu)成.(通過下圖可以更好理解)
數(shù)學(xué)描述(復(fù)試筆試出現(xiàn)了這個(gè),可惜當(dāng)時(shí)沒看懂)
這里的笛卡兒積嚴(yán)格地講應(yīng)該是廣義的笛卡兒積( extended cartesian product),因?yàn)檫@里笛卡兒積的元素是元組。
兩個(gè)分別為n目(就是列數(shù),上圖中n=2)和m目(上圖中m=3)的關(guān)系R和S的笛卡兒積是一個(gè)(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。若R有k1個(gè)元組,S有k2個(gè)元組,則關(guān)系R和關(guān)系S的笛卡兒積有k1 * k2個(gè)元組。
記作
選擇(Select)
選擇又稱為限制(restriction),它是在關(guān)系R中選擇滿足給定條件的諸元組
數(shù)學(xué)描述
F表示選擇條件,它是一個(gè)邏輯表達(dá)式,取真或假
投影(Project)
從關(guān)系R中選出屬性包含在A中的 列 構(gòu)成,投影運(yùn)算可以對(duì)原關(guān)系的列在投影后重新排列.
其中A為R中的屬性列
交(Intersection)
由同時(shí)出現(xiàn)在關(guān)系R和關(guān)系S中的元組構(gòu)成
示例一
Θ-連接(Θ-Join,theta-Join)
投影與選擇操作只是對(duì)單個(gè)關(guān)系(表)進(jìn)行操作,而實(shí)際應(yīng)用中往往涉及多個(gè)表之間的操作,這就需要Θ-連接操作. Θ是比較運(yùn)算符(<,>,=)
示例一(條件B<=H)
步驟:先計(jì)算笛卡爾積,如圖中間所示,然后按照B<=H選擇合適的行,最右邊是連接操作,將符合B小于等于H的進(jìn)行連接.
Θ-連接步驟
第一步:對(duì)兩個(gè)表進(jìn)行笛卡爾積
第二步:從廣義笛卡爾積中選出符合條件的元組
第三步:進(jìn)行投影操作,得到最終的結(jié)果
等值連接
由關(guān)系R和關(guān)系S的笛卡爾積中選取R中屬性A與S中屬性B上的值相等的元組所構(gòu)成,當(dāng)Θ-連接中運(yùn)算符為=時(shí),就是等值連接,等值連接是Θ-連接的一個(gè)特例.
示例一
示例二
自然連接
由關(guān)系R和關(guān)系S的笛卡爾積中選取屬性組B上值相等的元組所構(gòu)成.
- 自然連接時(shí)一種特殊的等值連接
- 要求關(guān)系R和關(guān)系S必須有相同的屬性組B(參考上面等值連接例子)
- R,S屬性相同,值必須相等才能連接.
示例一
外鏈接
除運(yùn)算
除法運(yùn)算經(jīng)常用于求解"查詢…全部的/所有的…"的問題
R÷S結(jié)果的屬性應(yīng)該是R的屬性去掉S在R中的屬性
R÷S元組與S中每一個(gè)元組的組合必須在R中
示例一
總結(jié)
以上是生活随笔為你收集整理的数据库MySQL关系模型之关系代数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop伪分布安装及简单使用
- 下一篇: Linux 安装 Elasticsear