[資料庫] 關係代數θ連線操作與除操作
θ連線操作
連線操作應用舉例
連線也稱為θ連線,關係R與關係S的連線運算是從兩個關係的廣義笛卡爾積中選取屬性間滿足一定條件的元組形成一個新的連線:
記作S⋈R(AθB)
其中:A為包含R中的屬性的表示式
B為包含S中的屬性的表示式
θ通常為關係比較符
其中θ在“=”時的連線為等值連線
例如:
資料庫定義:
DB={ Student(ID,sName,sGPA)
College(cName,State,cGPA) }
其中:
關係Student表示學生資訊,屬性ID為學生學號,屬性sName為學生姓名,屬性sGPA為學生平均學分績。
關係College表示大學資訊,屬性cName為學校名稱,State為所在州,cGPA為入學要求學分績。
使用者所需查詢:選擇,投影,並運算,差運算,笛卡爾運算,更名運算,θ連線操作,除操作,以下示例:
σID=”1133730208”(Student)
πID(Student)
等。
連線操作常用表示符號
S⋈θR,其中θ表示任意條件
連線操作使用方法及例項
關係R和關係S滿足條件θ的θ連線操作的結果是這樣構造的:
1. 先得到R和S的積
2. 在得到的關係中尋找滿足條件θ的元組
例如:
關係Student
ID |
sName |
sGPA |
1133730208 |
Wang |
3.1 |
1133730209 |
Zhou |
4.0 |
1133730210 |
Zhang |
2.2 |
關係College
cName |
State |
cGPA |
UC Berkeley |
California |
3.2 |
MIT |
Massachusetts |
3.5 |
CMU |
Pennsylvania |
3.0 |
考慮這樣的θ操作Student⋈sGPA>cGPACollege
此時θ為sGPA>cGPA
則這裡必須考慮9個元組的配對方案。
配對成功元組如下所示:
ID |
sName |
sGPA |
cName |
State |
cGPA |
1133730208 |
Wang |
3.1 |
CMU |
Pennsylvania |
3.0 |
1133730209 |
Zhou |
4.0 |
UC Berkeley |
California |
3.2 |
1133730209 |
Zhou |
4.0 |
MIT |
Massachusetts |
3.5 |
1133730209 |
Zhou |
4.0 |
CMU |
Pennsylvania |
3.0 |
連線操作證明
Student ⋈sGPA>cGPA College = σsGPA>cGPA(StudentхCollege)
除操作
除操作應用舉例
資料庫定義:DB = {
學生關係: S(SNO, Sname, Age,Sex)
課程關係: C(CNO, Cname,Teacher)
學習關係: SC(SNO, CNO, Grade) }
其中:
學生關係中,SNO為學生學號,Sname為學生姓名,Age為學生年齡,Sex為學生性別
課程關係中,CNO為課程編號,Cname為課程名,Teacher為授課教師
學習關係中,Grade為分數
使用者所需查詢:選擇,投影,並運算,差運算,笛卡爾運算,更名運算,θ連線操作,除操作,以下示例:
σID=”1133730208”(Student)
πID(Student)
等。
除操作常用表示符號
r÷s(其中R和S已知)
除操作使用方法及例項
例如:
學習關係SC
SNO |
CNO |
Grade |
1133730208 |
12345 |
98 |
1133730208 |
25555 |
91 |
1133730201 |
12345 |
88 |
1133730208 |
45555 |
77 |
1133730201 |
45555 |
89 |
課程關係C
CNO |
Cname |
Teacher |
12345 |
系統分析與設計 |
Fan |
25555 |
作業系統 |
Fan |
45555 |
資料庫 |
Li |
學生關係S
SNO |
Sname |
Age |
Sex |
1133730208 |
Wang |
21 |
男 |
1133730201 |
Zhang |
20 |
男 |
則 Πsno,cno SC ÷ πCNO C
學號 |
1133730208 |
除操作證明
πSNO,CNO SC ÷ πCNO C
= πSNOSC-πSNO(πSNOSC ×πCNOC -πSNO,CNO SC )