回覆列表
  • 1 # 使用者3977671246998

    [例]設教學資料庫中有3個關係:

    學生關係S(SNO,SNAME,AGE,SEX)

    學習關係SC(SNO,CNO,GRADE)

    課程關係C(CNO,CNAME,TEACHER)

    下面用關係代數表示式表達每個查詢語句。

    (1) 檢索學習課程號為C2的學生學號與成績。

    πSNO,GRADE(σ CNO="C2"(SC))

    (2) 檢索學習課程號為C2的學生學號與姓名

    πSNO,SNAME(σ CNO="C2"(SSC))

    由於這個查詢涉及到兩個關係S和SC,因此先對這兩個關係進行自然連線,同一位學生的有關的資訊,然後再執行選擇投影操作。

    此查詢亦可等價地寫成:

    πSNO,SNAME(S)(πSNO(σ CNO="C2"(SC)))

    這個表示式中自然連線的右分量為"學了C2課的學生學號的集合"。這個表示式比前一個表示式最佳化,執行起來要省時間,省空間。

    (3)檢索選修課程名為MATHS的學生學號與姓名。

    πSNO,SANME(σ CNAME="MATHS"(SSCC))

    (4)檢索選修課程號為C2或C4的學生學號。

    πSNO(σ CNO="C2"∨CNO="C4"(SC))

    (5) 檢索至少選修課程號為C2或C4的學生學號。

    π1(σ1=4∧2="C2"∧5="C4"(SC×SC))

    這裡(SC×SC)表示關係SC自身相乘的乘積操作,其中數字1,2,4,5都為它的結果關係中的屬性序號。

  • 中秋節和大豐收的關聯?
  • 壓力機械危險如何防護?