數(shù)據(jù)庫(kù)6版講稿第六章-形式化關(guān)系查詢語(yǔ)言_第1頁(yè)
數(shù)據(jù)庫(kù)6版講稿第六章-形式化關(guān)系查詢語(yǔ)言_第2頁(yè)
數(shù)據(jù)庫(kù)6版講稿第六章-形式化關(guān)系查詢語(yǔ)言_第3頁(yè)
數(shù)據(jù)庫(kù)6版講稿第六章-形式化關(guān)系查詢語(yǔ)言_第4頁(yè)
數(shù)據(jù)庫(kù)6版講稿第六章-形式化關(guān)系查詢語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

DATABASESYSTEMCONCEPTS第六章形式化關(guān)系查詢語(yǔ)言2023/2/11數(shù)據(jù)庫(kù)系統(tǒng)概念前言

6.1關(guān)系代數(shù)2023/2/12數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系模型關(guān)系模型的數(shù)學(xué)定義1域定義:值的集合,一組域D1,D2,…,Dn

。2笛卡爾積定義:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}集合元素:(d1,d2,…,dn)為n元組?;鶖?shù):若Di為有限集,mi為Di的取值個(gè)數(shù),則笛卡爾積的基數(shù)為:m=Πmi2023/2/13數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系模型笛卡爾積為一個(gè)二維表。表的行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。表的行數(shù)為m。例如,給出三個(gè)域D1=男人集合={張華,李平}

D2=女人集合={劉琴,許芳}D3=兒童集合={張立新,李國(guó)慶}

D1×D2×D3={(張華,劉琴,張立新),(張華,劉琴,李國(guó)慶),…,(李平,許芳,李國(guó)慶)}三個(gè)域的元素窮舉結(jié)合一遍形成的表,共計(jì)8行2023/2/14數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、關(guān)系模式關(guān)系模式及關(guān)系定義關(guān)系模式由關(guān)系名、屬性、域、屬性與域之間的映象、完整性約束、屬性間函數(shù)依賴定義。一般只取關(guān)系名、屬性名表示。關(guān)系模式:R=(A1,A2,…,An),R:關(guān)系名屬性名:Ai(1≤i≤n)屬性集:U={A1,A2,...,An},R=(U)關(guān)系的目:n,n=1,單元關(guān)系,n=2,二元關(guān)系

2023/2/15數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、關(guān)系模式關(guān)系:定義為D1×D2×…×Dn的子集,有實(shí)際意義。例如,家庭關(guān)系,同屬相關(guān)系關(guān)系表示:

r或r(R),元組表示:tr={t1,t2,…,tm}ti∈D1×D2×…×Dn,1≤i≤mrD1×D2×…×Dn字段表示:Ak(ti),ti在屬性Ak上的取值2023/2/16數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、關(guān)系模式關(guān)系子模式:R=(X),X為{A1,A2,…,An}子集,部分屬性形成的投影元組投影:ti(X),元組的部分屬性值一個(gè)關(guān)系模式下可以建若干個(gè)關(guān)系,例如,學(xué)生關(guān)系模式下可以建:學(xué)生1,學(xué)生22023/2/17數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述關(guān)系代數(shù):一種抽象的查詢語(yǔ)言,基于集合論,是DML的傳統(tǒng)表達(dá)方式,表達(dá)關(guān)系的查詢,插入,刪除,修改等操作運(yùn)算對(duì)象:元組運(yùn)算結(jié)果:仍是關(guān)系,可以再參與其他關(guān)系運(yùn)算,由此復(fù)合成各種復(fù)雜的操作集合運(yùn)算:并、交、差、廣義笛卡爾積。專用運(yùn)算:選擇、投影、連接、除、更名、賦值。2023/2/18數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述五種基本運(yùn)算:并、差、笛卡爾積、選擇、投影,其他運(yùn)算可以用基本運(yùn)算表示。關(guān)系代數(shù)的運(yùn)算符:比較運(yùn)算符:大于(>),大于等于(≥),小于(<=),小于等于(≤),等于(=),不等于(≠)邏輯運(yùn)算符:非(

),與(∧),或(∨)一.記號(hào)關(guān)系模式R=(A1,A2,…,An),關(guān)系r2023/2/19數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述t∈r表示t是r的一個(gè)元組t[Ai]表示元組t在屬性Ai的一個(gè)分量A={Ai1,Ai2,…,Aik},表示屬性集U的部分A為屬性組,A為{A1,A2,…,An},去掉{Ai1,Ai2,…,Aik}后剩余屬性t[A]=(t[Ai1],t[Ai2],…,t[Aik])是元組t在A上的投影

tr⌒ts:元組的連接,tr∈r,ts∈s,r為n目,s為m目,tr⌒ts為n+m目的元組,前n個(gè)值屬于r,后m個(gè)值屬于s

2023/2/110數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述樣本表:1.教材中圖6-22:employee雇員,works工作,company公司,manages經(jīng)理2.學(xué)生=(學(xué)號(hào),姓名,性別、年齡,系別)課程=(課程號(hào),課程名,先行課號(hào),學(xué)分)選課=(學(xué)號(hào),課程號(hào),成績(jī))2023/2/111數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述學(xué)生

學(xué)號(hào)姓名性別年齡系別

98001張平男19計(jì)算機(jī)98002王欣女19計(jì)算機(jī)98003李華女20數(shù)學(xué)98004趙巖男18外語(yǔ)

2023/2/112數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述課程

