코드카타 문제를 의식의 흐름에 따라 풀다 보니 2가지 문제점이 생긴다.
결과-> "틀린다"
난이도가 낮은 문제의 경우, 2개의 테이블 명세서에 다양한 키중 보통 한가지 키만이 동일했다. 문제가 요구하는 것이 늘어남에 따라 어떤 키를 사용해야 할지 고민하게 되는데..
데이터 결합의 조인 목적 및 비즈니스 요구사항
조인의 목적이 두 테이블 간의 특정 관계를 명확히 하려는 것이라면, 이 관계를 정의하는 컬럼을 선택합니다. 예를 들어, 주문 내역과 고객 정보를 결합하려는 경우, 고객 ID를 기준으로 조인할 것입니다.
외래 키
일반적으로 외래 키가 있는 컬럼을 기준으로 조인합니다. 외래 키는 두 테이블 간의 관계를 정의하며, 이를 통해 올바르게 데이터를 결합할 수 있습니다.
기본 키와 외래 키
기본 키는 테이블의 고유 식별자이고, 외래 키는 다른 테이블의 기본 키를 참조하는 컬럼입니다. 기본 키와 외래 키를 사용하여 테이블 간의 관계를 설정합니다.
FIRST_HALF테이블의기본 키는FLAVOR입니다.FIRST_HALF테이블의SHIPMENT_ID는JULY테이블의SHIPMENT_ID의외래 키입니다.
JULY테이블의기본 키는SHIPMENT_ID입니다.JULY테이블의FLAVOR는FIRST_HALF테이블의FLAVOR의외래 키입니다.
중복 방지
중복된 데이터가 발생하지 않도록 조인 기준을 선택합니다. 예를 들어, 동일한 FLAVOR를 기준으로 조인할 때, 출하 번호가 다른 경우 데이터가 중복(누락)될 수 있습니다.
집계
집계가 필요한 경우(예: 총 주문량, 평균 점수 등), 집계된 결과가 의미하는 바에 맞는 조인 기준을 선택합니다.
인덱스 사용
조인 기준 컬럼에 인덱스가 존재하면 조인 성능이 향상됩니다. 데이터베이스 설계에서 인덱스가 설정된 컬럼을 기준으로 조인하면 성능이 좋을 수 있습니다.
INNER JOIN
두 테이블 모두에서 일치하는 레코드를 결합할 때 사용합니다. 외래 키가 있는 컬럼을 기준으로 조인합니다.
LEFT JOIN
왼쪽 테이블의 모든 레코드를 포함하고 오른쪽 테이블에서 일치하는 레코드를 결합합니다. 왼쪽 테이블의 기본 키 또는 외래 키를 기준으로 조인합니다.
RIGHT JOIN
오른쪽 테이블의 모든 레코드를 포함하고 왼쪽 테이블에서 일치하는 레코드를 결합합니다. 오른쪽 테이블의 기본 키 또는 외래 키를 기준으로 조인합니다.