數(shù)據(jù)庫系統(tǒng)概論_第1頁
數(shù)據(jù)庫系統(tǒng)概論_第2頁
數(shù)據(jù)庫系統(tǒng)概論_第3頁
數(shù)據(jù)庫系統(tǒng)概論_第4頁
數(shù)據(jù)庫系統(tǒng)概論_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)概論第1頁,共114頁,2023年,2月20日,星期六第二章關(guān)系數(shù)據(jù)庫2.4關(guān)系代數(shù)第2頁,共114頁,2023年,2月20日,星期六內(nèi)容回顧關(guān)系、關(guān)系模式和關(guān)系數(shù)據(jù)庫數(shù)據(jù)的完整性第3頁,共114頁,2023年,2月20日,星期六1.關(guān)系代數(shù) 一種抽象的查詢語言 用對關(guān)系的運(yùn)算來表達(dá)查詢2.關(guān)系代數(shù)運(yùn)算的三個要素運(yùn)算對象:關(guān)系運(yùn)算結(jié)果:關(guān)系運(yùn)算符:四類第4頁,共114頁,2023年,2月20日,星期六表示記號(1)R,tR,t[Ai]設(shè)關(guān)系模式為R(A1,A2,…,An)它的一個關(guān)系設(shè)為R。

tR表示t是R的一個元組t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個分量值

第5頁,共114頁,2023年,2月20日,星期六表示記號(2)A,t[A],A

若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。第6頁,共114頁,2023年,2月20日,星期六表示記號(3)trtsR為n目關(guān)系,S為m目關(guān)系。trR,tsS,trts稱為元組的連接。它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。第7頁,共114頁,2023年,2月20日,星期六表示記號4)象集Zx給定一個關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|tR,t[X]=x} 它表示R中屬性組X上值為x的諸元組在Z上分量的集合。例:x1Z1x1Z2x2Z3x2Z2x3Z3x3Z1X1在R上的象集ZX1={Z1,Z2}X2在R上的象集ZX2={Z2,Z3}X3在R上的象集ZX3={Z1,Z3}XZ第8頁,共114頁,2023年,2月20日,星期六1.選擇(Selection)1)選擇又稱為限制(Restriction)2)選擇運(yùn)算符的含義在關(guān)系R中選擇滿足給定條件的諸元組

σF(R)={t|tR∧F(t)='真'}F:選擇條件,是一個邏輯表達(dá)式,基本形式為:X1θY1

θ:比較運(yùn)算符(>,≥,<,≤,=或<>)X1,Y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號來代替;在基本選擇上可以進(jìn)一步進(jìn)行邏輯運(yùn)算,即進(jìn)行求()()()第9頁,共114頁,2023年,2月20日,星期六選擇(續(xù))3)選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算4)舉例 設(shè)有一個學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。σ第10頁,共114頁,2023年,2月20日,星期六選擇(續(xù))學(xué)號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)

Student例1例2例4例3例9第11頁,共114頁,2023年,2月20日,星期六選擇(續(xù))(b)Course課程號課程名先行課學(xué)分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)

23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理

27PASCAL語言64例9學(xué)號課程號成績SnoCnoGrade9500119295001285950013889500229095002380(c)SC例7例8例10第12頁,共114頁,2023年,2月20日,星期六選擇(續(xù))[例1]查詢信息系(IS系)全體學(xué)生 σSdept

='IS'(Student) 或σ5='IS'(Student)結(jié)果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS第13頁,共114頁,2023年,2月20日,星期六選擇(續(xù))[例2]查詢年齡小于20歲的學(xué)生

σSage<’20’(Student) 或σ4<’20’(Student)

結(jié)果:

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

第14頁,共114頁,2023年,2月20日,星期六[例3]查詢計算機(jī)系年齡小于20歲的學(xué)生

σSdept

='IS'∧Sage<’20’(Student)

第15頁,共114頁,2023年,2月20日,星期六2.投影(Projection)1)投影運(yùn)算符的含義從R中選擇出若干屬性列組成新的關(guān)系

πA(R)={t[A]|tR} A:R中的屬性列,之間用逗號

第16頁,共114頁,2023年,2月20日,星期六2.投影(Projection)2)投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行,關(guān)系中不允許有重復(fù)行)π第17頁,共114頁,2023年,2月20日,星期六投影(續(xù))3)舉例[例3]查詢學(xué)生的姓名和所在系

