더북(TheBook)

흔히 사용되는 또 다른 역정규화 방법은 계산된 값이나 파생 값을 저장하는 것이다. InvoiceDetails 테이블의 각 로우에 있는 청구서 금액을 더하는 대신 Invoices 테이블에 총 청구서 금액 정보를 저장한다면, 조회 대상 테이블의 개수도 줄어들고 반복적인 계산도 없앨 수 있다. 계산된 값을 저장하면 임의의 계산을 수행하는 방법이 여러 개일 때 이점이 있다. 값을 테이블에 저장해 놓으면 해당 데이터베이스에 대한 쿼리는 계산 결과가 모두 동일하다.

가능한 다른 방법은 반복 그룹을 사용하는 것이다. 월간 성능을 비교하는 일이 많다면 단일 로우에 12개월 정보를 저장해 조회 대상 로우의 개수를 줄일 수 있다.

데이터 웨어하우스 시스템에서는 데이터 분할 및 분석 방법에 대한 요구 사항이 다양하다는 점을 기억하자. 데이터 웨어하우스 전문가인 랄프 킴벌은 데이터 웨어하우스에서 중요한 주제 세 가지로 드릴 다운(Drill-Down), 드릴 어크로스(Drill-Across), 핸들링 타임(Handling Time)을 꼽았다. 그는 팩트(Fact) 테이블을 ‘기업의 기본적인 측정치 데이터’이자 ‘대부분의 데이터 웨어하우스 쿼리의 궁극적 대상’으로 설명하면서 “긴급한 비즈니스 우선순위를 반영하고, 데이터의 품질을 주의 깊게 검수하며, 데이터를 그루핑하고 제한하는 수많은 진입점을 제공하는 디멘젼(Dimension) 테이블을 두지 않는 한 실효성은 미미하다.”라고 지적했다.

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