用關系代數表示數據查詢的典型例子_第1頁
用關系代數表示數據查詢的典型例子_第2頁
用關系代數表示數據查詢的典型例子_第3頁
用關系代數表示數據查詢的典型例子_第4頁
用關系代數表示數據查詢的典型例子_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論