資料庫 關係代數與關係運算

2021-12-30 06:53:50 字數 2169 閱讀 5761

概述

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

專門的關係運算

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個元組

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

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

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

行:k1k2個元組

rs = 先引入幾個記號

(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的廣義笛卡爾積rs中選取(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 =

關係代數運算集(資料庫)

舉個栗子 現有兩個課程關係表course1 和 course2 表 2 1 course1 courseid coursename credit 101計算機網路 4102 資料庫原理 3103 網路開發 4表 2 2 course2 courseid coursename credit 101計算...

資料庫關係代數

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