STANDARD SQL

관계형 대수

관계 대수(Relation Algebra)란, 관계형 데이터베이스에서 원하는 정보를 어떻게 유도하는가를 기술하는 절차적인 언어를 말한다. 쉽게 생각해 우리가 숫자를 더하거나 나누어 원하는 수를 도출하듯이, 릴레이션을 관계 대수라는 전용 연산자를 통해 더하거나 곱해 원하는 릴레이션을 도출하는 것으로 생각하면 된다.

관계대수에는 일반 집합 연산과 순수 관계 연산 2종류가 있다.

1. 일반 집합 연산

일반 집합 연산자과 연관된 SQL은 다음과 같다. 그 중 주요 연산자인 UNION과 INTERSECT에 대해 살펴보자.

Untitled

Untitled

두 개의 테이블의 데이터를 합치는 연산이다. UNION에 사용할 컬럼의 수와 데이터 형식이 일치해야 하며 합친 후에 테이블에서 중복된 데이터는 제거한다. 이를 위해 UNION은 테이블을 합칠 때 정렬 과정을 발생시킨다. 하지만 최종 결과에 대해 올바른 정렬을 위해서는 ORDER BY 구문을 사용해야한다. 관계형 대수의 일반 집합 연산에서 합집합의 역할을 한다.

Untitled

SELECT * FROM ALPHA
UNION
SELECT * FROM BETA;

UNION과 거의 같은 기능을 수행하지만, 중복 제거와 데이터 정렬도 하지않는 UNION을 말한다.

Untitled

SELECT * FROM ALPHA
UNION ALL
SELECT * FROM BETA;