솜은 코튼

[DB] 관계 대수 (집합 연산자) 본문

DB

[DB] 관계 대수 (집합 연산자)

솜.코 2023. 5. 23. 21:56

 

 

일반 집합 연산자

.

 

 

일반 집합 연산에는 합집합(union), 교집합(INTERSECT), 차집합(difference), 카디션 프로덕트가 있다.

 

순수 관계 연산들로는 셀렉트(select), 프로젝트(project), 조인(join), 디비전(division)이 있다.

 

 

일반 집합 연산자에서 카디션 프로덕트를 제외한 연산자들은 두 릴레이션이 합병 가능하여야 한다.

 

 

1. 합집합 (UNION, U)

.

 

합집합은 두 릴레이션 R과 S에서 R 또는 S에 있거나 모두에 속한 튜플들로 이루어진 릴레이션이다.

컬럼의 개수가 같아야 하며, 각 컬럼의 데이터 타입이 같아야 한다.

 

 

 

 

위에서 추출한 RESULT1과 RESULT2를 합집합하면 아래와 같이 나온다.

 

 

여기서 알 수 있는 것은 애트리뷰트 이름은 같지 않아도 된다.

추가로 결과 릴레이션에서 중복된 튜플들은 제외된다.

 

 

2. 교집합 (INTERSECT, )

.

 

교집합은 두 릴레이션 R과 S 모두에 속한 튜플들로 이루어진 릴레이션이다.

 

 

 

 

위에서 추출한 RESULT1과 RESULT2를 교집합하면 아래와 같이 나온다.

 

 

 

3. 차집합 (DIFFERENCE, -)

.

 

차집합은 두 릴레이션 R - S는 R에는 속하지만 S에는 속하지 않은 튜플들로 이루어진 릴레이션이다.

 

 

 

 

위에서 추출한 RESULT1과 RESULT2를 차집합하면 아래와 같이 나온다.

 

 

 

4. 카디션 프로덕트 (CARTESIAN PRODUCT, X)

.

 

카디션 프로덕트은 두 릴레이션 R과 S의 튜플들의 모든 가능한 조합으로 이루어진 릴레이션이다.

 

EMPLOYEE와 DEPARTMENT를 카디션 곱을 하면 아래와 같이 나온다.

 

카디션 곱 후 투플의 수는 각 테이블 행의 곱과 같고,

속성의 수는 각 테이블의 속성들을 더한 값과 같다.

 

 

 

 

 

 

 

 

 

 

* 해당 글은 '데이터베이스 배움터' 책을 참고하여 작성하였습니다. 출처: ORACLE을 기반으로 하는 데이터베이스 배움터 (홍의경)