MOOC 資料庫筆記(四) 關係代數

2022-01-29 03:27:34 字數 4311 閱讀 1226

基於集合,提供了一系列的關係代數操作:並、差、笛卡爾積(廣義積)、選擇、投影和更名等基本操作

以及交、連線和關係除等擴充套件操作,是一種集合思維的操作語言。

關係代數操作以乙個或多個關係為輸入,結果是乙個新的關係。

用對關係的運算來表達查詢,需要指明所用的操作,具有一定的過程性。

∩∪×-ρσπ÷⋈(從左往右分別為:並、交、廣義積(笛卡爾積)、差、更名、選擇、投影、除、連線)θ ∨∧

π姓名、課程名(σ課程號=c2(r⋈s))

是一種抽象的語言,是學習其他資料庫語言,如sql等的基礎。

可分為:集合操作和純關係操作

(1)集合操作

①union(並) r∪s

②intersection(交) r∩s

③difference(差) r-s

④cartesian product(笛卡爾積) r×s

(2)純關係操作

①project(投影) πa(r)

②select(選擇) σcon(r)

③join(連線) r⋈(aθb)s

④division(除) r÷s

(0).並相容性

某些關係代數操作,如並、差、交等,需滿足「並相容性」

參與運算的兩個關係及相關屬性之間有一定的對應性、對比性或意義關聯性。

定義:關係r與關係s存在相容性,當且僅當:

(1)關係r和關係s的屬性數目必須相同;

(2)對於任意i,關係r的第i個屬性的域必須和關係s的第i個屬性的域相同

假設:r(a1,a2,...,an),s(b1,b2,...,bm)

r和s滿足並相容性:n=m並且domain(ai)=domain(bi)

(1).並(union)

定義:假設關係r和關係s是並相容的,則關係r與關係s的並運算結果也是乙個關係,記作:r∪s,它由或者出現在關係r中,或者出現在s中的元組構成。

數學描述:r∪s=,其中t是元組

並運算是將兩個關係的元組合並成乙個關係,在合併時去掉重複的元組。

r∪s與sur運算的結果是同乙個關係。

漢語中的「或者...或者...」通常意義是並運算的要求。

(2)差(difference)

定義:假設關係r和關係s是並相容的,則關係r與關係s的差運算結果也是乙個關係,記作:r-s,它由或者出現在關係r中但不出現在s中的元組構成。

數學描述:r-s=,其中t是元組

r-s與s-r是不同的

漢語中的「是...但不含...」通常意義是差運算的要求。

(3)廣義笛卡爾積(cartesian product)

定義:關係r(1,a2,...,an>)與關係s(1,b2,...,bm>)的廣義笛卡爾積(簡稱廣義積,或者積或者笛卡爾積)運算結果也是乙個關係,記作:r×s,它由關係r中的關係s的元組進行所有可能的拼接(或串接)構成。

數學描述:r×s=

當乙個檢索設計到很多表時(如學生表和課程表),便需要將這些表串接或拼接起來,染後才能檢索,這時,就要使用廣義笛卡爾積運算

是後面學習各種連線運算的基礎。

r×s=s×r

兩個關係r和s,它們的屬性個數分別為n和m,元組個數分別為x和y(r是n度關係,s是m度關係)。

則笛卡爾積r×s的屬性個數=n+m。

則笛卡爾積r×s的元組個數=x×y。

(4)選擇(select)

定義:給定乙個關係r,同時給定乙個選擇的條件condition(簡記con),選擇運算結果也是乙個關係,記作σcon(r),它從關係r中選擇出滿足給定條件condition的元組構成。

數學描述:σcon(r)=,

設r(a1,a2,...,an),t是r的元組,t的分量記為t[ai],或者簡寫為ai

條件con由邏輯運算子連線比較表示式組成(邏輯運算子∨,∧,┐,或者寫為and,or,not)

比較表示式:xθy,其中x,y是t的分量、常量或簡單函式,θ是比較運算子,θ∈。

(5)投影(project)

定義:給定乙個關係r,投影運算結果也是乙個關係,記作πa(r),它從關係r中選出屬性包含在a中的列構成。

數學描述:πai1,ai2,...,aik(r)=

設r(a1,a2,...,an)

∈t[ai]表示元組t中相應於屬性中的分量。

投影運算可以對原關係的列在投影後重新排列

投影操作從給定關係中選出某些列組成新的關係,而選擇操作是從給定關係中選出某些行組成新的關係。

(1)交(intersection)

