데이터베이스 세타 조인

IT 위키

세타 조인(θ-조인, Theta Join)은 관계형 데이터베이스에서 두 테이블을 조인할 때, 단순한 동등 조건뿐만 아니라 비교 연산자(=, ≠, <, ≤, >, ≥)를 포함한 일반적인 조건식을 사용할 수 있는 조인 방식이다. 세타(θ)는 임의의 조건을 나타내는 기호이다.

1 개요[편집 | 원본 편집]

세타 조인은 다음과 같은 형식의 조건으로 이루어진다.

  • R ⋈θ S
    • 여기서 θ는 비교 연산자(예: R.a ≤ S.b 등)를 의미
    • 조인 결과는 조건 θ를 만족하는 R과 S의 튜플 쌍들의 집합이다

세타 조인은 내부 조인의 일반적인 확장이며, 특히 다음과 같은 조인으로 구분되기도 한다.

  • 동등 조인 (Equi-join): θ가 '='일 때
  • 자연 조인 (Natural join): 동등 조인 중 중복 컬럼 제거
  • 비등 조인 (Non-equi join): θ가 '='이 아닌 다른 연산자일 때

2 예시[편집 | 원본 편집]

두 테이블 R, S가 다음과 같다고 하자:

테이블 R:

id value
1 100
2 200
3 300

테이블 S:

code limit
A 250
B 150

세타 조인 조건: R.value ≤ S.limit SQL 문:

SELECT R.id, R.value, S.code, S.limit
FROM R JOIN S ON R.value <= S.limit;

결과:

id value code limit
1 100 A 250
2 200 A 250
1 100 B 150

3 특징[편집 | 원본 편집]

  • 다양한 조건식을 활용할 수 있어 유연한 조인이 가능
  • 비등 조인, 범위 조건 조인, 복합 조건 조인 등에 사용됨
  • 실행 성능은 조건에 따라 달라지며, 인덱스 또는 정렬 여부에 따라 최적화 필요

4 성능 고려[편집 | 원본 편집]

  • 세타 조인은 일반적으로 중첩 루프 조인(nested loop join), 소트 병합 조인(sort-merge join), 또는 해시 조인(hash join)을 통해 구현된다.
  • 특히 θ 조건이 등호가 아닌 경우에는 해시 조인보다 병합 조인 또는 중첩 루프가 더 적합할 수 있음

5 같이 보기[편집 | 원본 편집]

6 참고 문헌[편집 | 원본 편집]

  • Silberschatz, A., Korth, H. F., & Sudarshan, S. (2020). Database System Concepts (7th ed.). McGraw-Hill.
  • Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems. Pearson.