第二章關(guān)系數(shù)據(jù)庫2_第1頁
第二章關(guān)系數(shù)據(jù)庫2_第2頁
第二章關(guān)系數(shù)據(jù)庫2_第3頁
第二章關(guān)系數(shù)據(jù)庫2_第4頁
第二章關(guān)系數(shù)據(jù)庫2_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章關(guān)系數(shù)據(jù)庫(續(xù))12.4

關(guān)系代數(shù)

概述

傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算2概述1.關(guān)系代數(shù)2.關(guān)系代數(shù)運(yùn)算的三個要素4.關(guān)系代數(shù)運(yùn)算的分類3概述1.關(guān)系代數(shù) 一種抽象的關(guān)系數(shù)據(jù)語言 用對關(guān)系的運(yùn)算來表達(dá)對數(shù)據(jù)庫的操作4概述(續(xù))2.關(guān)系代數(shù)運(yùn)算的三個要素運(yùn)算對象:關(guān)系運(yùn)算結(jié)果:關(guān)系運(yùn)算符:四類5概述(續(xù))集合運(yùn)算符將關(guān)系看成元組的集合運(yùn)算是從關(guān)系的“水平”方向即行的角度來進(jìn)行專門的關(guān)系運(yùn)算符不僅涉及行而且涉及列算術(shù)比較符輔助專門的關(guān)系運(yùn)算符進(jìn)行操作邏輯運(yùn)算符輔助專門的關(guān)系運(yùn)算符進(jìn)行操作6集合運(yùn)算符∪-∩×并差交廣義笛卡爾積比較運(yùn)算符>≥<≤=≠大于大于等于小于小于等于等于不等于運(yùn)算符含義運(yùn)算符含義關(guān)系代數(shù)運(yùn)算符

專門的關(guān)系運(yùn)算符σπ

÷選擇投影連接除邏輯運(yùn)算符∧∨非與或74.關(guān)系代數(shù)運(yùn)算的分類 傳統(tǒng)的集合運(yùn)算并、差、交、廣義笛卡爾積 專門的關(guān)系運(yùn)算選擇、投影、連接、除82.4.1傳統(tǒng)的集合運(yùn)算并差交廣義笛卡爾積91.并(Union)關(guān)系R和關(guān)系S具有相同的目n(即兩個關(guān)系都有n個屬性)相應(yīng)的屬性取自同一個域R∪S

仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成

