關係代數 Relational Algebra中,一元運算符有選擇select、投影project、重命名remane,其他的包括並運算union、集合差set diffetence、笛卡爾積cartesian product等爲二元運算符。下面學習它們的基本使用。
1、一元運算符
a)選擇
選擇的操做符爲小寫sigma(σ),好比選擇物理系的教師,能夠寫爲:
σdept_name=」Physics」(instructor)(標準的寫法中dept_name=」Physics」屬於σ的下標)。
還能夠使用比較運算、與∧、或∨、非¬等,薪水大於90000的物理系教師:
σdept_name=」Physics」∧salary>90000(instructor)
查詢部門名稱與所在辦公樓同名的部分:
σdept_name=building(department)
須要注意的是關係代數中的select並不與SQL中的select對應,與之對應的是SQL的where子句
b)投影
投影的操做符爲大寫pi(Π),能夠選擇性的顯示關係的某些屬性,SQL的select ID, name, salary from instructor 能夠表示爲:
ΠID, name, salary (instructor )
c)關係運算的組合
關係運算的結果仍是關係,基於這一點,能夠將關係運算組合使用,好比查找表達物理系老師的姓名,能夠表示爲:
Πname (σdept name = 「Physics」 (instructor))
這兒將選擇運算的結果做爲了投影運算的參數
d)重命名
重命名的符號爲小寫rho(ρ):
ρx(E)表示將關係E重命名爲x
ρx(a1,a2...)(E)則將E對應的屬性也重命名爲a1,a2...
2、二元運算符
a)並運算Union
並運算爲二元運算符,用於合併兩個相同結構的集合,以前查詢過2009年秋季和2010年春季都開課的課程ID,能夠表示爲:
Πcourse id (semester = 「Fall」∧ year=2009 (section))
∪
Πcourse id (semester = 「Spring」∧ year=2010 (section))
union運算的符號爲∪,參加union運算的關係必須有相同數目的屬性,並且對於合併位的屬性類型必須相同。
b)集合差運算Set-Difference
集合差運算的符號位減號-,r-s的結果爲存在於r中但不存在於s中的元組。集合差運算對集合的要求與union相同。
c)笛卡爾積Cartesian Product
笛卡爾積的符號爲×,instructor×teaches的結果爲教師與課程間全部可能的的組合狀況,但這樣每每沒什麼實用意義,除了教師與課程能對應起來的元組,這些元組能夠篩選爲:
σinstructor .ID = teaches.instcuctor_ID (dept name =」Physics」(instructor × teaches))
學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan
學習