課程號(hào)課程名先行課號(hào)學(xué)分1數(shù)據(jù)庫(kù)54

2數(shù)學(xué)null63軟件工程544操作系統(tǒng)745數(shù)據(jù)結(jié)構(gòu)746計(jì)算機(jī)網(wǎng)絡(luò)43

7C語(yǔ)言

null

32023/2/113數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、關(guān)系代數(shù)概述選課

學(xué)號(hào)課程號(hào)成績(jī)9800119098001286980015929800258098002177

98002394

2023/2/114數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算集合運(yùn)算

1.并:r∪s

{t|t∈r∨t∈s}說(shuō)明:r和s相同的目n,結(jié)果為關(guān)系仍為n目,作用是插入操作。2.差:r-s≡{t|t∈r∧ts}說(shuō)明:r和s相同的目n,結(jié)果為關(guān)系仍為n目,由屬于r而不屬于s的元組組成,

作用是刪除操作,修改操作:(r-s)∪s‘2023/2/115數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算3.交:

r∩s

≡{t|t∈r∧t∈s}說(shuō)明:r和s相同的目n,結(jié)果為關(guān)系仍為n目,由屬于r也屬于s的元組組成,運(yùn)算可由并、差運(yùn)算表示:r∩s

≡r-(r-s)4.笛卡爾積:

r×s

{tr⌒ts|tr∈r∧ts∈s}

說(shuō)明:結(jié)果為關(guān)系是(n+m)目,前n列是r的元組,后m列是s的元組,區(qū)別相同屬性加表名為前綴,元組連串,窮舉性結(jié)合2023/2/116數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算專門運(yùn)算:選擇、投影、連接、除

1.選擇:σF(r)≡{t|t∈r∧F(t)=“真”}說(shuō)明:將表r掃描一遍,從中選取滿足給定條件F的元組形成新關(guān)系,用于表的檢索。查找效率由比較次數(shù)決定,中間表行數(shù)應(yīng)盡量小,F(xiàn)為邏輯表達(dá)式:(1)αθβ,α,β是屬性、常量或簡(jiǎn)單函數(shù),但不能同為常量,θ{,,,,,≠}(2)邏輯運(yùn)算符

,∧,∨連成復(fù)合邏輯條件。2023/2/117數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:找出年齡小于20歲且外語(yǔ)系的學(xué)生。解:σ年齡<20)∧系別=“外語(yǔ)”(學(xué)生)

結(jié)果為{(98004,趙巖,18,外語(yǔ))}例

:找出所有學(xué)生。解:σT(學(xué)生)2.投影

ΠA(r)={t[A]|t∈r}

說(shuō)明:從r中選擇出若干屬性列組成新的關(guān)系,是單表運(yùn)算,A={Ai1,Ai2,…,Aik}

2023/2/118數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:求所有學(xué)生的姓名、年齡。解:

Π姓名,年齡(學(xué)生)

結(jié)果為:{(張平,19),(王欣,19),(李華,20),(趙巖,18)}例:找出小于20歲的學(xué)生姓名和性別。解:

Π姓名,性別(σ年齡<20(學(xué)生))結(jié)果為:{(張平,男),(王欣,女),(趙巖,男)}2023/2/119數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:找出已選課的學(xué)生的學(xué)號(hào)。解:Π學(xué)號(hào)(選課)結(jié)果為:{(98001),(98002)},投影之后,取消重復(fù)行,原表6個(gè)元組,變?yōu)閮蓚€(gè),這是關(guān)系性質(zhì)決定的.哪個(gè)性質(zhì)?2023/2/120數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算3.自然連接與條件連接自然連接:

r∞s={tr⌒ts[

B]|tr∈r∧ts∈S∧tr[B]=ts[B]}設(shè)關(guān)系R與S有共同屬性B={B1,B2,…Bk},兩關(guān)系的共同屬性進(jìn)行等值比較,值相同的連接成一個(gè)新元組,其屬性是R的全部屬性和S中去掉共同屬性后的剩余部分2023/2/121數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算說(shuō)明:(1)兩表有共同屬性,沒(méi)有,是笛卡爾積(2)比較是對(duì)應(yīng)屬性值間的等值比較(3)比較步驟:第一個(gè)表走一步,第二個(gè)表走一遍,二重循環(huán)。比較次數(shù)是兩表行數(shù)之積,中間表要小,結(jié)果表行數(shù)取決相等的元組數(shù)(4)結(jié)果屬性只保留共有一部分,不用前綴(5)主要作用是通過(guò)外碼擴(kuò)展其他屬性(6)另一作用是一個(gè)表去選擇另一表的元組2023/2/122數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算基本運(yùn)算表示:r∞S=ΠA1,A2,…,An,Bk+1,…,Bm(σAi1=B1∧Ai2=B2…∧Aik=Bk(r×s))例:找出選修數(shù)據(jù)庫(kù)課程,且成績(jī)大于90的學(xué)生姓名。分析:數(shù)據(jù)庫(kù)在課程表中,成績(jī)?cè)谶x課表中,姓名在學(xué)生表中,通過(guò)自然連接,把屬性湊齊。2023/2/123數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

解:(1)

Π姓名(σ課程名=“數(shù)據(jù)庫(kù)”∧成績(jī)>90(學(xué)生∞選課∞課程))解:(2)

Π姓名(σ成績(jī)>90(σ課程名=“數(shù)據(jù)庫(kù)”(課程)∞選課)∞學(xué)生)解:(3)

