더북(TheBook)

테이블 분석 기능을 사용한 후에도 판매 데이터를 월별로 한 로우씩 분할해 정규화하려면 해야 할 작업이 더 있다. 코드 3-5와 같이 UNION 쿼리를 사용해 판매 데이터를 ‘언피벗(Unpivot)’해서 컬럼을 로우 형태로 바꿔야 한다(‘BETTER WAY 21. 비정규화된 데이터를 ‘언피벗’하려면 UNION 문을 사용하자’를 참고한다).

코드 3-5 반복 그룹을 언피벗하는 데 UNION 쿼리 사용

SELECT ‘2015-01-01’ AS SalesMonth, Product, Jan AS SalesAmt

FROM tblPostSales

UNION ALL

SELECT ‘2015-02-01’ AS SalesMonth, Product, Feb AS SalesAmt

FROM tblPostSales

UNION ALL

  ... 12개월을 모두 처리


 

액세스에서 제공하는 도구는 꽤 간단한 편이지만(예를 들어 로우 합계를 처리할 수 없다), ETL을 수행해서 외부 데이터를 데이터베이스에 로드할 때 어떤 작업이 필요한지는 가늠할 수 있다. 이전에도 말했지만 대부분의 데이터베이스 시스템은 이와 비슷한 상황에서는 더 강력한 도구를 제공한다. SQL Server Integration Services(SSIS), Oracle Data Integrator(ODI), IBM의 InfoSphere DataStage가 그 예다. 상용 제품으로 Informatica, SAP, SAS 등이 있고 웹에서도 많은 오픈 소스 도구를 찾아볼 수 있을 것이다.

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