資料庫 關係代數

2021-08-18 03:57:44 字數 1846 閱讀 6725

目錄

有了資料庫,還要通過查詢來獲得資料。sql是常用的查詢語言,但我想用更抽象的查詢語言來表達,從思路上去理解而忽略實現細節。下面將介紹關係代數。

在介紹查詢語言之前,先定義乙個資料庫例項:

sailors(sid: integer, sname: string, rating: interger, age: real)

boats(bid: integer, bname: string, color: string)

reserves(sid: integer, bid: integer, day: date)

選擇和投影均可對單個關係進行操作。選擇行的操作符為 σ

\sigma

σ,投影列的操作符為 π

\piπ,兩種操作均可以新增檢索條件。

等級大於8的水手: σra

ting

>8(

sail

ors)

\sigma}(sailors)

σratin

g>8​

(sai

lors

)所有水手名字和等級:πsn

ame,

rati

ng(s

ailo

rs

)\pi}(sailors)

πsname

,rat

ing​

(sai

lors

)每個關係都可以看作例項的集合,因此可以對兩個關係進行集合操作。集合操作包括交,並,差以及笛卡爾積,操作符分別為 ⋂

\bigcap

⋂,⋃\bigcup

⋃,−-

−,×\times

×。兩個關係進行集合操作的結果仍為關係。

連線操作包括條件連線、相等連線和自然連線,操作符為 ⋈

\join

⋈。連線本質上是求笛卡爾積,條件連線是只對符合條件的元組進行連線,相等連線是條件為相等表示式的連線,自然連線是只對存在同名字段的元組進行連線。

所有水手預訂的船隻:sai

lors

⋈res

erve

s⋈bo

at

ssailors\join reserves\join boats

sailor

s⋈re

serv

es⋈b

oats

除並不是基本操作,雖然可以用操作符 ∖

\setminus

∖ 表示,但實際上除是由其它操作定義的。考慮兩個關係例項 a

aa 和 b

bb,a

aa 有且僅有字段 x

xx 和 y

yy,而 b

bb 只有乙個字段 y

yy。a∖b

a\setminus b

a∖b 定義為滿足如下條件的 x

xx 的集合,對於 b

bb 中每個元組 y

yy,在 a

aa 中都有乙個元組

y>

y>

與之對應。

a ∖b

a\setminus b

a∖b 定義為:πx(

a)−π

x((π

x(a)

×b)−

a)

\pi(a) - \pi((\pi(a) \times b) - a)

πx​(a)

−πx​

((πx

​(a)

×b)−

a)raghu ramakrishnan, johannes gehrke. database management systems (third edition)[m]. 北京:清華大學出版社, 2003.

資料庫關係代數

概述 傳統的集合運算 並,差,交,笛卡爾積 專門的關係運算 r和s 具有相同的目n 即兩個關係都有n個屬性 相應的屬性取自同乙個域 r s 仍為n目關係,由屬於r或屬於s的元組組成 r s r和s 具有相同的目n 相應的屬性取自同乙個域 r s 仍為n目關係,由屬於r而不屬於s的所有元組組成 r s...

資料庫 關係代數除法

定義如下 專門的關係運算 除給定關係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語言。關係代數的五個基本運算 關係...