Π姓名((σ課程名=“數(shù)據(jù)庫(kù)”(課程))∞(σ成績(jī)>90(選課)∞學(xué)生)對(duì)比三種解,比較次數(shù)有差別嗎?2023/2/124數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算條件連接:稱為θ連接。選取屬性間滿足比較條件的元組。記作

r∞s

AθB

={tr⌒

ts|tr∈r∧ts∈s∧tr(A)θts(B)}其中A和B分別是R和S上的度數(shù)相等且類型可比的屬性組,θ是比較運(yùn)算符或邏輯運(yùn)算符連成的條件表達(dá)式說(shuō)明:等價(jià)基本運(yùn)算表達(dá):

r∞s

AθB

=σAθB(r×s)2023/2/125數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算說(shuō)明:兩個(gè)關(guān)系合并成一個(gè)新的關(guān)系,先笛卡爾積再選擇。主要解決屬性名不一樣的屬性之間的值比較比較不僅是等值中間表的屬性名有表前綴例:求課程名和先行課名?2023/2/126數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算4.除象集:R=(X,Y),X,Y為R的屬性組,當(dāng)t[X]=x時(shí),x在r中的象集

Yx={t[Y]|t∈r∧t[X]=x}理解:R的屬性任分兩組X,Y,任給值x,r中X部分等于x的行,在Y上的投影形成一個(gè)象集。每給具體的x,都有一個(gè)象集,可能是空。

2023/2/127數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

例:rABCX={A},Y={B,C}a1b1c2X=a1BCa1=BCa2b2c7b1c2a3b4c6b2c3a1b2c3b2c1a4b6c6a2b2c3X=a5BCa5=?

a1b2c12023/2/128數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算除運(yùn)算的定義:R=(X,Y),S=(Y),對(duì)應(yīng)兩個(gè)表r、s則:

r÷s={tr[X]|tr∈r∧S

Yx

}說(shuō)明:(1)對(duì)r中X的每個(gè)值x求象集,包含S的,X部分的值作為元組加入到結(jié)果關(guān)系(2)根據(jù)S劃分R為X、Y兩部分基本運(yùn)算表達(dá):

r÷S=ΠX(r)-ΠX(ΠX(r)×S-r)

2023/2/129數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算rABC

s=BC

r÷s=Aa1b1c2b1c2a1a3b4c6b2c1a1b2c3b2c3a4b6c6a2b2c3s=C

r÷s=?

a1b2c1

c3

2023/2/130數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:找出選修了所有課程的學(xué)生的學(xué)號(hào):

解:Π學(xué)號(hào),課程號(hào)(選課)÷Π課程號(hào)(課程)注意:1)除運(yùn)算是包含判斷

2)對(duì)語(yǔ)義“全部”、“所有”的處理

3)除運(yùn)算要湊準(zhǔn)格式

選課÷Π課程號(hào)(課程)是什么結(jié)果?2023/2/131數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算四.關(guān)系代數(shù)查詢實(shí)例

例:檢索先行課號(hào)為‘5’的課程名。

課程號(hào)課程名先行課號(hào)學(xué)分

課程名t→

1數(shù)據(jù)庫(kù)54→

數(shù)據(jù)庫(kù)

2數(shù)學(xué)6軟件工程

3軟件工程544操作系統(tǒng)745數(shù)據(jù)結(jié)構(gòu)746計(jì)算機(jī)網(wǎng)絡(luò)43

7C語(yǔ)言3

解:Π課程名(σ先行課號(hào)=‘5’(課程))2023/2/132數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

例:找張平所選修全部課程的課程名和成績(jī)。

學(xué)號(hào)姓名…

課程號(hào)課程名…

學(xué)號(hào)課程號(hào)成績(jī)

u→

98001張平v→

1數(shù)據(jù)庫(kù)w→

98001290

98002王欣2數(shù)學(xué)

98001186

98003李華3軟件工程98001592

98004趙巖4操作系統(tǒng)98002580

5數(shù)據(jù)結(jié)構(gòu)98002177

6計(jì)算機(jī)網(wǎng)絡(luò)980023947C語(yǔ)言

第一步:(學(xué)生∞選課)

2023/2/133數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

學(xué)號(hào)姓名…課程號(hào)成績(jī)

課程號(hào)課程名…u→

98001張平…290v→1數(shù)據(jù)庫(kù)98001張平…1862數(shù)學(xué)98001張平…5923軟件工程98002王欣…5804操作系統(tǒng)

98002王欣…1775數(shù)據(jù)結(jié)構(gòu)

98002王欣…3946計(jì)算機(jī)網(wǎng)絡(luò)

7C語(yǔ)言

第二步:(學(xué)生∞選課

∞課程)

2023/2/134數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

學(xué)號(hào)姓名…課程號(hào)成績(jī)課程名…

u→

98001張平…290數(shù)學(xué)…98001張平…186數(shù)據(jù)庫(kù)…98001張平…592數(shù)據(jù)結(jié)構(gòu)…98002王欣…580數(shù)據(jù)結(jié)構(gòu)…

98002王欣…177數(shù)據(jù)庫(kù)…

98002王欣…394軟件工程…

第三步:σ姓名=“張平”(學(xué)生∞選課

∞課程)

2023/2/135數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

學(xué)號(hào)姓名…課程號(hào)成績(jī)課程名…

u→

98001張平…290數(shù)學(xué)…98001張平…186數(shù)據(jù)庫(kù)…98001張平…592數(shù)據(jù)結(jié)構(gòu)…

