관계 대수: 기본연산(primitive or fundamental ops)
카티전 곱(X, cartesian product)
- 입력 테이블 2개, 결과 테이블 1개
- 보통 자연 조인을 위한 중간 과정으로 아주 많이 씀
(보기) 학생 X 수강
-
속성 수의 합 : 2 + 2 = 4
-
투플 수의 곱 : 3 * 5 = 15
-
유용한 정보(중복 속성 제거)
관계 대수: 그 밖의 연산(additional operations)
- 다섯개의 연산으로, 관계 대수가 할 수 있는 어떤 질의도 할 수 있다.
- 기본 연산으로는 나타낼 수 없던 질의를, 추가적인 연산을 씀으로써 나타낼 수 있는 질의는 전혀 없다.
- 추가적인 연산: 질의를 짤막하게 나타낼 수 있게 해 줄 뿐임
(1) 교집합(∩, set intersection)
(2) 자연 조인(⋈, natural join)
교집합( ∩, set intersection)
-
입력 테이블 2개, 결과 테이블 1개
-
(R1 ∩ R2) = (R2 ∩ R1)
-
교집합에서도 입력 테이블 두 개는 호환성이 있어야 한다.
-
추가적인 연산은 모두 기본 연산으로 나타낼 수 있다.
-
교집합 연산은 차집합 연산을 두 번 써서 나타낼 수 있다.
교집합은 언제 사용하면 좋을까?
- 아래 수강 테이블에서 CS200 과목과 CS300 과목을 모두 수강하는 학생의 학번을 구하시오.
자연 조인(⋈, natural join)
- 관계형 데이터베이스에서 너무나도 자주 사용되는 연산
- 입력 테이블 2개, 결과 테이블 1개
- 스키마 정규화, 스키마 나누기 등과 아주 밀접하게 관련되어 있음
(보기)
학생(학번, 이름)과 수강(학번, 과목번호) 테이블에서 홍길동 학생이 듣는 과목번호는?
자연 조인 과정