即求Student關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影

πSname,Sdept(Student) 或π2,5(Student)結(jié)果:第18頁,共114頁,2023年,2月20日,星期六投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立IS第19頁,共114頁,2023年,2月20日,星期六投影(續(xù))[例4]查詢學(xué)生關(guān)系Student中都有哪些系πSdept(Student) 結(jié)果:SdeptCSISMA第20頁,共114頁,2023年,2月20日,星期六3.連接(Join)1)連接也稱為θ連接2)連接運(yùn)算的含義從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組

RS={|tr

R∧ts

S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運(yùn)算符

AθBtrts第21頁,共114頁,2023年,2月20日,星期六連接(續(xù))3)兩類常用連接運(yùn)算等值連接(equijoin)什么是等值連接﹡θ為“=”的連接運(yùn)算稱為等值連接

等值連接的含義﹡從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧tsS∧tr[A]=ts[B]}A=Btrts第22頁,共114頁,2023年,2月20日,星期六連接(續(xù))自然連接(Naturaljoin)什么是自然連接﹡自然連接是一種特殊的等值連接★兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組★在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義 R和S具有相同的屬性組B

R

S={|trR∧tsS∧tr[B]=ts[B]}trts第23頁,共114頁,2023年,2月20日,星期六連接(續(xù))4)一般的連接操作是從行的角度進(jìn)行運(yùn)算。

自然連接還需要取消重復(fù)列,所以是同時從行和列的角度進(jìn)行運(yùn)算。

AθBRS第24頁,共114頁,2023年,2月20日,星期六連接(續(xù))5)舉例 [例5](R

S,RS,RS)ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS

C<ER.B=S.B

第25頁,共114頁,2023年,2月20日,星期六連接(續(xù))R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E第26頁,共114頁,2023年,2月20日,星期六連接(續(xù))等值連接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32第27頁,共114頁,2023年,2月20日,星期六連接(續(xù))自然連接RS注:這兩個運(yùn)算結(jié)果元組數(shù)相等也相似,不同點(diǎn)在于B屬性的個數(shù)

ABCEa1b153a1b267a2b3810a2b382第28頁,共114頁,2023年,2月20日,星期六外連接如果把舍棄的元組也保存在結(jié)果關(guān)系中,而在其他屬性上填空值(Null),那么這種連接就叫做外連接。ABCDa1b153a1b267a2b3810a2b382a2b412nullnullb5null2第29頁,共114頁,2023年,2月20日,星期六左外連接如果只把左邊關(guān)系R中要舍棄的元組保留就叫做左外連接。ABCDa1b153a1b267a2b3810a2b382a2b412nullnullb5null2第30頁,共114頁,2023年,2月20日,星期六右外連接如果只把右邊關(guān)系S中要舍棄的元組保留就叫做右外連接。ABCDa1b153a1b267a2b3810a2b382a2b412nullnullb5null2第31頁,共114頁,2023年,2月20日,星期六學(xué)號姓名年齡所在系

學(xué)號課程名成績98001張三20計算機(jī)系98001數(shù)據(jù)庫6298005李四21數(shù)學(xué)系98001數(shù)據(jù)結(jié)構(gòu)73

98005微積分80學(xué)生.學(xué)號姓名年齡所在系選課.學(xué)號課名成績980019800198001980059800598005張三張三張三李四李四李四202020212121計算機(jī)系計算機(jī)系計算機(jī)系數(shù)學(xué)系數(shù)學(xué)系數(shù)學(xué)系980019800198005980019800198005數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分?jǐn)?shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分627380627380學(xué)生選課

學(xué)生×選課

第32頁,共114頁,2023年,2月20日,星期六學(xué)生.學(xué)號姓名年齡所在系選課.學(xué)號課名成績980019800198005張三張三李四202021計算機(jī)系計算機(jī)系數(shù)學(xué)系980019800198005數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分627380學(xué)生.學(xué)號姓名年齡所在系課名成績980019800198005張三張三李四202021計算機(jī)系計算機(jī)系數(shù)學(xué)系數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分627380學(xué)生選課學(xué)生.學(xué)號=選課.學(xué)號

學(xué)生選課

