資料庫關係代數

2021-08-09 09:17:18 字數 2647 閱讀 6353

概述 

傳統的集合運算 (並,差,交,笛卡爾積) 

專門的關係運算

r和s

具有相同的目n(即兩個關係都有n個屬性)

相應的屬性取自同乙個域

r∪s

仍為n目關係,由屬於r或屬於s的元組組成

r∪s =

r和s

具有相同的目n

相應的屬性取自同乙個域

r - s

仍為n目關係,由屬於r而不屬於s的所有元組組成

r -s =

r和s

具有相同的目n

相應的屬性取自同乙個域

r∩s仍為n目關係,由既屬於r又屬於s的元組組成

r∩s =

r∩s = r –(r-s)

r: n目關係,k1個元組

s: m目關係,k2個元組

r×s

列:(n+m)列元組的集合

元組的前n列是關係r的乙個元組

後m列是關係s的乙個元組

行:k1×k2個元組

r×s =

先引入幾個記號

(1) r,tr,t[ai]

設關係模式為r(a1,a2,…,an)

它的乙個關係設為r

tr表示t是r的乙個元組

t[ai]則表示元組t中相應於屬性ai的乙個分量

(2) a,t[a], a

若a=,其中ai1,ai2,…,aik是a1,a2,…,an中的一部分,則a稱為屬性列或屬性組。

t[a]=(t[ai1],t[ai2],…,t[aik])表示元組t在屬性列a上諸分量的集合。

a則表示中去掉後剩餘的屬性組。

(3) tr ts

r為n目關係,s為m目關係。

tr r,tss, tr ts稱為元組的連線。

tr ts是乙個n + m列的元組,前n個分量為r中的乙個n元組,後m個分量為s中的乙個m元組。

(4)象集zx

給定乙個關係r(x,z),x和z為屬性組。

當t[x]=x時,x在r中的象集(images set)為:

zx=它表示r中屬性組x上值為x的諸元組在z上分量的集合

1)連線也稱為θ連線

2)連線運算的含義

從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組

r s =

a和b:分別為r和s上度數相等且可比的屬性組

θ:比較運算子

連線運算從r和s的廣義笛卡爾積r×s中選取(r關係)在a屬性組上的值與(s關係)在b屬性組上值滿足比較關係θ的元組

3)兩類常用連線運算

等值連線(equijoin)

什麼是等值連線

θ為「=」的連線運算稱為等值連線

等值連線的含義

從關係r與s的廣義笛卡爾積中選取a、b屬性值相等的那些元組,即等值連線為:

r s =

自然連線(natural join) 

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

兩個關係中進行比較的分量必須是相同的屬性組(同名同域:必須具有相同的屬性名,並且出自相同的域集)

在結果中把重複的屬性列去掉

自然連線的含義

r和s具有相同的屬性組b

r s =

一般的連線操作是從行的角度進行運算。

自然連線還需要取消重複列,所以是同時從行和列的角度進行運算。

外連線

在做自然連線時,如果把捨棄的元組也儲存在結果關係中,而在其他屬性上填空值(null),這種連線就叫做外連線(outer join)。

左外連線

在做自然連線時,如果只把左邊關係r中要捨棄的元組保留就叫做左外連線(left outer join或left

join)

右外連線

在做自然連線時,如果只把右邊關係s中要捨棄的元組保留就叫做右外連線(right outer join或right

join)。

給定關係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在r中的象集,x = tr[x]

在關係r中,a可以取四個值

a1的象集為

a2的象集為

a3的象集為

a4的象集為

s在(b,c)上的投影為

只有a1的象集包含了s在(b,c)屬性組上的投影

所以 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在...

資料庫的關係代數

關聯式資料庫的資料操作分為查詢和更新兩類。查詢語句用於各種檢索操作,更新操作用於插入 刪除和修改等操作。關係查詢語言根據其理論基礎的不同分成兩大類 1.關係代數語言 查詢操作是以集合操作為基礎運算的dml語言。2.關係演算語言 查詢操作是以謂詞演算為基礎運算的dml語言。關係代數的五個基本運算 關係...