본문 바로가기
DB/SQL

카티션 곱 / 카티시안 곱 / 카테시안 곱 /Cartesian product)

by 꼬바리 2021. 3. 16.

Cartesian Product  카티션 곱

-설명 1

카티션 곱(cartesian product)은 엄밀히 말하면 조인이라고 할 수 없는 조인으로, 

 WHERE 절에 조인 조건을 주지 않는 것을 말합니다.

 

두 테이블을 기준으로 FROM 절에는 두 개의 테이블을 명시하지만 WHERE 절에서 조인 조건을 주지 않습니다.

(WHERE 절을 추가하지 않거나 WHERE 절을 추가해도 조인 조건을 주지 않는 경우).

 

그 결과 두 테이블의 데이터를 기준으로 가능한 모든 조합의 데이터가 조회됩니다.

 


 

Cartesian Product 

-설명 2

 

Cartesian Product (카티시안 곱)은 발생가능한 모든 경우의 수의 행이 출력되는 것을 의미합니다. 

N 개의 행을 가진 테이블과 M 개의 행을 가진 테이블의 카티시안 곱은 N*M 이 되는거죠!


 이 현상은 조인 조건을 생략한 경우이거나

               조인 조건이 부적합할 경우 발생합니다.
 
 
 조인 조건을 생략한 경우

 =>두 개의 테이블을 조인했지만, 조인 조건을 생략한 경우 Cross Join 이 발생하여 불필요한 N*M 만큼의 데이터가 조회됩니다.

 

     데이터가 방대할 경우 CPU 과부화에 딱 좋은 상황이죠..

     그러므로 JOIN 을 사용할 경우 조인 조건을 꼭! 작성해야 한다는 것!!

 

 



출처: https://data-make.tistory.com/24 [Data Makes Our Future]

728x90
반응형

댓글