定義:假設關係r和關係s是並相容的,則關係r與關係s的交運算結果也是乙個關係,記作:r∩s,它由同時出現在關係r和關係s中的元組構成。

數學描述:r∩s=,其中t是元組

r∩s和s∩r的運算結果是同乙個關係。

交運算可以通過差運算來實現:

r∩s=r-(r-s)=s-(s-r)

漢語中的「既...又...」,「...,並且...」通常意義是交運算的要求。

(2)θ-連線(θ-join,theta-join)

投影與選擇操作只是對單個關係(表)進行操作,而實際引用中往往涉及多個表之間的操作,這就需要θ-連線操作。

定義:給定關係r和關係s,r與s的θ連線運算結果也是乙個關係,記作r⋈s(aθb),它由關係r和關係s的笛卡爾積中,選取r中屬性a與s中屬性b之間滿足θ條件的元組構成。

數學描述:r⋈s(aθb)=σt[a]θs[b](r×s)

設r(a1,a2,...,an),a∈

設s(a1,a2,...,an),b∈

t是關係r中的元組,s是關係s中的元組

屬性a和屬性b具有可比性。

θ是比較運算子,θ∈

在實際引用中θ-連線操作經常與投影、選擇操作一起使用。

關係與自身的θ-連線

有時在使用連線操作時我們需要自連線。這時候我們就要用到更名操作ρ。

使用ρ進行更名操作,ρnname(oname)

其中nname為新的名字,oname為以前的名字。

等值連線(equi-join)

當θ為=,就是等值連線,等值連線是θ-連線的乙個特例(區別於自然連線)。

(1)自然連線(natural-join)

定義:給定關係r和關係s,r與s的而自然連線運算也是乙個關係,記作r⋈s,它由關係r和關係s的笛卡爾積中,選取相同屬性組b上相等的元組所構成。

數學描述:r⋈s=σt[b]=s[b](r×s)

自然連線是一種特殊的等值連線。

要求關係r和關係s必須有相同的屬性組b(如r,s共有乙個屬性b1,則b是b1,如r,s共有一組屬性b1,b2,...,bn,則b是這些共有的所有屬性)

r,s屬性相同,值必須相等才能連線,即:

r.b1=s.b1 and r.b2=s.b2 ... r.bn=s.bn才能連線。

要在結果中去掉重複的屬性列(因結果中r.bi始終是等於s.bi所以可只保留一列即可)。

(1)除(division)

除法運算常用於求解「查詢...全部的/所有的...」問題

前提條件:給定關係r(a1,a2,...,an)為n度關係,關係s(b1,b2,...,bm)為m度關係。如果可以進行關係r與關係s的除運算,當且僅當:屬性集是屬性集的真子集,即m1,c2,...,ck}=-,則有k=n-m則r÷s的結果關係是k度關係,由屬性構成。

再定義r÷s的元組怎樣組成?

再設關係r(a1,a2,...,an)和關係s(b1,b2,...,bm),那麼r÷s結果關係為元組的集合,元組滿足下列條件:

它與s中每乙個元組組合形成的乙個新元組都是r中的某乙個元組。(其中,a1,...,an,b1,...,bm,c1,...,ck分別是屬性a1,...,an,b1,...,bm,c1,...,ck的值)

數學描述:r÷s==πr-s(r)-πr-s((πr-s(r)×s)-r)

(1)外連線(outer-join)

外連線問題的提出:有時在進行自然連線操作時會忽略掉沒有某一項屬性的元組,而我們恰恰需要整理出所有元組,這時候我們就需要外連線。

定義:兩個關係r與s進行連線時,如果r(或s)中的元組在s(或r)中找不到相匹配的元組,則為了避免該元組資訊丟失,從而將該元組與s(或r)中假定存在的全為空值的元組連線,放置在結果關係中,這種連線稱之為外連線(outer join)。

外連線=自然連線(或θ連線)+失配的元組(與全空元組形成的連線)

外連線的形式:左外連線、右外連線、全外連線。

左外連線=自然連線(或θ連線)+左側表中失配的元組

右外連線=自然連線(或θ連線)+右側表中失配的元組

全外連線=自然連線(或θ連線)+兩側表中失配的元組

左外連線(left outer join)記為:r⋊s

右外連線(right outer join)記為:r⋉s

全外連線(full outer join)記為:r⋈s

資料庫關係代數

概述 傳統的集合運算 並,差,交,笛卡爾積 專門的關係運算 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...

資料庫 關係代數除法

定義如下 專門的關係運算 除給定關係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 yx x在...