데이터베이스 세타 조인
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.