第33頁,共114頁,2023年,2月20日,星期六例如圖(a)、(b)所示的兩個關(guān)系R與S

RS

大于連接(C>D),等值連接(C=D),等值連接(R.B=S.B),自然連接ABC

BDa1b12

b15a1b24

b26a2b36

b37a2b48

b38第34頁,共114頁,2023年,2月20日,星期六大于連接(C>D)等值連接(C=D)

(c)(d)

AR.BCS.BD

AR.BCS.BDa2b36b15

a2b36b26a2b48b15

a2b48b38a2b48b26

a2b48b37

第35頁,共114頁,2023年,2月20日,星期六等值連接(R.B=S.B)自然連接(e)(f)

AR.BCS.BD

ABCDa1b12b15

a1b125a1b24b26

a1b246a2b36b37

a2b367a2b36b38

a2b368第36頁,共114頁,2023年,2月20日,星期六1.等值連接中不要求相等屬性值的屬性名相同,而自然連接要求相等屬性值的屬性名必須相同,即兩關(guān)系只有在同名屬性才能進(jìn)行自然連接。2.等值連接不將重復(fù)屬性去掉,而自然連接去掉重復(fù)屬性。等值連接與自然連接的區(qū)別:第37頁,共114頁,2023年,2月20日,星期六4.除(Division)給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。

R與S的除運(yùn)算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。

R÷S={tr[X]|tr

R∧πY(S)

Yx} Yx:x在R中的象集,x=tr[X]第38頁,共114頁,2023年,2月20日,星期六除(續(xù))2)除操作是同時從行和列角度進(jìn)行運(yùn)算

3)舉例

[例6]÷RS第39頁,共114頁,2023年,2月20日,星期六除(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSR÷SAa1第40頁,共114頁,2023年,2月20日,星期六分析:在關(guān)系R中,A可以取四個值{a1,a2,a3,a4}a1的象集為{(b1,c2),(b2,c3),(b2,c1)}

a2的象集為{(b3,c7),(b2,c3)}

a3的象集為{(b4,c6)}

a4的象集為{(b6,c6)}S在(B,C)上的投影為{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)屬性組上的投影所以R÷S={a1}第41頁,共114頁,2023年,2月20日,星期六將被除關(guān)系的屬性分為象集屬性和結(jié)果屬性:與除關(guān)系相同的屬性屬于象集屬性,不同的屬性屬于結(jié)果屬性。

2)在除關(guān)系中,對與被除關(guān)系相同的屬性(象集屬性)進(jìn)行投影,得到除目標(biāo)數(shù)據(jù)集。

3)將被除關(guān)系分組,原則是,結(jié)果屬性值一樣的元組分為一組。

4)逐一考察每個組,如果它的象集屬性值中包括除目標(biāo)數(shù)據(jù)集,則對應(yīng)的結(jié)果屬性值應(yīng)屬于該除法運(yùn)算結(jié)果集。關(guān)系除法運(yùn)算分下面4步進(jìn)行:第42頁,共114頁,2023年,2月20日,星期六學(xué)號課號成績

課號課名S1C1AC2計算機(jī)圖形學(xué)S1C2B選修課S1C3BS2C1A課號科名S2C3BC1數(shù)據(jù)結(jié)構(gòu)S3C1BC3操作系統(tǒng)S3C3BS4C1AS4C2AS5C2BS5C3BS5C1A必修課選課÷必修課選課÷選修課第43頁,共114頁,2023年,2月20日,星期六選課÷選修課學(xué)號S1S4S5成績BAB選課÷必修課學(xué)號成績S3B第44頁,共114頁,2023年,2月20日,星期六例題講解關(guān)系R、S如下表所示,R÷(πAl,A2(σ1<3(S)))的結(jié)果為____。A.8ovei3o

B.{c,d}

C.{c,d,8}

D.{(a,b),(b,a),(c,d),(d,f)}

A第45頁,共114頁,2023年,2月20日,星期六例題講解設(shè)有如下關(guān)系:關(guān)系代數(shù)表達(dá)式R÷S的運(yùn)算結(jié)果是____。B第46頁,共114頁,2023年,2月20日,星期六5.綜合舉例以學(xué)生-課程數(shù)據(jù)庫為例[例7]查詢至少選修1號課程和3號課程的學(xué)生號碼