第四步:Π姓名,課程名,成績(jī)(

σ姓名=張平(學(xué)生∞選課

∞課程))

2023/2/136數(shù)據(jù)庫(kù)系統(tǒng)概念前言

2.2關(guān)系代數(shù)基本運(yùn)算

姓名課程名成績(jī)

張平數(shù)學(xué)90張平數(shù)據(jù)庫(kù)86張平數(shù)據(jù)結(jié)構(gòu)92

問(wèn)題:Π姓名,課程名,成績(jī)(σ姓名=張平(學(xué)生)∞選課∞課程)對(duì)嗎?

2023/2/137數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:找出選了98001所選所有課程的學(xué)生學(xué)號(hào)。解:1.找出98001所選課的課號(hào)

Π課程號(hào)(σ學(xué)號(hào)=“98001”(選課))

2.找出其他同學(xué)的學(xué)號(hào)和所選課的課號(hào)

Π學(xué)號(hào),課程號(hào)(選課)3.按學(xué)號(hào)分組作除法Π學(xué)號(hào),課程號(hào)(選課)÷(Π課程號(hào)(σ學(xué)號(hào)=“98001”(選課))找出選修了98001所選所有課程的學(xué)生姓名,怎么寫

2023/2/138數(shù)據(jù)庫(kù)系統(tǒng)概念前言

2.2關(guān)系代數(shù)基本運(yùn)算例:找出不選修任何課程的學(xué)生姓名。解:1.所有學(xué)生的學(xué)號(hào)減去選課的學(xué)號(hào)Π學(xué)號(hào)(學(xué)生)-Π學(xué)號(hào)(選課)2.自然連接上學(xué)生表,投出姓名Π姓名(學(xué)生∞(Π學(xué)號(hào)(學(xué)生)-Π學(xué)號(hào)(選課)))

問(wèn)題:找出不選修98001的任何課程的學(xué)生姓名?2023/2/139數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:找出至少選修了98001所選修的一門課的學(xué)生姓名。解:Π姓名(學(xué)生∞(Π學(xué)號(hào)(選課∞(Π課程號(hào)(σ學(xué)號(hào)=“98001”(選課))))))第二個(gè)自然連接起什么作用?例:找出至少選修了一門其先行課號(hào)為5號(hào)課程的學(xué)生姓名。解:Π姓名(Π學(xué)號(hào)(σ先行課號(hào)=“5”(課程)∞選課)∞學(xué)生)

2023/2/140數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:求至少選修了操作系統(tǒng)和數(shù)據(jù)結(jié)構(gòu)課程的學(xué)生學(xué)號(hào)。解:Π學(xué)號(hào),課程號(hào)(選課)÷Π課程號(hào)(σ課程名=“操作系統(tǒng)”V課程名=“數(shù)據(jù)結(jié)構(gòu)”(課程))

還有其他寫法嗎?若“求選修了操作系統(tǒng)或數(shù)據(jù)結(jié)構(gòu)課程的學(xué)生學(xué)號(hào)”。怎么寫?2023/2/141數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算關(guān)系代數(shù)其他運(yùn)算1.更名運(yùn)算ρx(e)為中間表e賦名xρx(A1,A2,…,An)(e)賦名x,屬性更名為A1,A2,…An

更名的作用:同表連接,屬性區(qū)分2023/2/142數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:求選修數(shù)據(jù)庫(kù)和數(shù)據(jù)結(jié)構(gòu)的學(xué)生學(xué)號(hào)Πs1.學(xué)號(hào)

(σs1.課程名=“數(shù)據(jù)結(jié)構(gòu)”∧s2.課程名=“數(shù)據(jù)庫(kù)”(ρs1(課程∞選課)∞ρs2(課程∞選課))

s1.學(xué)號(hào)=s2.學(xué)號(hào)

例:求數(shù)據(jù)庫(kù)課程的間接課程號(hào)?例:求數(shù)學(xué)成績(jī)比王欣同學(xué)高的學(xué)生?2023/2/143數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算2.賦值運(yùn)算表名←關(guān)系代數(shù)表達(dá)式將表達(dá)式的結(jié)果賦值給一個(gè)表名。3.廣義投影Π表達(dá)式as屬性名,,...,表達(dá)式as屬性名

(e)說(shuō)明:e是中間表,表達(dá)式?jīng)]有屬性名,用as短語(yǔ)缺確定一個(gè)屬性名。例:Π姓名,年齡+1as虛歲(學(xué)生)結(jié)果表的屬性名為姓名,虛歲2023/2/144數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算

4.聚集函數(shù)

ɡ聚集函數(shù)(屬性)(e)聚集函數(shù)有sum(屬性名),avg(屬性名),min(屬性名),max(屬性名),count(屬性名),count-distinct(屬性名),結(jié)果是單屬性單行的中間表,屬性名:“聚集函數(shù)名(

屬性名)”,若重新確定屬性名,用as子句。ɡ

聚集函數(shù)(屬性)as屬性名(e)2023/2/145數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例ɡavg(成績(jī))(選課)結(jié)果:avg

(成績(jī))86.5例:

ɡ

avg(成績(jī))as平均成績(jī)(選課)結(jié)果:平均成績(jī)86.5例:求數(shù)學(xué)的最高成績(jī)ɡMax(成績(jī))(課程名=“數(shù)學(xué)”(課程)∞選課))2023/2/146數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算分組聚集分組屬性1,分組屬性2,…ɡ聚集函數(shù)1(屬性1),聚集函數(shù)2(屬性2),…

