관계 대수: 기본연산(Primitive or fundamental ops)
선택연산과 속성 추출 연산을 연속 연산 하는 경우.
- 수강 테이블에서 CS200과목을 듣는 학생의 학번만 찍어내려면?
합집합(U, union)
- 입력 테이블 2개, 결과 테이블 1개
- 합집합은, 두 테이블 가운데 적어도 한 군데에만 있어도 모두 결과 테이블에 나온다.
- R1과 R2의 합집합을 구하는 연산
R1과 R2의 속성이 같고, 도메인이 같아야 한다.
- 아래의 R3과 R4는 합집합 R3UR4는 정의되지 않는다.
- 위에서 (R3 U R4)와 (R5 U R6)는 정의되지 않았지만, 다음은 정의 됨.
합집합은 언제 사용하면 좋을까?
- 아래 수강 테이블에서 CS100 과목을 수강하거나 또는 CS300과목을 수강하는 학생의 학번을 구하시오.
합집합을 하려면 입력 테이블 두 개가 호환성이 있어야함(compatible)
- R1의 속성 수와 R2의 속성 수가 가탇.
- R1.A1과 R2.A1의 도메인이 같고, R1.A2와 R2.A2의 도메인이 같고,...R1.An과 R2.An의 도메인이 같아야 한다.
일반적으로 합집합 연산의 입력 테이블 두 개의 순서를 바꾸어도 결과는 같다
- (R1 U R2) 와 (R2 U R1)의 결과값은 같다.
차집합 연산(-, set difference): R1 - R2
- 입력 테이블 2개, 결과 테이블 1개
- 첫째 테이블에 있는 투플 가운데, 둘째 테이블에도 있는 투플을 뺀 나머지 투플만 결과 테이블에 나온다.
- 둘째 테이블에만 있는 투플은 결과에 나오지 않음
합집합과 마찬가지로 호환성이 있어야 한다.
차집합은 언제 사용하면 좋을까?
- 아래 수강 테이블에서 CS200 과목을 수강하는 학생중에서 CS300과목을 수강하지 않는 학생의 학번을 구하시오.
카티전 곱(X, cartesian product)
- 입력 테이블 2개, 결과 테이블 1개
- 보통 자연 조인을 위한 중간 과정으로 아주 많이 씀
(보기) 학생 X 수강
- 속성 수의 합 : 2 + 2 = 4
- 투플 수의 곱 : 3 * 5 = 15