首先建立一個臨時關(guān)系K:

然后求:πSno.Cno(SC)÷K

Cno

1

3第47頁,共114頁,2023年,2月20日,星期六綜合舉例(續(xù))例7續(xù)πSno.Cno(SC)

95001象集{1,2,3} 95002象集{2,3}

πCno(K)={1,3}于是:πSno.Cno(SC)÷K={95001}SnoCno950011950012950013950022950023第48頁,共114頁,2023年,2月20日,星期六綜合舉例(續(xù))[例8]查詢選修了2號課程的學(xué)生的學(xué)號。

πSno(σCno='2'(SC))={95001,95002}

第49頁,共114頁,2023年,2月20日,星期六

πSname(σCpno='5'(CourseSCStudent))綜合舉例(續(xù))[例9]查詢至少選修了一門其直接先行課為5號課程的學(xué)生姓名。

πSname(σCpno='5'(Course)SCπSno,Sname(Student))

πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))

第50頁,共114頁,2023年,2月20日,星期六綜合舉例(續(xù))[例10]查詢選修了全部課程的學(xué)生號碼和姓名。

πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)第51頁,共114頁,2023年,2月20日,星期六學(xué)生選課庫的關(guān)系模式為:

學(xué)生(學(xué)號,姓名,性別,年齡,所在系);

課程(課程號,課程名,先行課);

選課(學(xué)號,課程號,成績).

【例1】求選修了課程號為“C2”課程的學(xué)生學(xué)號。

【例2】求選修了課程號為“C2”課的學(xué)生學(xué)號和姓名。

【例3】求沒有選修課程號為“C2”課程的學(xué)生學(xué)號。

π學(xué)號,姓名(σ課程號=‘C2’(選課)學(xué)生)關(guān)系代數(shù)的例子

π學(xué)號(σ課程號=‘C2’(選課))π學(xué)號(學(xué)生)-π學(xué)號(σ課程號=‘C2’(選課))

本題不能寫為:

π學(xué)號(σ課程號≠'C2'(選課))第52頁,共114頁,2023年,2月20日,星期六關(guān)系代數(shù)的例子【例4】求既選修“C2”課程,又選修“C3”課程的學(xué)生學(xué)號。π學(xué)號(σ課程號=‘C2’

選課))∩π學(xué)號(σ課程號=‘C3‘(選課))該題不能寫為:π學(xué)號(σ課程號='C2'∧課程號='C3'(選課))【例5】求選修課程號為“C2”或“C3”課程的學(xué)生學(xué)號。π學(xué)號(σ課程號=‘C2‘(選課))∪π學(xué)號(σ課程號=’C3‘(選課))或π學(xué)號(σ課程號='C2'∨課程號='C3'(選課))第53頁,共114頁,2023年,2月20日,星期六【例6】求選修了全部課程的學(xué)生學(xué)號。π學(xué)號,課程號(選課)÷課程【例7】一個學(xué)號為“98002”的學(xué)生所學(xué)過的所有課程可能也被其他學(xué)生選修,求這些學(xué)生的學(xué)號和姓名。

π學(xué)號,姓名((π學(xué)號,課程號(選課)÷π課程號(σ學(xué)號=‘98002’(選課)))(學(xué)生))

第54頁,共114頁,2023年,2月20日,星期六思考:查詢所有未開考的課程號。

“成績”表“課程”表“學(xué)生”表П課程號(課程)-П課程號(成績)關(guān)系代數(shù)表達(dá)式第55頁,共114頁,2023年,2月20日,星期六5.查詢所有有不及格成績的課程名。

“成績”表“課程”表“學(xué)生”表П課程名(課程σ成績<60(成績))關(guān)系代數(shù)表達(dá)式第56頁,共114頁,2023年,2月20日,星期六第二章關(guān)系數(shù)據(jù)庫2.5關(guān)系演算第57頁,共114頁,2023年,2月20日,星期六2.5關(guān)系演算關(guān)系演算以數(shù)理邏輯中的謂詞演算為基礎(chǔ)種類:按謂詞變元不同分類1.元組關(guān)系演算:以元組變量作為謂詞變元的基本對象元組關(guān)系演算語言ALPHA2.域關(guān)系演算:以域變量作為謂詞變元的基本對象域關(guān)系演算語言QBE第58頁,共114頁,2023年,2月20日,星期六2.5.1元組關(guān)系演算語言ALPHA由E.F.Codd提出INGRES所用的QUEL語言是參照ALPHA語言研制的語句檢索語句GET更新語句PUT,HOLD,UPDATE,DELETE,DROP第59頁,共114頁,2023年,2月20日,星期六一、檢索操作

