더북(TheBook)

조인: 관계형 데이터베이스가 짊어진 무거운 짐

여러분이 분석가이고 지난 12개월 동안 전자제품 액세서리를 구매한 고객을 위해 프로모션을 만들기로 했다고 하자. 첫 번째로 할 일은 대상 고객이 누구인지, 어디에 사는지, 얼마나 자주 구매하는지를 파악하는 것이다. 고객 테이블을 조회하면 이런 정보를 얻을 수 있다.

모든 고객이 아니라 전자제품 액세서리를 구매한 고객만 찾으려 한다. 이런 정보는 고객 테이블에 저장되어 있지 않으므로 주문 테이블까지 뒤져봐야 한다. 주문 테이블에는 구매 일자 같이 원하는 정보가 들어 있다. 구매 일자를 활용하면 지난 12개월 동안 처리된 주문만 걸러낼 수 있다.

하지만 주문 테이블에는 전자제품 액세서리에 대한 정보는 들어있지 않으므로 주문 항목 테이블까지 찾아봐야 하는데, 사실 여러분이 원하는 정보는 이 테이블에 없다. 따라서 다시 제품 테이블을 뒤져봤다. 다행히도 이 테이블에는 필요한 정보가 있었다. 제품 테이블에는 Product_Category라는 컬럼이 있는데 이 컬럼에는 해당 제품이 전자제품 액세서리인지 다른 유형의 제품인지에 대한 정보가 들어 있다. 따라서 이 컬럼을 사용해서 전자제품 액세서리만 걸러낼 수 있다.

이제 필요한 모든 데이터를 확보했다. 고객 테이블에는 고객 이름과 고객 ID 같은 고객에 관한 정보가 있다. 주문 테이블에는 주문 일자 정보가 있어 12개월 전부터 주문한 정보만 선택할 수 있다. 또한, 주문 항목 테이블과 조인하면 전자제품 액세서리가 포함된 주문을 알 수 있다. 제품 유형 정보는 주문 항목 테이블에서 직접 조회할 수 없으므로 주문 항목 테이블과 제품 테이블을 조인해서 가져와야 한다(그림 8-4).

▲ 그림 8-4 특정 유형의 제품을 구매한 고객들을 분석하려면 테이블 4개에 조인을 세 번 수행해야 한다

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.