본문 바로가기
SQL

DB개념) Relational Algebra(관계 대수) 간단 정리

by 아인슈페너먹고싶다 2023. 6. 7.

오랜만에 공부 포스팅을 올려본다,

네이버 블로그에도 옮겼는데 그냥 여기에도 올리고 싶어서 공유한다!

쨌든! 시험 공부도 할겸 간단하게 DB개념 정리를 할건데

Relational Algebra(관계 대수) 예제 몇 개만 다뤄 볼 것이다.

관계 대수가 뭐야?

관계 대수(Relational Algebra)는 데이터베이스에서 관계형 모델을 기반으로 데이터 조작과 질의를 수행하기 위해 사용되는 형식화된 질의 언어입니다.

(ChatGPT가 그렇다면 그렇다는거지...)

말그대로 Relation에서 원하는 결과를 얻기 위한 연산 쿼리라 생각하면 된다.

말은 어려운데 우리가 기존에 알던 집합과 비슷한 점이 많아서

집합간의 계산으로 보면 편하다.


1) UNION

제일 먼저 볼 것은 UNION, 말 그대로 합치는 것이다.

기호도 U로 합집합과 같다고 보면 된다.

두 relation의 tuples을 모두 포함하는 관계를 생성한다.

다음 두 relation 예시로 한번보자

R1

상품
가격
오렌지
500원
바나나
1000원
사과
300원

R2

상품
가격
오렌지
500원
키위
1200원
바나나
1000원

R1 U R2

상품
가격
오렌지
500원
바나나
1000원
사과
300원
키위
1200원

2) Intersection

Intersection은 집합의 교집합과 같은 개념이라고 생각하면 편하다.

두 relation의 겹치는 부분만을 추출한다.

기호도 ∩로 표현한다.

R1 ∩ R2

상품
가격
오렌지
500원
바나나
1000원

3) Difference

Difference는 집합의 차집합과 같은 개념이라고 보면 된다.

기준이 되는 relation 중 다른 relation에 공통된 값들을 제외시켜준다.

기호는 - 로 표현한다.

R1 - R2

상품
가격
사과
300원

4) Division

Division은 나눗셈인데 두 relation의 관계를 확인하는 연산이라고 생각하면 편하다.

첫 번째 relation의 모든 조합 중에서 두 번째 relation과 관련이 있는 조합만을 반환하면 된다.

기호는 ÷로 표현한다.

R3를 다음과 같이 정의 했을 때

가격
500원

R1 ÷ R3

 

상품
오렌지

5) Restriction

Restriction은 특정 조건에 해당하는 tuple만 출력하는 연산이다.

쉽게 말해 조건에 맞는 행을 출력하면 된다.

다음과 같이 표현한다.

$\textcolor{#ff65a8}{\combi{\sigma }_{\left(가격\ <\ 1000\right)}\left(R\right)}$σ( < 1000)(R)
상품
가격
오렌지
500원
사과
300원

6) Projection

Projection은 attributes를 출력하는 연산이다.

쉽게 말해 조건에 맞는 열을 출력한다고 보면 된다.

다음과 같이 표현한다.

$\textcolor{#000000}{\combi{\pi }_{<attribute\ list>}\left(R\right)}$π<attribute list>(R)

$\textcolor{#ff65a8}{\pi <상품>\left(R1\right)}$π<>(R1)
상품
오렌지
바나나
사과

7) Cartesian Product

곱연산이라고 보면 이해하기 쉽다.

모든 attribute의 가능한 조합을 반환한다.

기호로는 X로 표현한다

R4와 R5를 순서대로 다음과 같이 정의하겠다.

상품
오렌지
바나나
사과
가격
500원
1000원
300원

R4 X R5

상품
가격
오렌지
500원
오렌지
1000원
오렌지
300원
바나나
500원
바나나
1000원
바나나
300원
사과
500원
사과
1000원
사과
300원

8) Inner Join

Inner join은 두 개의 relation에서 조건에 일치하는 값으로 행을 구성하는 것이다.

Equi join과 Theta Join이 있는데 전자는 두 개의 realation에서 같은 값을 가져올 때 사용하고

후자는 크거나 작거나 하는 비교 값을 가져올 때 사용한다.

다음과 같이 표현한다.

$R\combi{\Join }_{<join\ condition>}S$R<join condition>S

R6를 다음과 같이 정의 했을 때

상품
수량
오렌지
10
딸기
30
사과
20

$\textcolor{#ff65a8}{R1\combi{\Join }_{<상품\ =\ 상품>}R6}$R1< = >R6

상품
가격
수량
오렌지
500원
10
사과
300원
20


이렇게 간단하게 Relational Algebra에 대해 알아보았다.

사실 집합 개념에서 쉽게 응용할 수 있어서 개념적인 측면에서는

그렇게 어렵지 않았던 것 같다.

정리 다했으니 시험 화이팅!

'SQL' 카테고리의 다른 글

SQL 피봇 테이블 개념 정리  (0) 2023.01.27
SQL을 통한 간단한 RFM Segmentation  (0) 2023.01.26

댓글