(e)分組屬性1,分組屬性2,…ɡ聚集函數(shù)1(屬性1)as屬性名,聚集函數(shù)2(屬性2)as屬性名,…(e)例:學(xué)號(hào)ɡavg(成績(jī))(選課)結(jié)果:

學(xué)號(hào)

avg

(成績(jī))

9800189.39800283.62023/2/147數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例學(xué)號(hào)

ɡavg(成績(jī))as平均成績(jī)(選課)結(jié)果:學(xué)號(hào)平均成績(jī)

9800189.39800283.6例:求選課三門及以上的學(xué)生姓名Π姓名(

σ選課次數(shù)>=3(學(xué)號(hào)

ɡcount(課程號(hào))as選課次數(shù)(選課)))∞學(xué)生)2023/2/148數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算5.空值1)值為空值的字段參加算術(shù)運(yùn)算,結(jié)果為空。2)值為空值的字段參加比較運(yùn)算,結(jié)果為unknown。3)值為空值的字段參加邏輯運(yùn)算,結(jié)果為:

trueandunknown,結(jié)果為unknownfalseandunknown,結(jié)果為falseunknownandunknown,結(jié)果為unknowntrueorunknown,結(jié)果為truefalseorunknown,結(jié)果為unknownunknownorunknown,結(jié)果為unknownnot(unknown),結(jié)果為unknown2023/2/149數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算4)選擇運(yùn)算,邏輯值為true,選中,為false或unknown,不選中。5)連接運(yùn)算,按先笛卡爾積后選擇處理,兩元組共有屬性中有空值,不匹配。6)投影后,同一屬性下的空值視為同值。7)集合運(yùn)算,類投影處理。8)聚集,分組時(shí),同一屬性下的空值視為同值。聚集屬性中的空值,不參加聚集。但參加count聚集。2023/2/150數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算6.外連接對(duì)自然連接的擴(kuò)充1)左外連接左側(cè)表的元組全保留,與右側(cè)表不匹配的元組,用null填充。2)右外連接右側(cè)表的元組全保留,與左側(cè)表不匹配的元組,用null填充。3)全外連接左右側(cè)表的元組全保留,不匹配的元組,用null填充。2023/2/151數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算數(shù)據(jù)庫(kù)修改刪除:差運(yùn)算與賦值運(yùn)算實(shí)現(xiàn)刪除運(yùn)算。

r←r-e插入:并運(yùn)算與賦值運(yùn)算實(shí)現(xiàn)插入運(yùn)算。

r←r∪e更新:廣義投影與賦值運(yùn)算實(shí)現(xiàn)更新運(yùn)算。例:在課程關(guān)系中增加計(jì)算機(jī)原理課程,解:課程←課程∪{(“8”,“計(jì)算機(jī)原理”,“5”,4)}2023/2/152數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算注意:參照完整性例:插入劉林,插入劉林選的課程學(xué)生←學(xué)生∪{(“98005”,“劉林”,“男”,19,“物理”)}選課←選課∪{(“98005”,“1”,86)}例:將所有學(xué)生的年齡增加1歲。學(xué)生←Π學(xué)號(hào),姓名,性別,年齡+1as年齡,系別(學(xué)生)2023/2/153數(shù)據(jù)庫(kù)系統(tǒng)概念前言四、關(guān)系代數(shù)運(yùn)算例:將王欣從學(xué)生關(guān)系及選課關(guān)系中刪掉。解:選課←選課-(Π學(xué)號(hào)(σ姓名=“王欣”(學(xué)生)∞選課)

學(xué)生←學(xué)生-(σ姓名=“王欣”(學(xué)生))例

:將學(xué)生關(guān)系中趙巖的年齡改為20歲:

r←Π學(xué)號(hào),姓名,性別,20as年齡,系別(σ姓名=“趙巖”(學(xué)生))學(xué)生←(學(xué)生-(σ姓名=“趙巖”(學(xué)生)))∪r2023/2/154數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)查詢的表達(dá)不是唯一的,各個(gè)表達(dá)式有效率上的差別。自然連接有擴(kuò)展屬性的作用,還有選擇元組的作用除運(yùn)算是包含的運(yùn)算,可以處理“全部”一類問(wèn)題。通過(guò)賦值運(yùn)算可以分幾步完成一個(gè)復(fù)雜的查詢幾個(gè)典型的查詢表達(dá)式的分析2023/2/155數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)例:求選修了1號(hào)或2號(hào)課程的學(xué)號(hào) 方案1:

∏學(xué)號(hào)(課程號(hào)=“1”∨課程號(hào)=“2”(選課))

