04 JOIN 연산
Last updated
Last updated
JOIN 연산은 수학적 집합 이론에는 존재하지 않으며, 관계형 모델의 특수한 연산
관계형 데이터베이스에서 두 개 이상의 테이블을 특정 조건에 따라 결합하여 하나의 새로운 결과 테이블을 생성하는 연산
이를 통해 두 테이블의 관련된 데이터를 연결하고 새로운 정보 구조를 만드는 것이 가능함
테이블 간의 관계 결합: 데이터베이스 설계에서 테이블 간의 관계를 정의하여, 서로 다른 테이블에서 필요한 데이터를 결합함
데이터 결합: 여러 테이블에 흩어져 있는 데이터를 하나의 통합된 뷰로 제공함
정보 추출: 다양한 테이블의 데이터를 결합하여 새로운 의미를 가진 정보를 생성함
JOIN은 공통된 속성을 가진 두 개의 릴레이션에서 공통된 속성값이 같은 튜플끼리 조합한 릴레이션을 반환함
속성이 일치하는 값이 존재하지 않는 튜플은 결과에서 제외됨
이러한 현태의 결합을 SQL에서는 INNER JOIN(내부조인)이라고 함
CROSS JOIN(크로스 결합)
INNER JOIN(내부 결합)
OUTER JOIN(외부 결합)
SELF JOIN(자기 결합)
EQUI JOIN(등가 결합)
NON-EQUI JOIN(비등가 결합)
NATURAL JOIN(자연 결합)
곱집합과 같은 결과를 반환함
아래의 경우 3 X 4로 12개의 튜플이 나옴
크로스 결합이 실무에서 사용되지 않는 이유
이러한 결과가 필요한 경우가 없음
비용이 매우 많이 드는 연산
가장 많이 사용되는 결합 중 하나
INNER JOIN은 두 테이블 간의 공통된 속성 값을 기준으로, 일치하는 튜플(행)만 결합하여 반환함
두 테이블 모두에 존재하는 튜플만 포함되며, 일치하지 않는 튜플은 제외됨
결과 릴레이션은 크로스 결합의 부분 집합임, 크로스 결합의 내부에 존재한다고 하여 내부 결합이라고 함
내부 결합과 외부 결합은 배타적인 연산
내부 결합이 크로스 결합의 부분 집합이라는 의미였으므로 외부 결합은 크로스 결합의 부분 집합이 아님
외부 결합의 종류
LEFT (OUTER) JOIN, 왼쪽 외부 결합
RIGHT (OUTER) JOIN, 오른쪽 외부 결합
FULL (OUTER) JOIN, 완전 외부 결합
LEFT JOIN은 왼쪽 테이블의 모든 튜플과, 오른쪽 테이블에서 일치하는 튜플을 결합하여 반환함
오른쪽 테이블에 일치하는 튜플이 없는 경우, NULL 값으로 채워짐
왼쪽 테이블의 모든 데이터를 유지하고, 오른쪽 테이블에 결합되지 않은 데이터도 표시하고 싶을 때 사용
RIGHT JOIN은 오른쪽 테이블의 모든 튜플과, 왼쪽 테이블에서 일치하는 튜플을 결합하여 반환함
왼쪽 테이블에 일치하는 튜플이 없는 경우, NULL 값으로 채워짐
오른쪽 테이블의 모든 데이터를 유지하고, 왼쪽 테이블에 결합되지 않은 데이터도 표시하고 싶을 때 사용함
FULL JOIN은 두 테이블의 모든 튜플을 결합하여, 일치하지 않는 튜플도 포함함
왼쪽 또는 오른쪽 테이블 중 일치하지 않는 튜플은 NULL 값으로 채움
두 테이블 간의 전체 관계를 파악하고 싶을 때 사용함
SELF JOIN은 하나의 테이블을 자기 자신과 결합하는 연산
테이블 내에서 서로 다른 튜플 간의 관계를 표현하거나, 동일 테이블에서 특정 조건에 따라 데이터를 비교하고자 할 때 사용됨
계층적 구조나 재귀적 관계를 표현할 때 사용됨
EQUI JOIN은 두 테이블을 결합할 때, 특정 열의 값이 서로 일치하는 경우에만 결합하는 방식임. 즉, 두 테이블의 공통 열을 기준으로 값이 같을 때만 결합함
가장 일반적으로 사용되는 JOIN 방식이며, INNER JOIN, LEFT JOIN, RIGHT JOIN 등 다양한 JOIN 유형에서 사용 가능
비등가 결합은 두 테이블을 결합할 때, 값이 일치하지 않는 조건을 사용하여 결합하는 방식임
등호 대신 >, <, >=, <=, != 등의 연산자를 사용하여 결합 조건을 지정함
주로 범위 조건이나 다른 형태의 관계를 정의할 때 사용됨
다만 비등가 결합은 특정 값이 여러 범위 조건을 만족할 수 있기 때문에, 각 행이 여러 번 결합될 수 있음
자연 결합(Natural Join) 은 두 테이블 간의 공통된 모든 열을 기준으로 자동으로 결합하는 방식, 별도의 결합 조건을 명시하지 않으며, 두 테이블의 공통 열을 자동으로 찾아 결합함
결과는 공통 열이 일치하는 모든 행이 결합된 형태로 반환됨 (가장 자주 사용하는 내부결합이면서 등가 결합)