語句格式:

GET工作空間名(表達(dá)式):操作條件

表達(dá)式1:指定語句的操作對象格式:關(guān)系名|關(guān)系名.屬性名操作條件:將操作結(jié)果限定在滿足條件的元組。它是一個邏輯表達(dá)式第60頁,共114頁,2023年,2月20日,星期六(1)簡單檢索

GET工作空間名(表達(dá)式1)[例1]查詢所有被選修的課程號碼。GETW(SC.Cno)

[例2]查詢所有學(xué)生的數(shù)據(jù)。GETW(Student)第61頁,共114頁,2023年,2月20日,星期六(2)限定的檢索格式

GET工作空間名(表達(dá)式1):操作條件[例3]查詢信息系(IS)中年齡小于20歲的學(xué)生的學(xué)號和年齡。GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<20第62頁,共114頁,2023年,2月20日,星期六(3)帶排序的檢索格式

GET工作空間名(表達(dá)式1)[:操作條件]DOWN/UP表達(dá)式2

[例4]查詢計算機(jī)科學(xué)系(CS)學(xué)生的學(xué)號、年齡,結(jié)果按年齡降序排序。GETW(Student.Sno,Student.Sage):Student.Sdept='CS‘DOWNStudent.Sage第63頁,共114頁,2023年,2月20日,星期六(4)帶定額的檢索

格式

:GET工作空間名(定額)(表達(dá)式1)[:操作條件][DOWN/UP表達(dá)式2][例5]取出一個信息系學(xué)生的學(xué)號。GETW(1)(Student.Sno): Student.Sdept='IS'

[例6]查詢信息系年齡最大的三個學(xué)生的學(xué)號及其年齡,結(jié)果按年齡降序排序。

GETW(3)(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage第64頁,共114頁,2023年,2月20日,星期六(5)用元組變量的檢索元組變量的含義表示可以在某一關(guān)系范圍內(nèi)變化(也稱為范圍變量RangeVariable)元組變量的用途①簡化關(guān)系名:設(shè)一個較短名字的元組變量來代替較長的關(guān)系名。②操作條件中使用量詞時必須用元組變量。定義元組變量格式:RANGE關(guān)系名

變量名一個關(guān)系可以設(shè)多個元組變量第65頁,共114頁,2023年,2月20日,星期六學(xué)號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)

Student第66頁,共114頁,2023年,2月20日,星期六(b)Course課程號課程名先行課學(xué)分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)

23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理

27PASCAL語言64學(xué)號課程號成績SnoCnoGrade9500119295001285950013889500229095002380(c)SC第67頁,共114頁,2023年,2月20日,星期六(6)用存在量詞的檢索[例8]查詢選修2號課程的學(xué)生名字。

RANGESCX

GETW(Student.Sname):X(X.Sno=Student.Sno∧X.Cno='2')[例9]查詢選修了這樣課程的學(xué)生學(xué)號,其直接先行課是6號課程。RANGECourseCXGETW(SC.Sno):

CX(CX.Cno=SC.Cno∧CX.Pcno='6')第68頁,共114頁,2023年,2月20日,星期六用存在量詞的檢索(續(xù))[例10]查詢至少選修一門其先行課為6號課程的學(xué)生名字

RANGECourseCXSCSCX GETW(Student.Sname):SCX(SCX.Sno=Student.Sno∧

CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))

前束范式形式:

GETW(Student.Sname):

SCXCX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')第69頁,共114頁,2023年,2月20日,星期六(7)帶有多個關(guān)系的表達(dá)式的檢索

[例11]查詢成績?yōu)?0分以上的學(xué)生名字與課程名字。RANGESCSCXGETW(Student.Sname,Course.Cname):

SCX(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)第70頁,共114頁,2023年,2月20日,星期六(8)用全稱量詞的檢索