方案2:∏學(xué)號(hào)(課程號(hào)=“1”

(選課))∪∏學(xué)號(hào)(課程號(hào)=“2”(選課))2023/2/156數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)例:求同時(shí)選修了1號(hào)和2號(hào)課程的學(xué)生號(hào)錯(cuò)誤的寫法:∏學(xué)號(hào)(課程號(hào)=“1”課程號(hào)=“2”

(選課))正確的寫法:∏學(xué)號(hào)(課程號(hào)=“1”

(選課))∩∏學(xué)號(hào)(課程號(hào)=“2”

(選課))2023/2/157數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)例:求選修了1號(hào)而沒(méi)有選2號(hào)課程的學(xué)號(hào)∏學(xué)號(hào)(課程號(hào)=“1”

(選課))-∏學(xué)號(hào)(課程號(hào)=“2”

(選課))例:求未選修1號(hào)課程的學(xué)生號(hào)方案1:∏學(xué)號(hào)(學(xué)生)-∏學(xué)號(hào)(課程號(hào)=“1”

(選課))方案2:∏學(xué)號(hào)(課程號(hào)≠“1”

(選課))哪個(gè)對(duì)?2023/2/158數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)思考題:例:找出年齡最小的同學(xué)姓名,不用聚集函數(shù)例:求僅選修了1號(hào)課程的學(xué)生號(hào)例:找出選修且僅選修了數(shù)據(jù)庫(kù)和數(shù)據(jù)結(jié)構(gòu)的學(xué)生姓名

2023/2/159數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)供應(yīng)商S=(SNO(供應(yīng)商號(hào)),SN(供應(yīng)商名),CITY(城市))SSNOSN

CITY

S1精益天津

S2萬(wàn)勝北京

S3東方北京

S4泰隆上海

S5康建南京2023/2/160數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)零件P=(PNO(零件號(hào)),PN(名稱),COLOR(顏色),W(重量))PPNO

PN

COLOR

W

P1螺母紅12P2螺栓綠17P3螺絲刀藍(lán)14P4螺絲刀紅14P5凸輪藍(lán)40P6齒輪紅302023/2/161數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)工程項(xiàng)目J=(JNO(項(xiàng)目號(hào)),JN(項(xiàng)目名),CITY(城市))JJNOJNCITY

J1三建北京

J2一汽長(zhǎng)春

J3彈簧廠天津

J4造船廠天津

J5機(jī)車廠唐山

J6無(wú)線電廠常州

J7半導(dǎo)體廠南京2023/2/162數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)供應(yīng)SPJSNOPNOJNOQTY(數(shù)量)

S1P1J1200S1P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J54002023/2/163數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)S2P5J1400S2P5J2100S3P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S5P2J4100S5P3J1200S5P6J2200S5P6J45002023/2/164數(shù)據(jù)庫(kù)系統(tǒng)概念前言五、關(guān)系代數(shù)運(yùn)算小結(jié)求(1)供應(yīng)工程J1零件的供應(yīng)商號(hào)。(2)供應(yīng)工程J1零件P1的供應(yīng)商名。(3)供應(yīng)工程J1紅色零件的供應(yīng)商的信息。(4)不用天津供應(yīng)商供應(yīng)的紅色零件的項(xiàng)目號(hào)。(5)用了S1供應(yīng)商供應(yīng)的全部零件的項(xiàng)目名。(6)不供應(yīng)螺母和齒輪的供應(yīng)商名。(7)不供應(yīng)S1供應(yīng)零件的供應(yīng)商名。(8)供應(yīng)數(shù)量大于200的藍(lán)色螺絲刀的供應(yīng)商名和項(xiàng)目名

2023/2/165數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)表代表一個(gè)實(shí)體集或聯(lián)系集,一行一個(gè)實(shí)體屬性域的笛卡爾積的子集元組變量用于對(duì)表掃描查找元組的順序無(wú)關(guān)緊要域是原子的屬性可以取空值null2023/2/166數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)數(shù)據(jù)庫(kù)模式關(guān)系模式,表結(jié)構(gòu),R=(……)關(guān)系實(shí)例,表,r圖2-1圖2-7實(shí)體表是account、branch、customer、loan。聯(lián)系表是depositor、borrower注意每個(gè)表的主碼,實(shí)體完整性約束注意account、loan和兩個(gè)聯(lián)系表的外碼。參照關(guān)系2023/2/167數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)查詢語(yǔ)言過(guò)程化的:關(guān)系代數(shù)非過(guò)程化的:關(guān)系演算SQL兩者都有關(guān)系代數(shù)的基本運(yùn)算選擇是對(duì)表依次掃描,按條件確定行投影是縱向選擇并運(yùn)算是求“或”2023/2/168數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)差是求“有…而無(wú)…”笛卡爾積是兩表窮舉結(jié)合,重名屬性綴表名更名,一般是同表操作,如“找出…表中最大..”,見(jiàn)圖2-17例圖2-18用自然連接行嗎?附加的關(guān)系代數(shù)運(yùn)算交運(yùn)算是求“和”,記住r∩s=r-(-s)例圖2-192023/2/169數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)自然連接外碼作用,圖2-20,金額在loan中自然連接可結(jié)合customer

account∞

depositor等價(jià)customer

depositor∞

account一個(gè)表查找另個(gè)表borrower∞

depositor用貸款表查存款表,表示既有貸款又有存款2023/2/170數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)除處理“對(duì)所有的”分組判包含,對(duì)齊格式,結(jié)果是R-S的屬性例:圖2-23是兩個(gè)屬性,按第一個(gè)屬性分組,看包含圖2-22的表。留第一個(gè)屬性為結(jié)果聚集函數(shù)Count-distinct去掉重復(fù)行注意圖2-28中間表的屬性名是sum(salary)2023/2/171數(shù)據(jù)庫(kù)系統(tǒng)概念前言六、

課本上的要點(diǎn)作業(yè)6.2,6.11d,e6.136.152023/2/172數(shù)據(jù)庫(kù)系統(tǒng)概念前言

