A. 조인(JOIN)이란?

 

1. 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것
2. 관계형 데이터 베이스의 가장 큰 장점이며 대표적인 핵심 기능
3. 일반적인 경우 행들은 PK나 FK 값의 연관에 의해 조인이 성립
4. 쿼리 성능에 지대한 영향을 미치므로 튜닝 포인트가 될 수 있음
5. 조인에는 EQUI JOIN(등가 조인), NON EQUI JOIN(비 등가 조인) 존재

조인(JOIN)

 

 

 

 

B. EQUI JOIN

 

1. 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법
2. 일반적으로 PK와 FK의 관계를 기반
3. 일부 EQUI JOIN은 PK와 FK의 관계가 성립되지 않을 수 도 있음
4. JOIN의 조건은 WHERE 절에 기술하여 “=” 연산자를 사용

EQUI JOIN

 

 

 

C. EQUI JOIN 사용 주의 사항

 

1. SELECT 구문에 “테이블명. 칼럼명” 처럼 테이블명과 칼럼명이 같이 기술
2. 옵티마이저가 파싱에 구별이 가능하도록 테이블명과 컬럼명을 같이 기술
3. 가독성, 유지보수성을 위해 테이블명과 컬럼명을 같이 기술
4. 데이터를 조회하기 위해 필요한 JOIN 조건은 대상 테이블의 개수에서 하나를 뺀 N-1 개 이상이 필요
5. JOIN 조건은 WHERE 절에 기술함
6. WHERE 절에 JOIN조건 이외의 검색조건에 대한 조건 추가 가능
7. 테이블에 대한 ALIAS 사용했을 경우 WHERE절과 SELECT절에는 ALIAS를 사용
8. 유일한 컬럼명이면 ALIAS 생략 가능

 

EQUI JOIN 사용 주의 사항

 

 

 

D. None EQUI JOIN

 

1. 두 테이블 간에 컬럼 값들이 서로 정확하게 일치하지 않는 경우에 사용
2. “=“ 연산자가 아닌 다른(Between, >, >=, <, <= 등) 연산자들을 사용

None EQUI JOIN

 

 

 

E. JOIN이 필요한 이유

 

1. 데이터의 정합성을 확보하고 이상현상(Anomaly) 발생을 피하기 위해 테이블을 분할하여 정규화
2. 소량 데이터를 조회하는 경우 용량이 큰 테이블에서 검색 속도가 감소
3. 정규화된 테이블로부터 조회하기 위해 테이블 간에 논리적인 연관관계가 필요
4. 논리적인 관계를 구체적인 표현이 JOIN 조건
5. 관계형 데이터베이스의 큰 장점

 

JOIN이 필요한 이유