데이터베이스 DB

[데이터베이스/DB] 관계 대수 Relational Algebra_2(추가) 확장관계대수

저번 글에서는 기본적인 관계 대수를 알아보았는데요

[데이터베이스 DB] - [데이터베이스/DB] 관계 대수 Relational Algebra

이번엔 추가적으로 사용되는 관계 대수를 설명해보겠습니다

 

할당 연산 Assignment Operation

→ 수학기호를 사용하고

할당 연산을 사용하면서 rename 연산자를 함께 사용하면 중간 결과의 관계 및 속성 이름을 원하는 것으로 변경하면서 할당할 수 있습니다.

 

교집합 연산 Set Intersection Operation

 

교집합 연산

교집합 연산은 위와 같이 두 번의 차집합으로 표현이 가능해요. 그래서 확장 관계 연산자에 속합니다.

저번 글에서 언급했던 두가지 조건을 마찬가지로 만족해야하는데요.

1. 입력관계에 대해 속성 개수가 같다. 2. 대응되는 속성의 데이터타입이 상호호환되어야한다.

 

자연 조인 Natural Join Operation

⋈ 수학기호를 사용하고 비용이 비싼 연산이고 조인연산 중 흔히 사용됩니다.

첫째, 카타시안 곱을 수행하고

둘째, 조인조건 이용하여 선택 연산을 수행하고

셋째, 조인조건에 언급된 속성을 이용하여 투영연산을 수행

 

선택 연산과 투영 연산 방법 차이에 의해 세 가지 내부 조인(inner join)으로 구분할 수 있어요.

자연조인 예제 1

두 입력테이블 r과 s를 보고

(B, D) 속성 값이 동일한 터플이 조인결과관계에 속하게 되며, 자연조인의 경우에는 조인 속성이 결과관계에는 딱 한번만 나와야 해요.

1. 카타시안곱연산에 의해 입력테이블의 터플개수 5개씩 곱해서 터플개수는 25

2. 선택연산에 의해 5개 터플만이 선택됨

3. 투영 연산에 의해 (중복 제거되어) 7개가 아닌 5개만 보이는 결과 관계가 생성됨. 

 

 

자연조인 예제 2

예제를 보면 2014년 가을에 대한 정보는 teaches에만 있어 선택연산을 해서 구합니다.

teaches 관계에는 교수번호와 과목번호만 있기 때문에, 교수명을 검색하기 위해서 professor관계와 자연조인을 합니다. (과목명도 마찬가지)

 

자연 조인은 결합성과 교환성이 있습니다

 

 

세타 조인(theta join)

가장 일반적인 조인 연산

 

동등 조인(equi-join)

세타 조인 중에서 조인 조건이 동등조건만으로 구성이 되는 경우

 

자연 조인

동등 조인 중에서 조인 조건 속성이 조인 결과에 한번만 나오면 자연 조인 (중복제거가 된 것)

 

외부조인(Outer Join)

조인 조건을 만족시키지 않는 터플도 결과 관계에 포함

자료가 없는 부분은 Null 값으로 표현

 

자연 왼쪽 외부 조인

 

 

자연 오른쪽/완전 외부 조인

 

 

 

나눔 연산 Division Operation

나눔 연산은 입력관계가 두 개 있고, 두 관계에는 공통이름 가지는 속성이 있어야 해요.

÷기호를 사용합니다

 

예로 r÷s 연산을 수행하면

R-S 결과테이블로

R은 S를 반드시 포함하여 즉, 결과테이블의 터플은 S관계의 공통속성의 터플을 모두 포함한 R관계 터플입니다.

그리고 공통 속성이 제거된 속성을 가져야 합니다. 

 

나눔연산은 카타시안곱, 투영, 차집합을 사용하여 표현이 가능하므로 기본 연산에 포함이 안됩니다!

 

 

 

기본 대수 정리

select σ _ 수평(터플)

project  π _ 수직(속성)

Cartesian product ×

union ∪ 

set difference

rename ρ

 

추가 (확장 관계 대수)

intersection   

assignment 

natural join 

outer join

division  ÷