6.2關(guān)系演算2023/2/173數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述概念用一階謂詞演算表示關(guān)系的操作叫關(guān)系演算設(shè)關(guān)系r有元組t1,t2,…tm,則它對(duì)應(yīng)一個(gè)謂詞P,t1,t2,…,tm是P的成真指派,其它非r中的任意元組則是P的成偽指派。給出一個(gè)元組t,當(dāng)它在r中時(shí)P(t)為真,否則P(t)為假。注意P(t)是一個(gè)謂詞公式,它是由原子公式經(jīng)復(fù)合運(yùn)算而成。2023/2/174數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述形式化定義{t|P(t)}表示所有使謂詞P為真的元組集合t為元組變量P是公式由原子公式和運(yùn)算符組成2023/2/175數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述原子公式,為三類:

(1)t∈r

為原子公式。表示t是r的一個(gè)元組。

(2)u[i]θv[j]是原子公式。u,v是元組變量,θ是比較運(yùn)算符,u[i]θv[j]表元組u的第i個(gè)分量與元組v的第j個(gè)分量間的比較運(yùn)算。

(3)u[i]θC是原子公式。C為常數(shù),θ比較運(yùn)算符,u[i]θC表示元組的第i個(gè)分量與常數(shù)的比較運(yùn)算。2023/2/176數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述公式的遞歸定義原子公式是公式如果P是公式,那么┑P也是公式如果P1,P2是公式,則P1

P2,

P1

P2,P1→

P2也是公式如果P(t)是公式,r是關(guān)系,則tr(P(t))和tr(P(t))

也是公式2023/2/177數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述其中是“全稱”量詞,是“存在量詞”,有或量詞的變量為約束變量,否則為自由變量。

給定集合r={t1,t2,…,tn}tr(P(t))=P(t1)∧P(t2)∧…∧P(tn)tr(P(t))=P(t1)∨P(t2)∨…∨P(tn)

2023/2/178數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述公式中運(yùn)算符的優(yōu)先次序?yàn)?/p>

(1)比較運(yùn)算符:>,<,≤,≥,=,≠;

(2)量詞,;

(3)“否定”:┑;

(4)“與”,“或”,“蘊(yùn)含”:∧,∨,→。如果公式中使用括號(hào),括號(hào)的優(yōu)先級(jí)最高。2023/2/179數(shù)據(jù)庫(kù)系統(tǒng)概念前言一、關(guān)系演算概述公式的等價(jià)性P1

P2

┑(┑P1

┑P2)

tr(P(t))

┑tr(┑P(t))P1

P2

┑P1P2TTTFFTTTTFFFFFTTTFTT┑pqpq┑pqp2023/2/180數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算987654321CBA965643321CBArS965643CBA{t|tSt[A]>2}654987CBA{t|tr┑tS}2023/2/181數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算768738798435CBA{t|ur(vS(u[A]>v[B]t[A]=u[B]t[B]=v[C]t[C]=u[A]))}987654321CBA965643321CBArS2023/2/182數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算元組關(guān)系演算與關(guān)系代數(shù)的等價(jià)性(1)r∪S={t|t∈r∨t∈s}(2)r-S={t|t∈r∧┑t∈s}(3)σF(r)={t|t∈r∧F′}

(F′為F在謂詞演算中的表示形式)2023/2/183數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算(4)ΠAi1、Ai1,…,Aik