[例12]查詢不選1號課程的學(xué)生名字。RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')用存在量詞表示:RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')第71頁,共114頁,2023年,2月20日,星期六(9)用兩種量詞的檢索[例13]查詢選修了全部課程的學(xué)生姓名。RANGECourseCXSCSCXGETW(Student.Sname):CXSCX (SCX.Sno=Student.Sno∧ SCX.Cno=CX.Cno)第72頁,共114頁,2023年,2月20日,星期六(10)用蘊(yùn)函(Implication)的檢索

[例14]查詢最少選修了95002學(xué)生所選課程的學(xué)生學(xué)號。RANGECouseCXSCSCXSCSCYGETW(Student.Sno):CX(SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno) SCY(SCY.Sno=Student.Sno∧ SCY.Cno=CX.Cno))第73頁,共114頁,2023年,2月20日,星期六(11)集函數(shù)常用集函數(shù)(Aggregationfunction)或內(nèi)部函數(shù)(Build-infunction)函數(shù)名功能COUNT對元組計數(shù)TOTAL求總和MAX求最大值MIN求最小值A(chǔ)VG求平均值第74頁,共114頁,2023年,2月20日,星期六集函數(shù)(續(xù))[例15]查詢學(xué)生所在系的數(shù)目。GETW(COUNT(Student.Sdept))COUNT函數(shù)在計數(shù)時會自動排除重復(fù)值。

[例16]查詢信息系學(xué)生的平均年齡GETW(AVG(Student.Sage):Student.Sdept='IS’)

第75頁,共114頁,2023年,2月20日,星期六二、更新操作(1)修改操作(2)插入操作(3)刪除操作第76頁,共114頁,2023年,2月20日,星期六(1)修改操作步驟①用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中

HOLD

工作空間名(表達(dá)式1)[:操作條件]HOLD語句是帶上并發(fā)控制的GET語句②用宿主語言修改工作空間中元組的屬性③用UPDATE語句將修改后的元組送回數(shù)據(jù)庫中

UPDATE

工作空間名第77頁,共114頁,2023年,2月20日,星期六修改操作(續(xù))[例17]把95007學(xué)生從計算機(jī)科學(xué)系轉(zhuǎn)到信息系。HOLDW(Student.Sno,Student.Sdetp):Student.Sno='95007'

(從Student關(guān)系中讀出95007學(xué)生的數(shù)據(jù))MOVE'IS'TOW.Sdept

(用宿主語言進(jìn)行修改)

UPDATEW

(把修改后的元組送回Student關(guān)系)第78頁,共114頁,2023年,2月20日,星期六(2)插入操作步驟①用宿主語言在工作空間中建立新元組②用PUT語句把該元組存入指定關(guān)系中

PUT

工作空間名(關(guān)系名)

PUT語句只對一個關(guān)系操作第79頁,共114頁,2023年,2月20日,星期六插入操作(續(xù))[例18]學(xué)校新開設(shè)了一門2學(xué)分的課程“計算機(jī)組織與結(jié)構(gòu)”,其課程號為8,直接先行課為6號課程。插入該課程元組

MOVE'8'TOW.CnoMOVE'計算機(jī)組織與結(jié)構(gòu)'TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.Ccredit

PUTW(Course)第80頁,共114頁,2023年,2月20日,星期六(3)刪除操作①用HOLD語句把要刪除的元組從數(shù)據(jù)庫中讀到工作空間中②用DELETE語句刪除該元組

DELETE

工作空間名第81頁,共114頁,2023年,2月20日,星期六刪除操作(續(xù))[例19]95110學(xué)生因故退學(xué),刪除該學(xué)生元組。HOLDW(Student):Student.Sno='95110'DELETEW

第82頁,共114頁,2023年,2月20日,星期六刪除操作(續(xù))[例20]將學(xué)號95001改為95102。HOLDW(Student):Student.Sno='95001'

DELETEWMOVE'95102'TOW.SnoMOVE'李勇'TOW.SnameMOVE'男'OW.SsexMOVE'20'TOW.SageMOVE'CS'TOW.Sdept

PUTW(Student)

第83頁,共114頁,2023年,2月20日,星期六刪除操作(續(xù))[例21]刪除全部學(xué)生。HOLDW(SC)DELETEW

HOLDW(Student)DELETEW在刪除操作中保持參照完整性第84頁,共114頁,2023年,2月20日,星期六小結(jié):元組關(guān)系演算語言ALPHA檢索操作GETGET

工作空間名[(定額)](表達(dá)式1)[:操作條件][DOWN/UP表達(dá)式2]插入操作建立新元組--PUT修改操作HOLD--修改--UPDATE刪除操作HOLD--DELETE第85頁,共114頁,2023年,2月20日,星期六2.5關(guān)系演算2.5.1元組關(guān)系演算語言ALPHA2.5.2域關(guān)系演算語言QBE第86頁,共114頁,2023年,2月20日,星期六2.5.2域關(guān)系演算語言QBE

l

一種典型的域關(guān)系演算語言 由M.M.Zloof提出 1978年在IBM370上得以實現(xiàn) QBE也指此關(guān)系數(shù)據(jù)庫管理系統(tǒng)lQBE:QueryByExample

基于屏幕表格的查詢語言查詢要求:以填寫表格的方式構(gòu)造查詢用示例元素(域變量)來表示查詢結(jié)果可能的情況查詢結(jié)果:以表格形式顯示第87頁,共114頁,2023年,2月20日,星期六QBE操作框架

關(guān)系名屬性名操作命令元組屬性值或查詢條件或操作命令第88頁,共114頁,2023年,2月20日,星期六一、檢索操作(1)用戶提出要求;(2)屏幕顯示空白表格;

(3)用戶在最左邊一欄輸入要查詢的關(guān)系名,例如Student;Student第89頁,共114頁,2023年,2月20日,星期六檢索操作(續(xù))(4)系統(tǒng)顯示該關(guān)系的屬性名

(5)用戶在上面構(gòu)造查詢要求

StudentSnoSnameSsexSageSdept

P.T

AO.C

StudentSnoSnameSsexSageSdept

第90頁,共114頁,2023年,2月20日,星期六檢索操作(續(xù))(6)屏幕顯示查詢結(jié)果StudentSnoSnameSsexSageSdept

李勇張立

C

第91頁,共114頁,2023年,2月20日,星期六構(gòu)造查詢的幾個要素示例元素即域變量一定要加下劃線示例元素是這個域中可能的一個值,它不必是查詢結(jié)果中的元素打印操作符P.指定查詢結(jié)果所含屬性列查詢條件不用加下劃線可使用比較運(yùn)算符>,≥,<,≤,=和≠其中=可以省略排序要求第92頁,共114頁,2023年,2月20日,星期六1.簡單查詢[例1]查詢?nèi)w學(xué)生的全部數(shù)據(jù)。StudentSnoSnameSsexSageSdept