R∪S={t|t

R∨tS}10并(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

11122.差(Difference)關(guān)系R和關(guān)系S具有相同的目n相應(yīng)的屬性取自同一個域R-S

仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成

R-S={t|tR∧tS}13差(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

14153.交(Intersection)關(guān)系R和關(guān)系S具有相同的目n相應(yīng)的屬性取自同一個域R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成

R∩S={t|t

R∧tS} R∩S=R

–(R-S)16交(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

1718例:求關(guān)系R與S的并,交,差

R(ABC)S(ABC)aceadfadfagfbdebde

R∪SRSR∩S(ABC)(ABC)(ABC)aceaceadfadfbdebdeagf194.廣義笛卡爾積(ExtendedCartesianProduct)Rm目關(guān)系,k1個元組Sn目關(guān)系,k2個元組R×S

列:(m+n)列的元組的集合元組的前m列是關(guān)系R的一個元組后n列是關(guān)系S的一個元組行:k1×k2個元組R×S={tr

ts|tr

R∧tsS}其中tr

ts

為(a1,a2,…..,am,bm+1,bm+2,…,bm+n)

元組的連串20RSRXS21例:求RXSR(ABC)S(DE)

abcbgdefdeebd

RXS(ABCDE)abcbgabcdedefbgdefdeebdbgebdde22廣義笛卡爾積(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1c1b1a1c1b1a1c1b2a2c1b2a2c2b2a1c1b2a2c1b1a1R.CR.BR.Ac2b2a1c2b2a1c2b2a1c2b3a1c1b2a2c2b2a1c2b3a1c1b2a2c2b2a1S.CS.BS.Ac1b2a2c2b3a123廣義笛卡爾積(續(xù))242.4.2專門的關(guān)系運(yùn)算選擇投影連接除251.選擇(Selection)從關(guān)系R中選擇滿足給定條件F的元組t,組成新的關(guān)系。

F(R)={t|t∈R∧F(t)為‘真’}

F是篩選關(guān)系R中元組的條件表達(dá)式.

可以表示為:X1Y1

φX2Y2

X,Y是屬性名或常量,也可以是簡單函數(shù).

屬性名也可以用其屬性序號表示.θ:比較運(yùn)算符(>,≥,<,≤,=或<>)φ:邏輯運(yùn)算符(∧或∨)26選擇(續(xù))選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算舉例 設(shè)有一個學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。σ27學(xué)號Sno姓名Sname性別Ssex年齡Sage所在系Sdept04001李勇男20CS04002劉晨女19IS04003王敏女18MA04004張立男19IS課程號課程名先行課學(xué)分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)

23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746計算機(jī)導(dǎo)論

27C語言64學(xué)號課程號成績SnoCnoGrade0400119204001285040013880400229004002380StudentCourseSC28選擇(續(xù))[例1]查詢年齡小于20歲的學(xué)生

σSage<20(Student)

或σ4<20(Student)

結(jié)果:

SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS

29選擇(續(xù))[例2]查詢信息系(IS)并且年齡為19歲全體學(xué)生

σSdept

=‘IS’∧Sage=19(Student)

或σ5=‘IS’∧4=19(Student)結(jié)果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS302.6.2投影從關(guān)系中選擇出若干屬性列組成一個新的關(guān)系.投影的結(jié)果將消除重復(fù)的元組.

πA

(R)={t[A]|t∈R}投影操作主要是從列的角度進(jìn)行運(yùn)算π31投影(續(xù))[例3]查詢學(xué)生的姓名和所在系 即求Student關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影

πSname,Sdept(Student)

或π2,5(Student)結(jié)果:SnameSdept李勇CS劉晨IS王敏MA張立IS32[例4]查詢學(xué)生關(guān)系Student中都有哪些系

πSdept(Student)

結(jié)果:SdeptCSISMA投影(續(xù))33

3.連接(Join)

(1)

連接:從兩個關(guān)系的廣義笛卡爾積中選取給定屬性間滿足表達(dá)式的元組.RS={tr

ts|tr

∈R∧

ts

∈S

∧tr[A]

ts[B]

}

R.AS.BA,B為關(guān)系R,S上度數(shù)相等且可比的屬性列.

為“=”時稱為等值連接.

可以將連接運(yùn)算轉(zhuǎn)化為:RS=R.AS.B(RXS)

R.AS.B34例:R(ABC)S(DE)RS(

)12331B<D45662789ABCDE123311236245662ABCDE12331123624563145662893178962R×S

35連接(續(xù))2)自然連接

自然連接是一種特殊的等值連接兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義

R和S具有相同的屬性組B自然連接與等值連接的不同

RS={rs[B]|rRsSr[B]=S[B]}36例:R(ABC)S(BD)RS()1232745681789ABCD1237789137連接(續(xù))舉例

[例]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSR

S

C<E

R

SR.B=S.B

R

S

38連接(續(xù))R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E39連接(續(xù))

R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b3240連接(續(xù))R

S

ABCEa1b153a1b267a2b3810a2b38241424.除(Division)要求:被除關(guān)系形如R(X,Y),除關(guān)系形如S(Y)例:R(XY)S(Y)x1y1y1x2y2y3x1y3x3y4x1y5

x1->{y1,y3,y5}x2->{y2}x3->{y4}結(jié)果:R(X,Y)S(Y)={x1}43

除法定義:

設(shè)關(guān)系R(X,Y)與S(Y).其中X,Y是屬性組.RS的結(jié)果是:R中在X上的分量值x的像集包含S在Y上的投影的集合的元組在X上的投影.RS={tr[Y]|tr∈R∧Y(S)?YX}

像集:設(shè)有關(guān)系R(X,Y),其中X,Y是屬性組,當(dāng)X=x時,在R中的像集為:YX=x={tr[Y]|tr

∈R

trX=x}44除操作是同時從行和列角度進(jìn)行運(yùn)算例:在選課關(guān)系R中同時選修C101和C104兩門課的學(xué)號.45除(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1R÷SS’462.4.3關(guān)系代數(shù)應(yīng)用舉例(1)給出學(xué)習(xí)2號課程的學(xué)生名

(2)將新的學(xué)生記錄{‘06005’,’李明’,‘男’,18}插入到關(guān)系S中.S∪{‘06005’,’李明’,‘男’,18,

}另:SNAME(CNO=‘2’(SC)S)()SNAMECNO=‘2’(SSC)47

SNAME((S)

)(4)給出學(xué)習(xí)“數(shù)據(jù)庫”課程的學(xué)生姓名

(

Cname=‘?dāng)?shù)據(jù)庫’)(SSCC)(3)將學(xué)生04002學(xué)習(xí)的1號課程的成績改為92.(SP{‘04002’,’1’,})∪{‘04002’,’1’,92}SCCSSNAMECname=‘?dāng)?shù)據(jù)庫’(C)(CNO)(SC)