(r)={t|u∈r(t[Ai1]=u[Ai1]∧t[Ai2]=u[Ai2]∧…∧t[Aik]=u[Aik]}或者

ΠAi1、Ai1,…,Aik(r)={t|u∈r(t[1]=u[Ai1]∧t[2]=u[Ai2]∧…∧t[k]=u[Aik]}結(jié)果元組有k個(gè)分量。2023/2/184數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算

(5)r×s={t|u∈r(v∈s(t[1]=u[1]∧…∧t[n]=u[n]∧t[n+1]=V[1]∧…∧t(n+m)=V[m]))}注意:并、差、選擇不用量詞,投影、笛卡爾積用量詞表示。量詞是掃描一遍的意義,量詞變量如同指針,依次定位在表中的各個(gè)元組上。

2023/2/185數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算學(xué)生

學(xué)號(hào)姓名性別年齡系別

98001張平男19計(jì)算機(jī)98002王欣女19計(jì)算機(jī)98003李華女20數(shù)學(xué)

98004趙巖男18外語(yǔ)

2023/2/186數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算課程

課程號(hào)課程名先行課號(hào)學(xué)分1數(shù)據(jù)庫(kù)54

2數(shù)學(xué)63軟件工程544操作系統(tǒng)745數(shù)據(jù)結(jié)構(gòu)746計(jì)算機(jī)網(wǎng)絡(luò)43

7C語(yǔ)言32023/2/187數(shù)據(jù)庫(kù)系統(tǒng)概念前言二、元組關(guān)系演算選課

學(xué)號(hào)課程號(hào)成績(jī)9800119098001286980015929800258098002177

98002394

2023/2/188數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例例

:檢索學(xué)生關(guān)系中所有學(xué)生的情況。解:{t|t∈學(xué)生}選擇運(yùn)算不用量詞,結(jié)果是學(xué)生表的全部屬性

學(xué)號(hào)姓名性別年齡系別

…………………………2023/2/189數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例例

:求計(jì)算機(jī)系的學(xué)生姓名。解:{t|u∈學(xué)生(t[姓名]=u[姓名]∧u[系別]=“計(jì)算機(jī)”)}投影運(yùn)算用量詞,u對(duì)學(xué)生表掃描一遍,每一行確定是否選取結(jié)果:列是t[姓名]確定的屬性,行是由u[系別]=“計(jì)算機(jī)”確定的各行2023/2/190數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

學(xué)號(hào)姓名性別年齡系別

u→98001張平男19計(jì)算機(jī)98002王欣女19計(jì)算機(jī)98003李華女20數(shù)學(xué)

98004趙巖男18外語(yǔ)

↓結(jié)果:姓名

張平王欣

2023/2/191數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

:求年齡大于20歲女學(xué)生的姓名和系別。解:{t|u∈學(xué)生(t[姓名]=u[姓名]∧t[系別]=u[系別]∧u[年齡]>20∧u[性別]=“女”)}有投影運(yùn)算,用量詞。結(jié)果:姓名系別

王欣計(jì)算機(jī)

李華數(shù)學(xué)2023/2/192數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

:找出選修了課程號(hào)為“5”的課程的學(xué)生的姓名和成績(jī)。解:{t|u∈學(xué)生(v∈選課(t[姓名]=u[姓名]∧t[成績(jī)]=v[成績(jī)]∧u[學(xué)號(hào)]=v[學(xué)號(hào)]∧v[課程號(hào)]=“5”)}意義:u對(duì)學(xué)生表掃描一遍,定位在每一行時(shí),v對(duì)選課表掃描一遍,確定是否選取u指向的行2023/2/193數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

學(xué)生

選課

結(jié)果

u→98001張平v→

98001290姓名成績(jī)

98002王欣98001186張平92

98003李華98001

592王欣80

98004趙巖98002

5809800217798002394

2023/2/194數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例例:找出選修了課程號(hào)為‘5’或‘3’的課程的所有學(xué)生的姓名、課程號(hào)和成績(jī)。解:{t|u∈學(xué)生(v∈選課(t[姓名]=u[姓名]∧t[課程號(hào)]=v[課程號(hào)]∧t[成績(jī)]=v[成績(jī)]∧u[學(xué)號(hào)]=v[學(xué)號(hào)]∧(v[課程號(hào)]=‘5’∨v[課程號(hào)]=‘3’)]}結(jié)果:姓名課程號(hào)成績(jī)

張平592王欣580王欣3942023/2/195數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例例

:求選修了數(shù)學(xué)課程的學(xué)生姓名、課程名和成績(jī)。解:{t|u∈學(xué)生(v∈課程(w∈選課(t[姓名]=u[姓名]∧t[課程名]=v[課程名]∧t[成績(jī)]=w[成績(jī)]∧u[學(xué)號(hào)]=w[學(xué)號(hào)]∧v[課程號(hào)]=w[課程號(hào)]∧v[課程名]=“數(shù)學(xué)”)}意義:u對(duì)學(xué)生表掃描一遍,定位在每一行時(shí),v對(duì)課程表掃描一遍,w對(duì)選課表掃描一遍,確定是否選取u指向的行2023/2/196數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

學(xué)生

課程

選課

u→

98001

張平v→

1數(shù)據(jù)庫(kù)w→

980012

98002王欣2數(shù)學(xué)

980011

98003李華3軟件工程980015

98004趙巖4操作系統(tǒng)980025

5數(shù)據(jù)結(jié)構(gòu)980021

6計(jì)算機(jī)網(wǎng)絡(luò)9800237C語(yǔ)言結(jié)果:姓名課程名

成績(jī)張平數(shù)學(xué)86

2023/2/197數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例例:求選修了所有課程的學(xué)生姓名,成績(jī)。解:{t|u∈學(xué)生(v∈課程(w∈選課(t[姓名]=u[姓名]∧t[成績(jī)]=w[成績(jī)]∧u[學(xué)號(hào)]=w[學(xué)號(hào)]∧v[課程號(hào)]=w[課程號(hào)])))}意義:U定位在一個(gè)學(xué)生上,v掃描一遍課程表,每定位在一門課上,就由w在選課表里找一個(gè)。如果v的每一個(gè)課,w都能找到一個(gè),選取u指向的行。2023/2/198數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

學(xué)生

課程

選課

u→98001張平

v→

1數(shù)據(jù)庫(kù)w→

980012

98002王欣2數(shù)學(xué)980011

98003李華3軟件工程980015

98004趙巖4操作系統(tǒng)980025

5數(shù)據(jù)結(jié)構(gòu)980021

6計(jì)算機(jī)網(wǎng)絡(luò)9800237C語(yǔ)言結(jié)果:姓名成績(jī)

2023/2/199數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例例:求選修了課程號(hào)為‘5’和‘3’的課程的所有學(xué)生的姓名

解:{t|u∈學(xué)生(v∈選課(w∈選課(t[姓名]=u[姓名]∧u[學(xué)號(hào)]=v[學(xué)號(hào)]∧u[學(xué)號(hào)]=w[學(xué)號(hào)]∧v[課程號(hào)]=’5’∧w[課程號(hào)]=’3’)))}意義:U定位在一個(gè)學(xué)生上,v掃描一遍選課表,w掃描一遍選課表,找一個(gè)v的課程號(hào)為5,w的課程號(hào)為3,選取u指向的行。2023/2/1100數(shù)據(jù)庫(kù)系統(tǒng)概念前言三、元組關(guān)系演算實(shí)例

學(xué)生

選課

選課

u→98001張平v→

980012

w→

980012

98002

王欣980011980011

98003李華980015980015

98004趙巖980025980025

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論