P.95001P.李勇P.男P.20P.CS第93頁,共114頁,2023年,2月20日,星期六簡單查詢(續(xù))顯示全部數(shù)據(jù)也可以簡單地把P.操作符作用在關(guān)系名上。StudentSnoSnameSsexSageSdept

P.

第94頁,共114頁,2023年,2月20日,星期六2.條件查詢(1)簡單條件

[例2]求信息系全體學(xué)生的姓名。StudentSnoSnameSsexSageSdept

P.李勇

IS第95頁,共114頁,2023年,2月20日,星期六條件查詢(續(xù))

[例3]求年齡大于19歲的學(xué)生的學(xué)號。StudentSnoSnameSsexSageSdept

P.95001

>19第96頁,共114頁,2023年,2月20日,星期六條件查詢(與條件)[例4]求計算機(jī)科學(xué)系年齡大于19歲的學(xué)生的學(xué)號。方法(1):把兩個條件寫在同一行上StudentSnoSnameSsexSageSdept

P.95001

>19CS第97頁,共114頁,2023年,2月20日,星期六條件查詢(續(xù))方法(2):把兩個條件寫在不同行上,但使用相同的示例元素值StudentSnoSnameSsexSageSdept

P.95001P.95001

>19CS第98頁,共114頁,2023年,2月20日,星期六條件查詢(續(xù))[例5]查詢既選修了1號課程又選修了2號課程的學(xué)生的學(xué)號。SCSnoCnoGrade

P.95001P.9500112

第99頁,共114頁,2023年,2月20日,星期六條件查詢(續(xù))[例6]查詢計算機(jī)科學(xué)系或者年齡大于19歲的學(xué)生的學(xué)號。StudentSnoSname

溫馨提示

  • 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

提交評論