關系演算 :以數理邏輯中的謂詞演算為基礎
按謂詞變元不同分類
1.元組關系演算:
以元組變量作為謂詞變元的基本對象
元組關系演算語言ALPHA
2.域關系演算:
以域變量作為謂詞變元的基本對象
域關系演算語言QBE
元組關系演算語言ALPHA
(1) 簡單檢索(即不帶條件的檢索)
格式: GET 工作空間名 (表達式1)
查詢所有被選修的課程號碼。
GET W (SC.Cno)
(2) 限定的檢索(即帶條件的檢索)
格式: GET 工作空間名(表達式1) : 操作條件
查詢信息系(IS)中年齡小於20歲的學生的學號和年齡。
GET W (Student.Sno, Student.Sage):Student.Sdept='IS'∧Student.Sage<20
(3) 帶排序的檢索
格式: GET 工作空間名(表達式1) [:操作條件] DOWN/UP 表達式2
查詢計算機科學系(CS)學生的學號、 年齡, 結果按年齡降序排序。
GET W (Student.Sno, Student.Sage): Student.Sdept=‘CS’DOWN Student.Sage
(4) 帶定額的檢索
格式 : GET 工作空間名(定額) (表達式1) [:操作條件] [DOWN/UP 表達式2]
取出一個信息系學生的學號。
GET W (1) (Student.Sno): Student.Sdept='IS’
(5) 用元組變量的檢索
1元組變量的含義
表示可以在某一關系范圍內變化(也稱為范圍變量Range Variable)
2元組變量的用途
簡化關系名:設一個較短名字的元組變量來代替較長的關系名。
操作條件中使用量詞時必須用元組變量。
3定義元組變量
格式: RANGE 關系名 變量名
一個關系可以設多個元組變量
查詢信息系學生的名字
RANGE Student X GET W (X.Sname):X.Sdept=‘IS’
(6) 用存在量詞的檢索
查詢選修2號課程的學生名字。
RANGE SC X GET W (Student.Sname): ΕX(X.Sno=Student.Sno∧X.Cno='2')
查詢至少選修一門其先行課為6號課程的學生名字
RANGE Course CX SC SCX
GET W (Student.Sname):
E SCX (SCX.Sno=Student.Sno∧
E CX (CX.Cno=SCX.Cno∧CX.Pcno='6'))
(7) 帶有多個關系的表達式的檢索
查詢成績為90分以上的學生名字與課程名字
RANGE SC SCX GET W (Student.Sname, Course.Cname): SCX (SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)
(8) 用全稱量詞的檢索
查詢不選1號課程的學生名字。
RANGE SC SCX
GET W (Student.Sname): v(任意)SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')
(9) 用兩種量詞的檢索
查詢選修了全部課程的學生姓名。


(10) 用蘊函(Implication) 的檢索

(11) 集函數

查詢學生所在系的數目。
GET W (COUNT(Student.Sdept))
COUNT函數在計數時會自動排除重復值。
更新操作
(1) 修改操作
用HOLD語句將要修改的元組從數據庫中讀到工作空間中 HOLD 工作空間名(表達式1) [:操作條件 ]
用宿主語言修改工作空間中元組的屬性
用UPDATE語句將修改后的元組送回數據庫中
把95007學生從計算機科學系轉到信息系
HOLD W (Student.Sno, Student.Sdetp): Student.Sno='95007 (從Student關系中讀出95007學生的數據)
MOVE ‘IS’ TO W.Sdept (用宿主語言進行修改)
UPDATE W (把修改后的元組送回Student關系)
(2) 插入操作
用宿主語言在工作空間中建立新元組
用PUT語句把該元組存入指定關系中 PUT 工作空間名 (關系名)
學校新開設了一門2學分的課程‚計算機組織與結構‛ , 其課程號為8, 直接先行課為6號課程。 插入該課程元組
MOVE '8' TO W.Cno
MOVE '計算機組織與結構' TO W.Cname
MOVE '6' TO W.Cpno
MOVE '2' TO W.Ccredit
PUT W (Course)
(3) 刪除操作
用HOLD語句把要刪除的元組從數據庫中讀到工作空間中
用DELETE語句刪除該元組 DELETE 工作空間名
95110學生因故退學, 刪除該學生元組。
HOLD W (Student):Student.Sno='95110'
DELETE W
