< 관계 데이터 연산 ( relation data operation ) >
릴레이션에 필요한 요구를 처리하는 것
- 관계 대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술
- 관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술
관계 대수와 관계 해석은 기능과 표현력 측면에서 능력 동등하다
< 관계 대수 ( relational algebra ) >
원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 언어 → 절차 언어 ( procedural language )
폐쇄 특성 ( closure property ) : 피연산자도 릴레이션이고 연산의 결과도 릴레이션임
관계 대수 연산자 - 일반 집합 연산자 ( set operation )
릴레이션이 튜플의 집합이라는 개념 이용
합집합, 교집합, 차집합은 두 릴레이션이 합병 가능 해야함
※ 합병 가능(union-compatible) 조건 :
(1) 두 릴레이션의 차수 같아야 함 (2) 두 릴레이션에서 서로 대응되는 속성의 도메인이 같아야 함
1. 합집합 ( union )
합병 가능한 두 릴레이션 R과 S의 합집합 = R∪S
= R에 속하거나 S에 속하는 모든 튜플로 결과 릴레이션 구성
- 결과 릴레이션의 차수 = R과 S의 차수
- 결과 릴레이션의 카디널리티 <= ( R의 카디널리티 + S의 카디널리티 )
교환법칙, 결합법칙 성립
2. 교집합 ( intersection )
합병 가능한 두 릴레이션 R과 S의 교집합 = R∩S
= R과 S에 모두 속하는 튜플로 결과 릴레이션 구성
- 결과 릴레이션의 차수 = R과 S의 차수
- 결과 릴레이션의 카디널리티 <= R과 S중 작은 쪽의 카디널리티
교환법칙, 결합법칙 성립
3. 차집합 ( difference )
합병 가능한 두 릴레이션 R과 S의 차집합 = R-S
= R에는 존재하지만 S에는 존재하지 않는 튜플들로 결과 릴레이션 구성
- 결과 릴레이션의 차수 = R과 S의 차수
- R-S 결과 릴레이션의 카디널리티 <= R의 카디널리티
- S-R 결과 릴레이션의 카디널리티 <= S의 카디널리티
교환법칙, 결합 법칙 모두 성립 X
4. 카티션 프로덕트 ( cartesian product )
합병 가능한 두 릴레이션 R과 S의 카디션 프로덕트 = R X S
= R에 속한 각 튜플과 S에 속한 각 튜플들을 모두 연결하여 만들어진 새로운 튜플로 결과 릴레이션 구성
- 결과 릴레이션의 차수 = ( R의 차수 + S의 차수 )
- R X S 결과 릴레이션의 카디널리티 <= ( R의 카디널리티 X S의 카디널리티 )
교환법칙, 결합법칙 성립
관계 대수 연산자 - 순수 관계 연산자 ( relation operation )
릴레이션의 구조와 특성을 이용하는 연산자
1. 셀렉트 ( select )
- 릴레이션에선 조건을 만족하는 튜플만 선택해 결과 릴레이션 구성
- 결과 : 릴레이션의 수평적 부분집합
- 표현법 : σ 조건식(릴레이션) c.f ) 조건식 : 속성과 상수의 비교 Or 속성들 간의 비교 by 비교 연산자, 논리연산자
- 교환법칙 성립
2. 프로젝트 ( project )
- 릴레이션에서 선택한 속성의 값으로 결과 릴레이션 구성
- 결과 : 릴레이션의 수직적 부분 집합
- 표현법 : π속성리스트(릴레이션)
- 결과 릴레이션에서 동일한 튜플이 있다면 한번만 나타남 ( 중복 X )
3. 조인 ( join )
세타 조인 ( theta join )
- 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 튜플만 반환
- 표현법 : R▷◁(A 연산자 B)S c.f) A는 R의 속성, B는 S의 속성
- 결과 릴레이션의 차수 = 두 릴레이션의 차수를 더한 것
동일 조인
- 표현법 : R▷◁(r=s)S
- 연산자가 =인 세타조인
자연조인
- R▷◁N S
- 조인 속성( 두 릴레이션이 공통으로 가지고 있는 속성 ) 의 값이 같은 같은 튜플만 연결하여 생성된 튜플로 결과 릴레이션을 구성
- 동일조인 결과 결레이션에서 중복 속성 제거한 결과와 같음
세미조인 ( semi join )
- 조인 속성으로 프로젝트 연산을 수행한 릴레이션 이용하는 조인
- 릴레이션 S를 조인 속성( 두 릴레이션이 공통으로 가지고 있는 속성 )으로 프로젝트 연산 → 릴레이션 R에 자연 조인하여 결과 릴레이션 구성
- 장점 : 최종 조인에 불필요한 속성 미리 제거 → 연산 비용 크게 줄일 수 있음
- 교환법칙 불성립
외부 조인 (outer-join )
- 자연조인 연산에서 제외되는 튜플도 결과 릴레이션에 포함시키는 조인 → 두 릴레이션의 모든 튜플들을 결과 릴레이션에 포함
- 자연조인 연산에서 제외되는 튜플의 없는 속성들은 Null 값으로 채움
4. 디비전( division )
- 릴레이션S의 모든 튜플과 관련이 있는 릴레이션R의 튜플로 결과 릴레이션을 구성
- 릴레이션 R이 릴레이션 S의 모든 속성을 포함하고 있어야 ( R과 S의 도메인이 같아야) 연산 가능
- 표현법 : R ÷ S
- 위의 그림에서 주문내역 나누기 제품1은 진짜 우동과 그대로만두를 모두 가지고 있는 주문고객이 apple이고 제조업체가 한빛식품인 튜플만 남고 제품이름 속성을 제외한 주문고객과 제조업체 속성만 남는다
- 반면에 주문내역 나누기 제품2는 제품이름이 그대로 만두이고 제조업체가 한빛식품인 banana,apple,carrot 세 튜플이 남고 주문고객 속성만 남는다