關(guān)系代數(shù) Relational Algebra中,一元運(yùn)算符有選擇select豪诲、投影project、重命名remane挂绰,其余的包括并運(yùn)算union屎篱、集合差set diffetence、笛卡爾積cartesian? product等為二元運(yùn)算符葵蒂。下面學(xué)習(xí)它們的基本使用交播。
一、一元運(yùn)算符
a)選擇
選擇的操作符為小寫sigma(σ)践付,比如選擇物理系的教師秦士,可以寫為:
σdept_name=”Physics”(instructor)(標(biāo)準(zhǔn)的寫法中dept_name=”Physics”屬于σ的下標(biāo))。
還可以使用比較運(yùn)算永高、與∧隧土、或∨、非?等命爬,薪水大于90000的物理系教師:
σdept_name=”Physics”∧salary>90000(instructor)
查詢部門名稱與所在辦公樓同名的部分:
σdept_name=building(department)
需要注意的是關(guān)系代數(shù)中的select并不與SQL中的select對應(yīng)曹傀,與之對應(yīng)的是SQL的where子句
b)投影
投影的操作符為大寫pi(Π),可以選擇性的顯示關(guān)系的某些屬性饲宛,SQL的select ID, name, salary from instructor 可以表示為:
ΠID, name, salary (instructor )
c)關(guān)系運(yùn)算的組合
關(guān)系運(yùn)算的結(jié)果還是關(guān)系皆愉,基于這一點,可以將關(guān)系運(yùn)算組合使用,比如查找表達(dá)物理系老師的姓名亥啦,可以表示為:
Πname (σdept name = “Physics” (instructor))
這兒將選擇運(yùn)算的結(jié)果作為了投影運(yùn)算的參數(shù)
d)重命名
重命名的符號為小寫rho(ρ):
ρx(E)表示將關(guān)系E重命名為x
ρx(a1,a2...)(E)則將E對應(yīng)的屬性也重命名為a1,a2...
二炭剪、二元運(yùn)算符
a)并運(yùn)算Union
并運(yùn)算為二元運(yùn)算符,用于合并兩個相同結(jié)構(gòu)的集合翔脱,之前查詢過2009年秋季和2010年春季都開課的課程ID奴拦,可以表示為:
Πcourse id (semester = “Fall”∧ year=2009 (section))
∪
Πcourse id (semester = “Spring”∧ year=2010 (section))
union運(yùn)算的符號為∪,參加union運(yùn)算的關(guān)系必須有相同數(shù)目的屬性届吁,而且對于合并位的屬性類型必須相同错妖。
b)集合差運(yùn)算Set-Difference
集合差運(yùn)算的符號位減號-,r-s的結(jié)果為存在于r中但不存在于s中的元組疚沐。集合差運(yùn)算對集合的要求與union相同暂氯。
c)笛卡爾積Cartesian Product
笛卡爾積的符號為×,instructor×teaches的結(jié)果為教師與課程間所有可能的的組合情況亮蛔,但這樣往往沒什么實用意義痴施,除了教師與課程能對應(yīng)起來的元組,這些元組可以篩選為:
σinstructor .ID = teaches.instcuctor_ID (dept name =”Physics”(instructor × teaches))
學(xué)習(xí)資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan
?