relational algebra 란 relation 을 처리하기 위한 연산의 집합으로써 2종류가 있다.
일반 집합 연산자, 순수 관계 연산자.
일반 집합 연산자(차집합, 합집합, 교집합, caretesian)
(2) projection (파이)
select 와는 다르게 relation 의 tuple 이 아니라 relation 의 attribute 를 연산 대상으로 한다.
연산 결과는 project 연산에 명세된 attribute 값들만 선택하게 된다. 이는 주어진 relation 의 일부 열들로만 구성된것이기 때문에 (vertical subset) 이라한다.
이 projection 연산 결과로 만들어진 relation 에 똑같은 tuple 이 중복되게 포함되면 (후보키를 전부 제거하면 이런 경우 생김) tuple 제거함 해야 함. 또한 attribute list 도 중복되면 안됨. 왜냐하면 relation 이 attribute ㅡ이 집합이니까.
(3) join
(1) equiijoin
(2) natural join
(4) division
두 relation R(X), S(Y) 에 대해서
Y <= X, X - Y = Z 라 하자
R(X) = R(Z, Y)
(5) rename: 릴레이션에 이름을 붙일 수 있다. attribute 이름도 변경 가능. 동시에도 변경 가능.
join, 교집합 division 연산을 composite 연산이라고 하고 나머지는 다 primitive 연산이라고 한다.
근원 연산: 다른 연산을 이용하여 표현할 수 없는 연산
composite 연산: 5개의 근워연산으로 표현 가능
(1) semijoin vs outerjoin:
R semijoin S
semijoin: S 와의 natural join 에 참여 할 수 있는 R 의 튜플만을 선택하는 것.
outer join: innerjoin 을 확장한 개념,
join 을 하는 과정에서 한 relation 에 있는 어떤 튜플이 join 할 상대 relation 에 대응되는 tuple 이 없을 경우에 이를 제외시키기 않고, 상대를 null 로 만들어 relation 에 포함시키고 있다.
relation data 의 연산 표현 방법으로 지금까지 relation algebra 를 설명했다. 또다른 연산 표현 방법은 relation calculus 가 있다.