用關(guān)系代數(shù)表示數(shù)據(jù)查詢的典型例子_第1頁
用關(guān)系代數(shù)表示數(shù)據(jù)查詢的典型例子_第2頁
用關(guān)系代數(shù)表示數(shù)據(jù)查詢的典型例子_第3頁
用關(guān)系代數(shù)表示數(shù)據(jù)查詢的典型例子_第4頁
用關(guān)系代數(shù)表示數(shù)據(jù)查詢的典型例子_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

用關(guān)系代數(shù)表示數(shù)據(jù)查詢的典型例子例設(shè) 教學(xué)數(shù)據(jù)庫中有3個(gè)關(guān)系: 學(xué)生關(guān)系S(SNO,SNAME,AGE,SEX) 學(xué)習(xí)關(guān)系SC(SNO,CNO,GRADE) 課程關(guān)系C(CNO,CNAME,TEACHER) 下面用關(guān)系代數(shù)表達(dá)式和SQL語句分別表達(dá)每個(gè)查詢語句。(1) 檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與成績。SNO,GRADE(CNO=C2(SC)SELECT SNO, GRADE FROM SC WHERE CNO=C2(2) 檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與姓名SNO,SNAME(CNO=C2(SSC)由于這個(gè)查詢涉及到兩個(gè)關(guān)系S和SC,因此先對(duì)這兩個(gè)關(guān)系進(jìn)行自然連接,同一位學(xué)生的有關(guān)的信息,然后再執(zhí)行選擇投影操作。此查詢亦可等價(jià)地寫成:SNO,SNAME(S)(SNO(CNO=C2(SC))這個(gè)表達(dá)式中自然連接的右分量為”學(xué)了C2課的學(xué)生學(xué)號(hào)的集合”。這個(gè)表達(dá)式比前一個(gè)表達(dá)式優(yōu)化,執(zhí)行起來要省時(shí)間,省空間。 SELECTSNO,SNAME FROM S WHERE EXISTS (SELECT * FROM SC WHERESNO=S.SNO ANDCNO=C2)(3)檢索選修課程名為MATHS的學(xué)生學(xué)號(hào)與姓名。SNO,SANME(CNAME=MATHS(SSCC)SELECT S.SNO, SNAME FROM S, SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CNAME=MATHS(4)檢索選修課程號(hào)為C2或C4的學(xué)生學(xué)號(hào)。SNO(CNO=C2CNO=C4(SC)SELECT S.SNO, SNAME FROM S, SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CNAME=MATHS(5) 檢索至少選修課程號(hào)為C2或C4的學(xué)生學(xué)號(hào)。1(1=42=C25=C4(SCSC)) SELECTSNO FROM SC AS X, SC AS Y WHERE X.SNO=Y.SNO AND X.CNO=C2 AND Y.CNO=C4這里(SCSC)表示關(guān)系SC自身相乘的乘積操作,其中數(shù)字1,2,4,5都為它的結(jié)果關(guān)系中的屬性序號(hào)。比較這一題與上一題的差別。(6) 檢索不學(xué)C2課的學(xué)生姓名與年齡。SNAME,AGE(S)SNAME,AGE(CNO=C2(SSC))這個(gè)表達(dá)式用了差運(yùn)算,差運(yùn)算的左分量為”全體學(xué)生的姓名和年齡”,右分量為”學(xué)了C2課的學(xué)生姓名與年齡”。 SELECT SNAME, AGE FROM S WHERESNO NOT IN (SELECTSNO FROM SC WHERECNO=C2)或SELECT SNMAE,AGE FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO ANDCNO=C2)(7)檢索學(xué)習(xí)全部課程的學(xué)生姓名。編寫這個(gè)查詢語句的關(guān)系代數(shù)過程如下: (a) 學(xué)生選課情況可用SNO,CNO(SC)表示;(b) 全部課程可用CNO(C)表示;(c) 學(xué)了全部課程的學(xué)生學(xué)號(hào)可用除法操作表示。 操作結(jié)果為學(xué)號(hào)SNO的集合,該集合中每個(gè)學(xué)生(對(duì)應(yīng)SNO)與C中任一門課程號(hào)CNO配在一起都在SCO,CNO(SC)中出現(xiàn)(即SC中出現(xiàn)),所以結(jié)果中每個(gè)學(xué)生都學(xué)了全部的課程(這是”除法”操作的含義):SNO,CNO(SC)CNO(C)(d) 從SNO求學(xué)生姓名SNAME,可以用自然連結(jié)和投影操作組合而成:SNAME(S(SNO,CNO(SC)CNO(C)這就是最后得到的關(guān)系代數(shù)表達(dá)式。SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO)(8) 檢索所學(xué)課程包含S3所學(xué)課程的學(xué)生學(xué)號(hào)。注意:學(xué)生S3可能學(xué)多門課程,所以要用到除法操作來表達(dá)此查詢語句。 學(xué)生選課情況可用操作 SNO,CNO(SC)表示; 所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào),可以用除法操作求得: SNO,CNO(SC) CNO(SNO=S3(SC))SELECT DISTINCTSNO FROM SC X WHERE NOT EXISTS (SELECT * FROM SC Y WHERE Y.SNO=S3 AND NOT EXISTS (SELECT * FROM SC Z WHERE Z.SNO=X.SNO AND Z.CNO=Y.CNO) (9) 將新課程元組(C10,PHYSICS,YU)插入到關(guān)系C中 (C(C10,PHYSICS,YU)INSERT INTO C VALUES(C10,PHYSICS,YU)(10) 將學(xué)號(hào)S4選修課程號(hào)為C4的成績改為85分。(SC-(S4,C4,?)(S4,C4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論