SNO()優(yōu)化:48SNAME(S)

(

SNO,CNO(SC))(5)給出供應(yīng)全部課程的學(xué)生名.SNAME((

SNO,CNO(SC)CNO

(SC))S)

CNO

(C)49

(6)給出選修了04002學(xué)習(xí)的全部課程的學(xué)生名.

(7)給出未選修2號課程的學(xué)生名.SNAME(S(

SNO(S)

SNO(

CNO=‘2’(SC)))SNAME((

SNO,CNO(SC)CNO(SNO=‘04002’(SC))S)CNO(SNO=‘04002’(SC))

SNO(

CNO=‘2’(SC))50小結(jié):

關(guān)系代數(shù)運(yùn)算共8種:

并,差,交,笛卡爾積,選擇,投影,連接,除其中并,差,笛卡爾積,選擇,投影五種運(yùn)算構(gòu)成了關(guān)系代數(shù)的基本操作(又稱為最小完備集).(交,連接,除可以被以上五種運(yùn)算導(dǎo)出.)51練習(xí)1.查詢所有被選修課程的信息2.查詢數(shù)學(xué)系中年齡小于20的女學(xué)生的學(xué)號,年齡.3.

求各科不及格學(xué)生的課號、姓名及成績4.求選修TC01和TC02課程的學(xué)生名7.求沒有學(xué)習(xí)“數(shù)據(jù)庫”課程的所有學(xué)生姓名根據(jù)下列關(guān)系用關(guān)系代數(shù)完成查詢:

學(xué)生student(sno,sname,sex,age,dname)

課程course(cno,cname,pcno)

選課sc(sno,cno,grade)52關(guān)系演算:用謂詞來表達(dá)數(shù)據(jù)操作的要求.

元組關(guān)系演算:謂詞變元是元組變量域關(guān)系演算:謂詞變元是域變量2.5關(guān)系演算53

1.元組變量元組變量又稱范圍變量,變量的變化范圍為某一命名的關(guān)系.換言之,如果元組變量X涉及關(guān)系R,那么在任何給定時刻,X描述R的某一元組x..

2.5.1元組關(guān)系演算_____ALPHA語言54元組變量的定義定義形式:RANGERX

一個關(guān)系名上可以定義多個元組變量例:RANGECCXCCY55操作語句工作空間

(表達(dá)式):公式指定進(jìn)行用戶與程序的指出結(jié)果元組結(jié)果元組什么操作通訊區(qū),通常用中包括有那些應(yīng)滿足的一個字母W表示

屬性條件2.基本語句格式<操作語句>:GET|PUT|HOLD|UPDATE|DELETE|DROP<表達(dá)式>:<簡單項1>,<簡單項2>,…….<簡單項n><簡單項>:<關(guān)系名>|<關(guān)系名>.<屬性名>|<元組變量>.<屬性名><公式>:<原子>|<布爾>|<量詞>|<邏輯蘊(yùn)涵>|<空>563.檢索操作有關(guān)關(guān)系:S(SNO,SN,SD,SA)

學(xué)生(學(xué)號,姓名,系名,年齡)

C(CNO,CN,PCNO)

課程(課號,課名,先修課)SC(SNO,CNO,G)

選修(學(xué)號,課號,成績)57(1)簡單檢索(不引入元組變量)例1:查詢所有選修課程的學(xué)生號

GETW(SC.SNO)

例2:查詢所有課程的信息

GETW(C)58簡單檢索

例3:查詢數(shù)學(xué)系中年齡小于20的學(xué)生的學(xué)號,年齡.

GETW(S.SNO,S.SA):S.SD=‘?dāng)?shù)學(xué)’∧S.SA<2059簡單檢索例4.帶排序的檢索查詢計算機(jī)系的學(xué)生的學(xué)號,年齡.年齡按降序排列

