본문 바로가기

BI/DW

[DW] 차원 모델링

 

차원모델링에는 점진적으로 변화하는 차원, 시간-날짜 차원, 부모-자식 차원이 있다.

 

 

점진적으로 변화하는 차원 (Slowly Changing Dimension)

 

어떤 제품의 색상을 흰색에서 검정으로 바꿨다.

색상을 바꾸고 난 후의 전략적 의사결정의 성과를 추적하기 위해 그 정보를 차원 테이블에서

계속 유지하기로 했을 때 바뀐 색상 정보를 어떻게 유지하느냐에 따라 다음과 같은 방법이 있다.

 

  1. SCD Type1

    - 차원 데이터 변경 이력이 아닌 최종 결과만 유지한다.

    - 구현하기 쉽고 관리하기 편한 장점이 있다.

    - 과거 데이터에 대한 추이를 분석할 필요가 없는 상황에서유용하게 사용될 수 있다.

 

  2. SCD Type2

    - 변경된 데이터를 새로운 행으로 추가하는 방법을 사용한다.

    - 이때 키 중복의 문제가 발생하기 때문에 차원 테이블에 새로운 열을 하나 추가하고 고유한 순번을

      지정하여 대리키로 만들고, 팩트 테이블은 기존의 기 정보가 아닌, 새로운 대리키 정보를 참조한다.

 

  3. SCD Type3

    - 한 레코드에 과거 정보와 바뀐 정보를 함께 저장하는 방법을 사용한다.

    - 열로 분리하여 저장하는 방법을 선택할 수 있고, 언제 변경이 일어났는지 추가 정보를 함께 둘 수 있다.

    - 하지만 중간 단계의 변화에 대한 분석이 불가능하고, 변경 이력의 추적이 필요한 특성 개수만큼

      열을 추가해야 되기 때문에 관리적인 문제가 발생할 수 있다.

 

 

시간-날짜 차원

 

  1. 날짜와 시간에 대한 구체적인 정보를 제공해주는 차원 테이블

  2. 날짜와 관련하여 보다 구체적이고 다양한 관점을 표현하기 위해 차원 테이블로 분리하여 유지

  ※ 보통 OLTP 시스템에서는 날짜와 시간에 대한 정보를 DATETIME과 같은 시간-날짜 형식의 열 하나로 저장

 

 

부모-자식 차원

 

  1. 자신과 자신의 부모키를 함께 유지하고 있어 전체 계층 구조를 만들 수 있는 차원

  2. 부모-자식 차원의 형식으로 표현하는 정보의 예

    - 자신과 자신의 직속 상관이나 직속 부서를 표시한 회사 조직도

    - 회계에서 계정(Account)차원

    - 제조 공장에서 자재명세서라 불리는 BOM(Bill Of Material)

  3. CTE(Common Table Expression)를 이용해 재귀 호출을 수행하면 부모와 자식 관계를 쫓아

     더 이상 관계를 확장할 수 없을 때까지 확장하여 계층 구조로 표현할 수 있다.

 

 

참고 : 권태돈과 함께하는 SQL Server 2012 BI

 

 

'BI > DW' 카테고리의 다른 글

[DW] DW 특징  (0) 2014.01.27