relational algebra
- Procedural language
- 연산자의 순서대로 연산한다.
select σ
주어진 조건 만족하는 튜플로 이루어진 새로운 테이블 생성
-
σp(r)
- p : 선택 조건
-
term
- ⋀(and), ⋁(or), ﹁(not)으로 연결 가능
- “< attribute> op< attribute>” 또는 “< attribute> op < constant> 형태
- op는 6개의 비교연산자 중 하나
-
예시
- 1
- 교수 중 CS과에 속한 교수 검색
- σdeptName="CS"(professor)
- 2

-
r이라는 테이블에서 작은글씨의 조건에 충족하는걸 검색해라
-
순서대로 연산해야함 -> A=B이면서 D>4이어야 함
project Π
임의의 속성(attribute) 만족하는 tuple로 이루어진 새로운 테이블 생성
- ΠA1,A2...Ak(r)
- 선택 연산이 터플 단위로 원하는 결과를 구하는 것이라면, 투영 연산은 속성 단위로 원하는 결과를 구하는 것이라고 할 수 있다.
- 중복이 제거된다
- 예시
- ex1)
- proffesor 테이블에서 deptName을 제거 하여 보인다.
- ΠpID,name,salary(professor)
- ex2)

union ∪
일반적 합집합 정의와 동일
- 유효 조건 (- 연산에도 동일)
- tuple 속성 갯수가 동일해야
- 대응되는 속성의 도메인이 상호호환적이어야
- 중복 허용하지 않는다.
- 예시
- 2014 가을학기 혹은 2015 봄학기 혹은 모두에서 강의된 course ID 를 모두 찾아라
- ΠcID(σsemester="FALL"∧year=2014(teaches))∪ΠcID(σsemester="Spring"∧year=2015(teaches))
set diffrence −
일반적 차집합 정의와 동일
Cartesian Product x
입력 테이블의 각 터플을 취하여 이를 연결(concatenation)하여 결과 테이블 만듬
- 관계에 속하는 터플의 모든 가능한 조합을 결과 관계로 산출
- 각 테이블에 중복 속성이 없음을 전제한다
- (A,B) x (A,C) = (A,B,A,C) 가 아니라 (A, B, A’, C)!!
- 두 개의 입력 테이블에 동일 속성이 존재하면, 재명명(rename) 연산을 이용하여 동일한 속성 이름이 없도록 하여야
- 동일 속성 이름이 존재하면 자연조인 되어버린다.
- ex
- 
rename ρ
단순히 테이블 이름이나 속성 이름을 변경하는 연산
- ρX(A1,A2,,,An)(E)
- E테이블의 이름을 X로 바꾸고, column들의 이름을 A1, A2,,,An으로 하겠다.
relational algebra expressions
relational algebra 의 결과는 관계 (=테이블)이므로, 관계대수식의 합성이 가능하다.
- CS 소속의 남학생 이름과 GPA 점수를 찾는다
- 정답) Πname,GPA(σdeptName="CS"∧gender="M"(student))
- CS 학과와 EE 학과에서 모두 개설되는 과목명
- 오답) Πtitle(σdeptName="CS"∧deptName="EE"(course))
- CS 학과 or EE 학과에서 개설되는 과목명
- 정답1)
Πtitle(σdeptName="CS"∪deptName="EE"(course))
- 정답 2)
Πtitle(σdeptName="CS"(course))∪Πtitle(σdeptName="EE"(course))
- ✨Retrieve pairs of department names where the budget of the first department is grater than that of the second department
(department name의 쌍을 구하라 : 첫번째 department의 budget이 두번째 departmen의 budget보다 큰 경우의 쌍)
- 정답1)
ΠdeptName,new−deptName(σbudget>new−budget(departmentXρdepartment(new−deptNAme,new−chairman,new−building,new−budet)(department)))
- 주의사항
- rename rho 사용시 모든 column들을 rename 해줘야