04 JOIN 연산

JOIN 연산

  • JOIN 연산은 수학적 집합 이론에는 존재하지 않으며, 관계형 모델의 특수한 연산

  • 관계형 데이터베이스에서 두 개 이상의 테이블을 특정 조건에 따라 결합하여 하나의 새로운 결과 테이블을 생성하는 연산

  • 이를 통해 두 테이블의 관련된 데이터를 연결하고 새로운 정보 구조를 만드는 것이 가능함

JOIN의 목적

  • 테이블 간의 관계 결합: 데이터베이스 설계에서 테이블 간의 관계를 정의하여, 서로 다른 테이블에서 필요한 데이터를 결합함

  • 데이터 결합: 여러 테이블에 흩어져 있는 데이터를 하나의 통합된 뷰로 제공함

  • 정보 추출: 다양한 테이블의 데이터를 결합하여 새로운 의미를 가진 정보를 생성함

JOIN 동작

  • JOIN은 공통된 속성을 가진 두 개의 릴레이션에서 공통된 속성값이 같은 튜플끼리 조합한 릴레이션을 반환함

  • 속성이 일치하는 값이 존재하지 않는 튜플은 결과에서 제외됨

  • 이러한 현태의 결합을 SQL에서는 INNER JOIN(내부조인)이라고 함

JOIN 연산의 종류

  1. CROSS JOIN(크로스 결합)

  2. INNER JOIN(내부 결합)

  3. OUTER JOIN(외부 결합)

  4. SELF JOIN(자기 결합)

  5. EQUI JOIN(등가 결합)

  6. NON-EQUI JOIN(비등가 결합)

  7. NATURAL JOIN(자연 결합)

1. CROSS JOIN(크로스 결합)

  • 곱집합과 같은 결과를 반환함

    • 아래의 경우 3 X 4로 12개의 튜플이 나옴

  • 크로스 결합이 실무에서 사용되지 않는 이유

    • 이러한 결과가 필요한 경우가 없음

    • 비용이 매우 많이 드는 연산

2. INNER JOIN(내부 결합)

  • 가장 많이 사용되는 결합 중 하나

  • INNER JOIN은 두 테이블 간의 공통된 속성 값을 기준으로, 일치하는 튜플(행)만 결합하여 반환함

  • 두 테이블 모두에 존재하는 튜플만 포함되며, 일치하지 않는 튜플은 제외됨

  • 결과 릴레이션은 크로스 결합의 부분 집합임, 크로스 결합의 내부에 존재한다고 하여 내부 결합이라고 함

3. OUTER JOIN(외부 결합)

  • 내부 결합과 외부 결합은 배타적인 연산

  • 내부 결합이 크로스 결합의 부분 집합이라는 의미였으므로 외부 결합은 크로스 결합의 부분 집합이 아님

  • 외부 결합의 종류

    • LEFT (OUTER) JOIN, 왼쪽 외부 결합

    • RIGHT (OUTER) JOIN, 오른쪽 외부 결합

    • FULL (OUTER) JOIN, 완전 외부 결합

LEFT OUTER JOIN(왼쪽 외부 결합)

  • LEFT JOIN은 왼쪽 테이블의 모든 튜플과, 오른쪽 테이블에서 일치하는 튜플을 결합하여 반환함

  • 오른쪽 테이블에 일치하는 튜플이 없는 경우, NULL 값으로 채워짐

  • 왼쪽 테이블의 모든 데이터를 유지하고, 오른쪽 테이블에 결합되지 않은 데이터도 표시하고 싶을 때 사용

RIGHT OUTER JOIN(오른쪽 외부 결합)

  • RIGHT JOIN은 오른쪽 테이블의 모든 튜플과, 왼쪽 테이블에서 일치하는 튜플을 결합하여 반환함

  • 왼쪽 테이블에 일치하는 튜플이 없는 경우, NULL 값으로 채워짐

  • 오른쪽 테이블의 모든 데이터를 유지하고, 왼쪽 테이블에 결합되지 않은 데이터도 표시하고 싶을 때 사용함

FULL OUTER JOIN(완전 외부 결합)

  • FULL JOIN은 두 테이블의 모든 튜플을 결합하여, 일치하지 않는 튜플도 포함함

  • 왼쪽 또는 오른쪽 테이블 중 일치하지 않는 튜플은 NULL 값으로 채움

  • 두 테이블 간의 전체 관계를 파악하고 싶을 때 사용함

4. SELF JOIN(자기 결합)

  • SELF JOIN은 하나의 테이블을 자기 자신과 결합하는 연산

  • 테이블 내에서 서로 다른 튜플 간의 관계를 표현하거나, 동일 테이블에서 특정 조건에 따라 데이터를 비교하고자 할 때 사용됨

  • 계층적 구조나 재귀적 관계를 표현할 때 사용됨

5. EQUI JOIN(등가 결합)

  • EQUI JOIN은 두 테이블을 결합할 때, 특정 열의 값이 서로 일치하는 경우에만 결합하는 방식임. 즉, 두 테이블의 공통 열을 기준으로 값이 같을 때만 결합함

  • 가장 일반적으로 사용되는 JOIN 방식이며, INNER JOIN, LEFT JOIN, RIGHT JOIN 등 다양한 JOIN 유형에서 사용 가능

6. NON-EQUI JOIN(비등가 결합)

  • 비등가 결합은 두 테이블을 결합할 때, 값이 일치하지 않는 조건을 사용하여 결합하는 방식임

  • 등호 대신 >, <, >=, <=, != 등의 연산자를 사용하여 결합 조건을 지정함

  • 주로 범위 조건이나 다른 형태의 관계를 정의할 때 사용됨

  • 다만 비등가 결합은 특정 값이 여러 범위 조건을 만족할 수 있기 때문에, 각 행이 여러 번 결합될 수 있음

7. NATURAL JOIN(자연 결합)

  • 자연 결합(Natural Join) 은 두 테이블 간의 공통된 모든 열을 기준으로 자동으로 결합하는 방식, 별도의 결합 조건을 명시하지 않으며, 두 테이블의 공통 열을 자동으로 찾아 결합함

  • 결과는 공통 열이 일치하는 모든 행이 결합된 형태로 반환됨 (가장 자주 사용하는 내부결합이면서 등가 결합)

Last updated