GETW(S.SNO,S.SA):

S.SD=‘計算機(jī)’

DOWNS.SA60簡單檢索例5.帶定額的檢索(規(guī)定結(jié)果的個數(shù))

查詢一個計算機(jī)系的學(xué)生的學(xué)號.

GETW(1)(S.SNO):S.SD=‘計算機(jī)’

61簡單檢索例6.查詢計算機(jī)系年齡最大的三個學(xué)生的學(xué)號及其年齡.年齡按降序排列

GETW(3)(S.SNO,S.SA):S.SD=‘計算機(jī)’DOWNS.SA62(2)引入元組變量的檢索何時使用元組變量:1.關(guān)系名過長時

2.操作中使用變量時63引入元組變量的檢索例7.查詢數(shù)學(xué)系中年齡小于20的學(xué)生的學(xué)號,年齡.RANGESXGETW(X.SNO,X.SA):X.SD=‘?dāng)?shù)學(xué)’∧X.SA<2064引入元組變量的檢索RANGESSXRANGESSY

GETW(SX.SNO,SY.SNO):

SX.SN=SY.SN∧SX.SNO<SY.SNO例8.查詢姓名相同的所有學(xué)生的學(xué)號對.65引入元組變量的檢索例9.找出選修C2課程的學(xué)生名關(guān)系SC關(guān)系S96c2s195c1s290c1s1GC#S#……s3……s2……s1AGESNS#張三李四66

1.自由變量:

不受量詞約束的變量

2.約束變量:

緊跟在量詞后面的變量僅在量詞的轄域中才有意義.*自由變量與約束變量

*量詞:

存在量詞X,表示“存在有X”

全稱量詞X,表示“對于所有的X”

67引入元組變量的檢索例9.找出選修C2課程的學(xué)生名RANGESCXGETW(S.SN):X(X.SNO=S.SNO∧X.CNO=‘C2’)自由變量約束變量意義:關(guān)系SC中存在一個SC元組,其中SNO的值與目標(biāo)的S.SNO值相等,并且CNO值與C2相等.68例9.找出至少選修一門其先修課為C1的課程的學(xué)生名.CNPCNODBC語言O(shè)SC語言DSC語言條件是:SC中存在有個元組SCX,滿足SCX.SNO=S.SNO

并且C中存在有一個元組CX,滿足CX.CNO=SCX.CNO且CX.PCNO=‘C1’69RANGECCXSCSCXGETW(S.SN):SCX(SCX.SNO=S.SNO∧

CX(CX.CNO=SCX.CNO∧CX.PCNO=‘C1’))采用前束范式形式:GETW(S.SN):SCXCX(SCX.SNO=S.SNO

∧CX.CNO=SCX.CNO∧CX.PCNO=‘C1’)例9.找出至少選修一門其先修課為C1的課程的學(xué)生名.70例10.求不選修C1課程的學(xué)生名意義:找出滿足這樣條件的元組,所有的選課元組中的任何一個都不是該名學(xué)生所選修的C1課程RANGESCXGETW(S.SN):X(X.SNO≠S.SNO

∨X.CNO≠‘C1’)71全稱量詞形式轉(zhuǎn)化成存在量詞形式:

X(P)=

X(P)RANGESCXGETW(S.SN):X(X.SNO≠S.SNO

∨X.CNO≠‘C1’)GETW(S.SN):

X(X.SNO=S.SNO

∧X.CNO=‘C1’)72例11.找出選修全部課程的學(xué)生名意義:找出滿足這樣條件的學(xué)生元組,對于關(guān)系C中的所有元組中的任何元組CX(任一個課程),都在關(guān)系SC中對應(yīng)地存在選修此門課程的選課元組,而且這個選課元組是該學(xué)生選學(xué)的.RANGECCXRANGESCSCXGETW(S.SNO):CXSCX(S.SNO=SCX.SNO

∧SCX.CNO=CX.CNO)73例12.求至少選修學(xué)生S2所選的全部課程的學(xué)生號意義:對于所有課程中任一門課程CX,若其是S2所選學(xué)的,則存在作為查詢目標(biāo)的學(xué)生一定也選學(xué).邏輯蘊(yùn)涵:IFATHENB

如果A成立,則B就成立.

表示為:AB74RANGECCXSCSCXSCSCYGETW(S.SNO):CX(SCX(SCX.SNO=‘S2’∧SCX.CNO=CX.CNO))SCY(SCY.SNO=S.SNO∧SCY.CNO=CX.CNO)例12.求至少選修學(xué)生S2所選的全部課程的學(xué)生號75

利用庫函數(shù)在對數(shù)據(jù)庫進(jìn)行檢索的基礎(chǔ)上進(jìn)行簡單的運(yùn)算COUNT----計數(shù)TOTAL----匯總MAX----最大值MIN----最小值A(chǔ)VG----平均值庫函數(shù):76庫函數(shù)例13.求系的數(shù)目.GETW(COUNT(S.SD))例14.求計算機(jī)系學(xué)生的平均年齡

GETW(AVG(S.SA)):S.SD=‘計算機(jī)’

774.存儲操作指對數(shù)據(jù)庫進(jìn)行的插入,刪除,修改的操作例15.把學(xué)生S2從計算機(jī)系轉(zhuǎn)入數(shù)學(xué)系操作步驟:(1)把元組從數(shù)據(jù)庫中取出放入工作區(qū)

(2)再用主語言語句修改相應(yīng)值.(3)送回數(shù)據(jù)庫

HOLDW(S.SNO,S.SD):S.SNO=‘S2’MOVE‘計算機(jī)’TOW.SDUPDATEW78操作步驟:(1)用主語言在工作區(qū)建立新元組

(2)在用PUT語句把該元組送回指定關(guān)系中例16.插入一個課程元組

MOVE‘C7’TOW.CNOMOVE‘管理信息系統(tǒng)’TOW.SNMOVE‘C4’TOW.PCNOPUTW(C)79例17.刪除學(xué)生S1的全部選課元組

HOLDW(SC):SC.SNO=‘S1’DELETEW例18.刪除全部學(xué)生記錄

HOLDW(S)DELETEW

由于參照關(guān)系,還要執(zhí)行以下操作:HOLDW(SC)DELETEW802.5.2域關(guān)系演算_____QBE

QBE是QueryByExample(通過例子查詢)的簡稱.是一種基于屏幕表格的查詢語言.

QBE的特點(diǎn):*高度非過程化.*直觀,易學(xué)易用.81QBE的操作框架關(guān)系名屬性名操作命令元組屬性值或查詢條件用示例元素(域變量)表示查詢結(jié)果的可能情況82QBE的操作一.檢索(查詢)操作(命令:P.)有關(guān)關(guān)系:

Sudent(SNO,SNAME,SEX,DEPT,AGE)

學(xué)生(學(xué)號,姓名,系名,年齡)

SC(SNO,CNO,GRADE)

選修(學(xué)號,課號,成績)83QBE的操作步驟(1)用戶提出要求,屏幕顯示空白表格

Student(2)用戶在最左邊一欄輸入關(guān)系名Student(3)系統(tǒng)顯示關(guān)系Student的屬性名SNOSNAMESEXDEPTAGE(4)用戶寫出查詢要求:計算機(jī)系的學(xué)生姓名.(5)系統(tǒng)顯示查詢結(jié)果P.TT為示例元素計算機(jī)查詢條件84

StudentSNOSNAMESEXDEPTAGE李強(qiáng)王明張力…….計算機(jī)計算機(jī)計算機(jī)……..QBE查詢結(jié)果85QBE查詢示例例1:查詢?nèi)w學(xué)生的全部數(shù)據(jù)

StudentSNOSNAMESEXDEPTAGEP.

溫馨提示

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

評論

0/150

提交評論