'OLAP'에 해당되는 글 2건

  1. 2011.05.04 Data Warehouse (DW) 개념
  2. 2011.05.04 OLAP(OnLine Analytical Processing) - 기본개념
OLAP2011. 5. 4. 01:31

[DW]BI를 위한 DW !!
 
이번 홈페이지 개편 작업을 계기로 OLAP강좌를 진행하려고 합니다.

어떤 하나의 툴에대한 설명이나 세부운영방법 보다는 개념적인 강좌를 하려고 합니다.

다른 모든 것도 그렇지만 특히나 DW분야는 더욱 개념이 중요하다고 할 수 있습니다.

개념만 잡히면 어떤 툴이던지 적용하는데는 그리 어려운 일이 아니니까요..

우선 저의 간단한 소개와 OLAP강좌를 하게된 경위를 말씀드리겠습니다.

전 건이라고 합니다. (물론 본명아뉩니다. ㅠㅠ)

S전자에서 EIS 구축을 시작으로 DW에 대해 접하게 되었고 요즘 주 관심사가 되어버렸습니다.

해서 함께 나누려고 이런 공간을 마련하게 되었습니다.

서두가 너무 길었줘.. ^^


자 그럼 첫번째 강좌를 시작해 볼까요~ !!

비즈니스 인텔리젼스(Business Intelligence)..

일반 법인의 정보화의 목적은 BI에 있습니다.

데이터를 정보화 시키고 이를 이용해서 경영에 도움을 주기 위한 모든 시스템들이

궁극적으로 BI의 실현에 있는 것입니다. 그럼 어떻게 BI를 향한 접근을 할 수 있을까요..

사람들은 이를 실현하기 위해 DATA를 정보화 시키고 이를 축척하기 시작했줘,.

그리고 이제 그 데이터는 방대해지고.. DW라는 넘이 생겨나게 되었습니다.

그럼 DW는 무었이냐?

DW는 데이터 웨어하우스.. 음.냥..

쉽게 말하면 데이터의 집합체입니다.

DATA -> 정보화 -> DB -> 추출 -> DW

더미 데이터들을 모아 DB를 구축하게 됩니다. 

DW는 이렇게 구축된 DB의 데이터들이 해가 지나면서 쌓이게 되겠줘...

그러면 이렇게 모인 DATA에서 공통 차원을 추출해서

분석을 할 수 있게 하는 기초 공간이라고 생각하면 됩니다.

그리고 OLAP은 DW를 이용해서 유용한 DATA를 유연하게 신속하게 분석을 하는 작업을 말하게 되는거지요..

개념이 낮설죠.. 오늘은 이정도만 하죠.. 차차 자세하고 쉽게 설명해드리겠숨더.!! 



[DW]OLAP 과 OLTP
 
이번 강좌 부터는 존대를 하지 않겠습니다.

강좌는 원래 좀 딱딱해야하는법..!!



오늘은 OLAP에 대해서 알아보겠다.

왠 OLAP? DW에서 사용되는 모든 프로세싱은 OLAP이기 때문이다.

IT를 하는 사람이라면 DB를 사용 할 것이고, 그 대부분의 사람들이 OLTP에 대해서는 익히 잘 알고 있으리라고 생각된다.

하지만 노파심에서 설명드리자면..

OLTP는 "online transaction processing"의 약자로 Data의 입력,출력,조회,삭제 등을 위한 트랜젝션 처리를 기반으로 하는 모든 DATA작업을 말한다.

실 생활을 빌어 얘기하자면,, 은행에서 돈을 찾을때 돈이 찾아지기 까지의 DATA 처리 과정들이나,

인터넷을 사용할때 회원 가입 및 전자상거래 처리,

지하철 페스를 찍고 빠져나가는 과정 등 실생활에서 이루어지는 DATA관련된 모든 처리는 OLTP라고 생각하면 된다.

그럼 OLAP은 무엇인가?

OLAP란 "online analytical processing"의 약자로 Data를 여러관점에서 분석 하여 정보화하는 작업을 말한다.

위에서 설명한 OLTP와는 T와 A차이지만 실상 이는 비교의 대상은 아니다.

단지 이해를 돕기 위한 수단으로 비교를 할 뿐..


어쨌든.. OLAP은 분석을 위한 DATA작업을 말한다.

예를 들자면 피벗테이블같이 엑셀에서 데이터들을 여러 관점에서 분석이나 추출하는 과정이 이에 해당된다.

  즉 OLAP는 OLTP로 의해 만들어진 DATA들을 효과적으로 활용하기 위하여 몇가지 관점을 정해 놓고 그 관점을 기준으로 분석을 하는것을 이야기 하는것이다.

때문에 OLAP는 OLTP와 다르게 Online작업이 없다.

물론 ROLAP라는 놈이 있긴하지만 개념적으로는 이것도 온라인이 아니다.
(ROLAP에 대해서는 나중에 다시 설명하겠다.)

오늘은이만..



 
[DW] 구성요소
 
그럼 DW를 구성하고 OLAP를 하기 위한 구성요소는 무었이 있을까?


첫째 분석할 데이터가 있어야한다.

둘째 OLAP를 운영할 엔진이 필요하다.

셋째 분석용 데이터 마트가 필요하다. - (큐브(CUBE)와 차원(Dimension)으로 이루어진 객체)


  첫째는 다 알테고,,

  둘째의 엔진은 OLAP을 처리할 소프트웨어 즉 Hyperion사나 MS사, ORACLE사, MIS사 등의 OLAP용 툴을 지칭하는것이고.,

  셋째는 데이터 마트의 구성이다.

우리가 첫시간에도 말한바와 같이 DW는 일반기업체의 BI를 목적으로 만들어진다.

즉 과거를 분석하고, 측정하여, 앞으로 어떻게 될지를 예측할 수 있고, 이를 대비할 수 있는 것이다.

그러면 여기서 '어떤 것'을 분석하고, 측정하고 하는 대상을 정해야하고 이를 최대한 효과적으로

분석할 수 있는 모델이 필요하지 않을까? 그의 실체가 데이터 마트인 것이다.

데이터 마트는 우리가 마이닝을 하는 직접적인 대상이 된다.

그럼 데이터 마트는 데이터 웨어하우스의 하나의 작은 구성요소인가?

답은 아니다!!- 에구 어렵다 이걸 어떻게 설명해야하는가?

데이터 마트는 실제 분석을 위해 집약적으로 설계되고 만들어지는 DATA 모델인 것이다.

DW는 방대한 DATA를 과거에서 부터 모아서 이루어진 DATA의 집합체이지만..

요즘 개념은 많이 발전하여 이를 이용한 응용 프로그램 및 활용 마이닝 기법까기 포함하는

소프트웨어 공학용 개념으로도 사용되는 것 처럼 데이터 마트의 개념도 많이 바뀌게 되었다.
(이하 요점이 많이 빚나가서 생략합니다.)

어쨌든.. 효과적인 데이터 마이닝을 할 수 있게 설계하고 분석하여 만들어낸 실체가

큐브와 디멘전으로 이루어진 데이터 마트인 것이다.

다음 시간에는 큐브와 디멘전에 대해 설명하겠다.
 
   

  

[DW] Cube와 Dimension
 
데이터 마트는 큐브와 차원으로 이루어져있다.

차원? 많이 들어보았던 단어다.. 1차원 점,2차원 선, 3차원 면, 4차원 시공간..

빽투더 퓨쳐에서 4차원을 넘나드는 환상을 경험해봤으리고 생각된다..
(이 세대가 아니라면 둘리에서 바이올린을 타고 날아가서 둘리의 어머니를 찾는 장면을 생각해보라..)

OLAP은  DATA를 어떤 속성들에 의해 분석이 이루어 진다고 했다.

여기서 "어떤 속성"이란넘들이 바로 차원(Dimension)이 되는 것이다.

DATA들 중에 반복적이고 규칙적인 속성를 찾아서 이를 차원이라고 규정하는것이다.

각 차원은 멤버로 구성이 된다.

잘 이해가 안되리라... 예를 들겠다.

지난 월드컵을 생각하며 축구의 스코어에 대해서 생각해보자..


예를 들어 아래와 같은 데이터가 있다고 하자.
-------------아 래-----------------
년도  상대팀    골득   골실
-----------------------------------
1999  이태리          5      1
1999  브라질        10      5
1999  미 국         100     0
2000  이태리          5      1
2000  일 본         100     1
------------------------------------
위 표에서 나온 데이터를 예로 설명하자면
차원은 년도, 상대팀이 되는 것이다.

년도는 한정되며 반복적인 시간의 흐름이며,

상대팀 또한 전세계의 한계가 있는 반복적인 멤버들만 존재한다.
(멤버란? 차원의 원소 예.. 이태리, 미국,일본 하나하나)

때문에 이들을 차원으로 뽑아 낼 수 있는 것이다.

에거 힘들다. 그럼 이제 큐브!!

큐브는 디멘젼과 측정값로 이루어져 있다.

큐브란 넘을 사전적 의미로 찾아보면.. 정육면체이다. (영화 큐브를 상상하면 딱이겠군..)

여기서는 딱히 정육면을 얘기하는것이 아니라 무수히 많은 차원들로 이루어진 형태의 데이터의 집합체를 말한다.

즉 위에서 설명한 차원들이 하나하나 큐브의 면이 되는 셈이고, 그 디멘젼의 교차점이 가지는 값이 측정값이 되는것이다 .(측정값은 위의 예에서 골득과 골실이 됨)

꼭 찝어서 비교하지는 못하더라도 OLTP의 Table과 약간은 비슷하다고 생각하면 될것이다.

그럼 어느정도는 이해 했으리라고 생각되고 다음시간에는 큐브의 종류에 대해서 알아보겠다. 

  

    
 
[DW] OLAP의 스키마 I
 
정말 오랜만에 글을남긴다...

지금은 휴식 기간이라서.. ㅋㅋ

어쨌든..오늘은 OLAP에서 사용하는 스키마(schema)의 종류를 설명하겠다.

스키마라? 스키마라함은 어떤 객체의 근원이되는 구조를 말한다.??

물론 여기에서는 큐브에 대한 스키마를 말하려한다.

저번 강좌에서는 큐브가 차원과 값으로 이루어졌다고 설명했었다.

이차원이 어떤 식으로 구성되는냐에 따라서 스키마의 종류가 분리된다.

DW에서 사용하는 스키마의 종류는 3가지가 있다.

첫째는 가장 그형태가 쉽고 많이 쓰이는 별형(스타:star) 스키마.
둘째는 스타 스키마의 확장형인 눈송이 형(스노우플레이크:snowflake) 스키마.
셋째는 부모와자식형 (페어런트엔차일드:parent&child) 스키마.

우선 스타 스키마에 대해서 알아보자

저번강의에서 설명된 기본 큐브가 스타 스키마에 해당된다.
다시한번 보자

-------------아 래-----------------
년도  국가    경기장소  골득   골실
-----------------------------------
1999  이태리     서울          5      1
1999  브라질     브라질리아10      5
1999  미 국       LA          100     0
2000  이태리     로마          5      1
2000  일 본       도쿄        100     1
------------------------------------
이런 종류의 데이터를 분석하기 위한 스키마가 바로 스타스키마이다.

아래 그림을 보자.


                                      년도
                                         |
                                      골득- 경기장소
                                     /    
                                 국가

그림을 봐도 왜 *스타 스키마인지 이해가 갈거라고 생각된다..(별모양의 꼭지가 반듯이 5~6개가 있어야한다는 편견을 버려!! . 보통 2,3개의 차원이 더 있으면 비슷할것임!! ㅠㅠ)

가운데 골득은 측정값(measure)가 되며 그 주위에 차원들이 둘러싸여 있다.

이것이 하나의 스타스키마형 큐브가 되는것이다.


다음은 스노우 플레이크 스키마를 설명하겠다.

다음 장에서..

   


  

[DW] OLAP의 스키마 II
 
이제 OLAP의 스키마 II 인 스노우 플레이크에 대해서 설명하겠다.

스노우 플레이란 눈송이란 뜻이다. 물론 큐브가 구성된 모양이 비슷하게 생겼기 때문에 붙여진 이름이다.

스노우 플레이크 스키마는 앞 강좌에서 설명한 스타 스키마의 확장이라고 생각 하면 무난할 것이다.

아래 예를 보겠다.


                                       년도
                                         |
                                      매출- 지점-지역-국가
                                       /
                                    제품-제품그룹

위 도식화된 그림중에 매출이 측정값이 되며 나머지는 차원이 된다.

스노우 플레이크가 스타 스키마와 구별되는 것은 매출(측정값)을 기준으로

직접적으로 연관된 차원들을 제외한, 나머지 차원들이다.

지점 차원에 붙은 지역,국가 차원이라가 제품에 붙은 제품그룹차원 등 차원들간에 가지를 친다는 것이다.

현재는 몇 안되는 차원이지만 무수히 많은 차원들의 연관관계가 있는 큐브를 구성한다고 생각해 보라!!

  마치 눈송이 결정체를 보는 것 같은 구조가 아닌가?

스노우 플레이크의 구조는 좀 복잡하다.

하지만 실질적으로 스노우 플레이크 스키마를 이용하여 설계하는 경우는 매우 드믄 실정이다.

거의 대부분이 스타 스키마로 구현이 가능하기 때문이다.

그런데 왜 스노우 플레이크 스키마를 쓸까? 그건 확장성 때문이다.

스노우 플레이크로 설계를 하면 기존의 팩트테이블의 수정 없이 확장이 용이하기 때문이다.

하지만 속도나 운용상의 어려움이 많기 때문에 스노우플레이크의 설계는 그 구성이 커질수록 사용을 금하고 있다.

또한 스타스키마를 응용하면 마치 스노우 플레이크처럼 표현이 가능하다.

이부분은 나중에 연재를 마치고 실전을 강의 할때 다시 설명하기로 하겠다.

스노우 플레이크의 설명은 여기까지..
 
   

  

[DW] OLAP의 스키마 III
 
정말 오랜만에 글을 올린다.

2개월만인가? 그렇다고 너무 불평하지 말길...

오늘은 Parent & Child 구조에 대해서 알아보겠다.

부모 자식관계의 구조?라.. 음.. 설명하기가 좀 어렵겠군..

보통 기업에서 부모자식 구조를 사용하는곳은 계정 관리가 요하는 곳이다.

예를 들어 원가 계정이라는 것이 있고 이는 원자재+기타 부외 비용이라고 하고,

월 손익이라는 계정에는 매출 + (-) 원가가 포함되어 있다고 하자.

원가=원자재+기타부외비용
손익=매출+(-)원가

위에 있는 모든 계정(원가,원자재,기타부외비용,손익,매출)들은 모두 계정이라는 속성이 있으면서도 서로 부모자식과도 같이 레벨이 존재한다.

  손익
    ↓ ↘
  매출 원가
   :      ↓ ↘
   : 원자재  기타부외비용
   :       :          :

위와 같이 root가 있고 leaf가 있는 형태의 tree형태가 된다. 물론 이를 보모 자식이라고 칭한다.

좀더 데이터 구조적으로 접근해보자.

Account No | Name   | Parent | Operator
=======================================
0001            |  손익    |           |  
0101            |  매출    | 0001    |  +
0201            |  원가    | 0001    |  -
0202            |  원자재 | 0201    |  +
0203            |  기타    | 0201    |  +

이제 좀 감이 잡히는가?

이런 차원이 있는 구조를 Parent&Child 구조라 부른다..


이번 강좌를 마지막으로 OLAP의 스키마에 대해 알아보았다.

이제는 이론 강좌를 떠나서 직접 만들어보는 임플강의를 진행하겠다.

다음 강좌가 언제가 될지는 모르지만.. ^^ 그때까지 안녕히..  

Posted by 아로나
OLAP2011. 5. 4. 01:13
OLAP(OnLine Analytical Processing)

I. OLAP
II. FASMI
III. OLAP Milestone

IV. OLAP 제품 분류
1. MOLAP(Multidimensional OLAP)
2. ROLAP(Relational OLAP)
3. DOLAP(Desktop OLAP)
4. HOLAP(Hybrid OLAP)

V. 다차원 모델의 구성
1. 큐브의 구성요소
2. 스타스키마(Star Schema)
3. 스노우플레이크 스키마
4. 변수차원의 이해
5. 하이퍼큐브와 멀티큐브

VI. 다차원 모델링

VII.다차원 질의(다차원 분석)
1. Slicing & Dicing
2. Drill-Down, Drill-up, Drill-Across, Drill-Through
3. Sorting, Ranking
4. OLAP조인


I. OLAP
OLAP(OnLine Analytical Processing)은 '최종 사용자가 다차원 정보에 직접 접근하여 대화식으로 정보를 분석하고 의사결정을 활용하는 과정(조재희/박성진, 1996)'으로 정의 할 수 있다.

1. 다차원 정보
정보란 본질적으로 비교를 통해 얻어진다. 사용자는 단순히 '이번 달 매출액이 얼마인가?'라고 물어보지 않는다. 만약 어떤 사용자가 이렇게 질문을 했다면 사용자는 묵시적으로 지난달 매출액이 얼마인지, 혹은 목표로 잡은 매출액이 얼마인지를 알고 있기 때문에 이처럼 질문 했을 것이다. 이와 같이 사용자는 정보를 분석하기 위해 비교하기를 원하며 이러한 다양한 각도에서 수행되어야 한다. 이러한 각도를 정보를 구성하는 차원으로 생각할 수 있다. 이러한 의미에서 정보는 본질적으로 다차원적이며, 다차원 모델은 비즈니스를 표현하는 가장 자연스러운 형태이다.

2. 직접 접근
일반적으로 기업의 데이터는 전산부서에 의해 관리되며 기업의 전산 시스템은 데이터의 수집과 갱신에 초점을 맞추어 설계되어 있다. 따라서 데이터는 사용자가 원하는 형태로 존재하지 않으며, 이러한 시스템으로부터 필요한 정보를 찿아내고 가공하는 일은 전산 환경에 익숙하지 못한 사용자에게 어려운 일이다. 결국 사용자는 자신이 필요로하는 정보를 전산 부서에 요청하게 된다. 이에 비해 OLAP환경에서 정보는 쉽게 이해할 수 있고 조작하기 쉬운 형태로 존재한다. 다차원 정보는 사용자의 관점에서 구축된다. 사용자는 필요한 시점에 정보 매개자 없이 정보원에 직접 접근하여 다양한 각도에서 분석을 수행 할 수 있다.

3. 대화식 분석
기존의 정형화된 보고서만으로는 사용자의 다양한 정보 요구에 제대로 대처할 수 없다. OLAP환경에서 사용자는 정형화된 보고서를 단순히 조회하는 방식에서 벗어나 대화식으로 정보를 분석하게 된다. 대화식 정보 분석에서 하나의 질문에 대한 답은 질문을 이끌어낸다. 사용자는 필요한 테이터를 요청하고 결과를 얻는다. 사용자는 얻은 결과를 분석하고 이 새로운 정보를 이용해 또 다른 질문을 던진다. 이처럼 OLAP환경에서 사용자는 시스템과의 상호작용을 통해 정보를 분석하며 원하는 결과를 얻을 때까지 계속해서 분석을 수행하게 된다. OLAP시스템은 이러한 대화식 분석과정에서 사용자의 사고 흐름이 중간에 끊어지지 않도록 사용자 질의에 신속한 답을 제공해야 한다.

4. 의사결정에 활용
OLAP시스템의 목적은 사용자가 기업의 전반적인 상황을 이해할 수 있게하고 의사결정을 지원하는데 있다.
은행의 창구 업무나 항공사의 예약 업무 등은 전형적인 OLTP(OnLine Transaction Processing)의 예라고 할 수 있다. OLTP시스템은 원시 데이터가 실제로 발생하고 기록되는 '무엇(What)'에 초점을 맞추고 있으며, 현재 거래 상태를 정확하게 기록하고 갱신할 수 있도록 하는 것이 목표이다.
반면 OLAP시스템은 이렇게 수집된 데이터를 의사결정에 활용하는 측면을 담당하여 '왜(Why)'에 초점이 맞추어진다. 즉 OLTP시스템이 일상적인 기업의 운영을 지원하는 반면, OLAP시스템은 기업의 방향을 설정하는 역활을 한다.

OLTP

OLAP

워크플로우 기반 (업무 프로세스 중심) 사용자의 분석 수행 기반 (주제 중심)
트랜잭션 처리 (입력, 조회, 삭제, 수정)
운영자 계층 시스템
보고서, 분석, 계획 (조회, 제한적 입력/수정)
분석가 및 의사결정자 계층 시스템
2차원, 정규화 다차원, 계층구조
상세 데이터, 중복성 배제 요약 정보, 중복성 수용
소량의 데이터 처리
활용 패턴 단순, 고른 시간대 분포
시스템 자원 사용량 예측 용이
대량의 데이터 처리
활용 패턴 다양, 시간대 불규칙 분포
시스템 자원 사용량 예측 어려움
구축 후 데이터 축적 중심
전통적 개발 주기
시스템 구축 후 유지보수 단순
구축 후 데이터 축적 및 스키마 변경
반복 확장 개발 주기
시스템 구축 후 유지보수 전략 필요
사용자 중심 응용프로그램 (4GL)
Customizing 용이
정형화된 보고서/변경 어려움
단순한 화면 조작
전용 도구 (Off-the-Shelf, Out-of-Box)
Customizing 제한적
동적인 비정형 분석/변경 용이
EUC(End User Computing) 활성화 필요

OLAP라는 용어는 1993년 E.F.Codd에 처음 사용된 용어이며, “Analytical” 이라는 말에서 알 수 있듯이 OLAP은 데이터웨어하우스에 체계적으로 쌓여 있는 데이터 속에 담겨 있는 정보를 효율적으로 끌어내어 분석하고자 할 때 효율적이다. (물론, 데이터웨어하우스가 구축되어 있어야 OLAP 시스템을 구축할 수 있는 것은 아니다. “OLAP 마일스톤”에서 알 수 있듯이 OLAP은 데이터웨어하우스와 독립적으로 이미 훨씬 이전부터 태동하고 있었다.)

Nigel Pendse에 따르면 1995년에 OLAP Report를 설립할 때, OLAP 제품들의 기준을 정하는데 있어 많은 진통이 있었다. 많은 공급업체들이 OLAP을 표방했지만 이에 대한 적절한 기준을 제시하기가 어려웠던 것이다. 물론, RDBMS와 OLAP 개념의 창시자인 E.F Codd의 12가지 룰(1993)이 이미 널리 알려져 있었지만 복잡하고 실제로 적용하기 어려웠다. 그래서, 나름대로 개념을 다시 정립하였는데 이를 FASMI (Fast Analysis of Shared Multidimensional Information)라 하였다. 현재 대부분 OLAP의 정의를 언급하는 경우 FASMI를 이용하여 설명한다. (E.F. Codd의 12가지 룰은 6가지가 더 추가되어 18가지 룰로 재구성 되었다. 그렇지만, 별로 인용되지는 않는다.)

II. FASMI (Fast Analysis of Shared Multidimensional Information)(top)
FAST는 일반적으로 사용자의 쿼리에 대한 반응속도가 5초 이내인 것을 의미한다. 간단한 분석인 경우 1초 이내이고 아주 드물게 20초 이상 걸릴 수도 있다. 실제로 분석가들은 30초 이상 반응이 없으면 대개 “Crtl+Alt+Del”을 눌러 강제로 종료시킨다. 설사 끈기있게 기다려 결과를 본다 해도 분석과정에서 사고의 연속성을 상실해 버린다. 많은 OLAP 제품 공급업체들은 이러한 문제점을 해결하고자 나름대로의 기술을 개발하였지만 아직 완벽한 해결책을 내놓은 곳은 없다. 사용자들이 요구할 모든 데이터를 미리 구해 놓으면 반응속도는 빠르지만 데이터베이스가 폭발적으로 커졌고 (Data Explosion) 이를 피하기 위해 실시간으로 (on-the-fly) 계산하여 결과를 보여 주면 응답속도가 너무 느렸다. 그래서, 많은 경우 이 두 가지를 적절하게 조화시키는 방법을 추구하고 있다.

1. ANALYSIS
시스템이 사용자에게 임의의 비즈니스 로직과 통계적 분석 기능을 쉽게 제공해야 함을 의미한다. 최종 사용자에게 적절한 계산 능력을 부여함으로써 새로운 비정형 계산의 정의가 가능해야 하고 별도의 프로그래밍 없이 원하는 형태로 보고서를 만들어 낼 수 있어야 한다. 여기에는 타임 시리즈 분석, 비용 분배, 환율 변환, Goal-Seeking, 비정형 다차원 분석 등이 포함된다.

2. SHARED
동일한 데이터에 대해 다중 사용자가 동시에 공유하여 분석할 수 있어야 함을 의미한다. 여기에는 동일한 데이터에 대한 다중 사용자의 읽기/쓰기 작업이 포함된다. 따라서, 시스템은 이러한 작업이 적시에 안전하게 이루어질 수 있도록 하기 위하여 가능한한 데이터의 저장 단위인 셀 단위까지의 보안과 그 데이터에 대한 적절한 레벨에서의 락킹을 지원해야 한다. 이 부분은 많은 OLAP 제품들이 갖는 취약한 부분으로 읽기 전용만 지원하는 제품들도 많다.

3. MULTIDIMENSIONAL
OLAP을 정의하는데 있어 가장 키가 되는 개념인 다차원성을 의미한다. 시스템은 데이터를 다차원적으로(일단, 데이터를 바라보는 다양한 관점으로 이해하자. 나중에 개념을 다시 다룰 것이다.) 보여 줄 수 있어야 하며 여기에는 계층구조(Hierarchy)와 다중 계층구조(Multi-Hierarchy)에 대한 지원이 포함된다.

4. INFORMATION
얻을 수 있는 데이터와 필요에 의해 파생된 모든 정보를 의미한다. 이 때의 정보는 적절한 형태로 적절한 사람에게 적시에 제공됨으로써 정보로서의 가치를 극대화할 수 있다. (Right Form, Right People, Right Information, Right Time)

III. OLAP Milestone(top)
OLAP은 언뜻 생각하면 최근의 개념과 기술로 생각하기 쉬운데 실제로는 그 기원을 Ken Iverson이 1962년에 펴낸 “A Programming Language”라는 책에서 찾아볼 수 있다. 즉, 우리가 느끼지 못하고 있었을 뿐이지 특수한 형태로 이미 오래 전부터 존재해 왔었다는 것이다. 또한 어떤 분야 못지않게 치열한 경쟁이 있었고 그 속에서 기술 발전과 생존을 위해 업체와 업체간의 인수합병(실질적으로는 합병의 사례는 찾아보기 힘들다. 제품 중심의 인수가 대부분이었다고 보는 것이 더 적합하다.)이 많았던 것도 사실이다. 아래는 Nigel Pendse가 OLAP Report에서 제공하는 OLAP Milestone을 정리한 것이다.

OLAP Milestone (출처 : OLAP Report)

년도

사건

주석

1962

Ken Iverson :
“A Programming Language”

최초의 다차원 언어
IBM 메인프레임 사용 (1960년 후반), 현재 제한된 영역에 사용.

일부 제품의 내부에 아직도 사용 (Adaytum Planning(1), Lex 2000)

1970

Express 등장
(1970년대 후반에 기업용 버전)

마케팅 응용프로그램을 겨냥한 최초의 다차원 툴
현재 시장 선두그룹 중 하나 (오라클 소유 : 1995)
코드는 많이 수정되었지만 개념과 데이터 모델은 유지.

1982

Comshare System W 등장
(메인 프레임 용 : 1983)

재무 응용프로그램을 겨냥한 최초의 OLAP 툴
신규 마케팅 없으며 IBM 메인프레임에 일부 사용.
윈도우 버전 Commander Prism은 여전히 사용
Essbase가 동일한 개념을 많이 이용

1984

Metaphor 출시

최초의 ROLAP 제품
Mac 전용 하드웨어와 제품의 고가로 판매 부진

1985

Pilot Command Center 출시

최초의 클라이언트/서버 EIS(2) 전용 OLAP
VAX 서버, PC 클라이언트 기반
타임 시리즈 지원
신규 마케팅 없음

1990

Cognos PowerPlay 출시

최초의 데스크-톱, 윈도우 OLAP
데스크-톱 영역에서 선두주자
최근 클라이언트/서버 및 웹버전 제공 (기능상 데스크-톱 영역으로 분류)

1991

IBM : Metaphor 인수

OLAP 제품의 주인이 바뀌는 첫 사례
Metaphor는 Apple-IBM Taligent 합작 벤처의 일부가 됨
IDS라는 이름으로 명맥 유지, 고객사이트 거의 없음

1992

Essbase 출시

마케팅에 성공한 첫 OLAP 제품
1997년 이후 OLAP 서버 부분 선두주자

1993

Codd 백서 :
OLAP용어 탄생

Arbor Software의 의뢰로 작성
다차원분석에 대한 관심과 붐 조성

1994

MicroStrategy DSS Agent 출시

다차원엔진을 사용하지 않은 최초의 ROLAP 제품
Multi-pass SQL을 이용한 처리
거대 차원을 갖는 대용량 데이터베이스에 적합
서버 성능 저하 단점
3계층 하이브리드 아키텍쳐 (MicroStrategy 7.0)

1995

Holos 4.0 출시

최초의 하이브리드 OLAP
관계형과 다차원데이터베이스를 동시에 접근
현재 다른 많은 OLAP 도구들도 동일한 접근방법 이용
현재 Seagate가 소유하고 있으며 시장에서 고전 중

1995

Oracle : Express 인수

OLAP을 세상에 알린 중요한 사건
다른 데이터베이스 공급업체들의 시장 참여 계기
Hybrid OLAP으로서 MOLAP, ROLAP 제품과 모두 경쟁

1996

BusinessObjects 4.0 출시

관계형 데이터로부터 동적으로 생성하는 데스크-톱 큐브로부터 매끄러운 다차원 및 관계형 보고서를 제공한 첫 제품
초기에는 문제가 많았으나 4.1, 5.0을 거치면서 많은 개선

1997

Microsoft :
OLE DB for OLAP 발표

프로젝트 코드명 : Tensor
업계 표준 OLAP API(3)로 자리 잡음
40여 이상의 업체들이 OLAP 제품 개발에 이용

1998

IBM DB2 OLAP Server 출시

모든 데이터를 관계형 DB2 또는 기타 관계형데이터베이스의 스타스키마 형태로 저장하는 Essbase 버전
ROLAP이라기 보다는 느린 MOLAP으로 이해

1998

Hyperion Solutions 출범

Arbor사와 Hyperion Software의 합병
OLAP 시장에서 최대 규모 합병
합병이라기 보다는 Hyperion에 대한 Arbor의 인수 성격
Microsoft의 OLAP 시장에 대한 신규 진출에 영향
대부분의 다른 OLAP 인수 경우와 같이 합병 결과는 부정적

1999

Microsoft OLAP Services 출시

프로젝트 코드명 : Plato
Panorama Software Systems 기술 기반 (1996년 인수)
OLAP 서버 시장에서 선두자리에 오름 : 배포의 용이성, 고성능의 저장 아키텍쳐 (ROLAP/MOLAP/Hybrid), 수많은 써드-파티 업체, 저가, 마케팅 능력

1999

CA :
소위 실패한 OLAP 서버들을 재정비

Platinum의 Prodea Beacon 인수, DecisionBase로 개명 (1999)
Sterling의 IA DecisionSuite 인수 (2000)
인수의 결과로 성장가능성을 보임

2000

Microsoft : 제품명 변경
OLAP Services -> Analysis Services

(데이터마이닝 기능 추가에 따라) OLAP server의 두번째 출시 버전의 이름 변경.

2000

XML for Analysis 공고

MS 주도의 다중 공급자, 크로스-플랫폼, XML기반 OLAP API(4) 발안. (나중에 Hyperion, SAS 조인)

2001

Oracle :
Express의 후속 공급 시작

1970년부터 사용되어 오던 Express를 흡수하고 6년이 지나서, 그 후속으로 기대되는 Oracle9i OLAP 공급을 시작.
그렇지만, 새로운 세대의 Oracle OLAP 첫 출시는 완전하지 않았고 사용이 적합하지 않음.
기술 및 어플리케이션의 완전한 대체는, Express를 흡수한지 8년이 되는 2003년까지 그다지 기대되지는 않음.

2001

MicroStrategy :
Strategy.com 포기

Strategy.com은 새로운 Microsoft가 되기 위한 MicroStrategy의 야심찬 전략이었다.
대신에, 거의 파산 직전에 직면하고 있고 결국은 2001년 말에 자회사를 정리하였다.

(1) Iverson의 아들인 Eric Iverson이 현재 Adaytum Software의 CTO(Chief Technical Officer)로 있다.
(2) Executive Information System : 임원정보시스템
(3) Microsoft의 OLEDB for OLAP과 OLAP Council (Oracle 주축)의 MDAPI를 놓고 업계 표준으로 정하기 위해 소위 OLAP API War를 벌였다. 현재, OLEDB for OLAP의 승리로 끝났지만 Oracle은 새로운 OLAPI라는 것을 내세워 독자적인 노선을 고수하고 있다.
(4) 스펙 작성시 50여개 이상의 업체에서 100여명의 설계자 및 아키텍트들이 참여하였고 발표 후 20여개 이상의 주요 공급업체들이 지원을 선언하는 등 현재 강력한 업계 표준 후보로 자리잡고 있다.


IV. OLAP 제품 분류(top)
일반적으로 OLAP 제품들은 MOLAP, ROLAP, DOLAP, HOLAP로 구분된다.
1. MOLAP(Multidimensional OLAP)
다차원 데이터베이스에 기반한 OLAP 아키텍처로 다차원 데이터의 저장과 프로세싱에 MDBMS가 사용된다. 다차원 데이터의 저장과 프로세싱에 동일한 엔진이 사용되기 때문에 타 아키텍처에 비해 네트워크 상의 데이터 이동이 최소화될 수 있다.
다차원 DMBS
다차원DMBS는 복잡한 비즈니스 로직을 쉽게 반영ㅎ여 모델을 구축하고, 다차원 데이터의 저장과 프로세싱을 효과적으로 수행하며 사용자 질의에 신속하게 응답할 수 있도록 제작되었다. 반면 다차원DB는 관계형DB에 비해 데이터 용량이나 에러 회복 능력, 하드웨어 활용등의 측면에서는 상대적으로 다소 떨어진다.
MDBMS는 다차원 배열(Array)형태의 데이터 구조를 사용하기 때문에 사용자 질의에 대해 빠른 응답성능을 제공하는 장점이 있다.
대표적인 제품 : 하이페리언 솔루션의 에스베이스, 오라클의 익스프레스, 파일롯 소프트웨어의 디시젼 서포트 등

[표] MOLAP 및 ROLAP 제품 비교

 

MOLAP 접근법

ROLAP 접근법

특성

다차원 모델링 및 질의도구

다차원 질의 도구

데이터 조작

읽기/쓰기

읽기 중심

데이터 요구량

대용량

초대용량

연산 기능

다양한 연산

제한된 연산

개발 주체

최종 사용자 주도형

전산부서 주도형


2. ROLAP(Relational OLAP)(top)
다차원 데이터는 관계형DB에 저장될 수있으며, 이경우 스타스키마가 많이 사용된다. 일단 스키마가 설계된 다음 필요한 테이블들이 물리적으로 생성된다. 질의응답성능을 향상시키기 위해 상세데이터를 가진 테이블과 함께 집계테이블이 만들어질 수 있다. 하지만 전통적인 SQL은 다차원 연산과 질의에 효가적으로 대처하지 못한다. SQL문이 가지는 가장 큰 약점은 비교능력을 결여하고 있다는 점과 순차적 연산을 지원하지 못한다는 점이다. 예를 들어 SQL문으로는 '매출액이 가장 좋은 상위 5개 제품은 무엇인가?' 또는 '매출액이 감소하고 있는 제품은 무엇인가?'와 같은 질문에 답하기 어렵다. 최근 SQL의 한계를 극복하고 보다 쉽고 효과적으로 다차원 질의문을 작성할 수 있도록 MDX(Multi-Dimensional eXpression)라는 다차원 질의언어가 개발되었다.
ROLAP엔진
ROLAP제품들은 사용자와 관계형DMBS사이에 위치하여 사용자를 대신해서 복잡한 SQL을 생성하고 다차원 연산을 수행한다. 메타데이터를 포함해 필요한 모든 데이터를 관계형 데이터베이스에 저장하고 활용하며 다차원 프로세싱을 위해 별도의 OLAP엔진을 가지고 있다. OLAP제품들은 관계형 DMBS와 ROLAP엔진 ROLAP클라이언트로 구성되는 3층구조를 취한다.

ROLAP엔진은 관계형 데이터와 클라이언트 사이의 연결역할을 수행한다. ROLAP엔진은 클라이언트의 다차원 질의를 적절한 SQL로 변환하여 관계형DBMS에 넘겨주고, 관계형DBMS로부터 처리된 결과를 다시 다차원 보고서로 변환하여 클라이언트에 넘겨주는 역할을 수행한다.
ROLAP은 방대한 데이터를 대상으로 다차원분석을 할 수 있지만 대부분의 RDBMS와 SQL언어가 아직은 OLAP에 최적화되지 않았기 때문에 그 응답성능에 많은 제한을 가진다. 따라서 SQL문을 통해 필요한 데이터를 관계형 데이터베이스로부터 추출한 다음 자신의 ROLAP엔진에서 필요한 추가적인 조작을 수행한다.
대표적인 제품 : 인포믹스의 메타큐브, 인포메이션 어드벤티지의 디시전 쉬이트, 마이크로스트래 티지의 DSS에이젼트 등이 있다.

3. DOLAP(Desktop OLAP) (top)
다차원 데이터의 저장 및 프로세싱이 모두 클라이언트에서 이루어진다. 분석에 필요한 데이터는 데이터베이스에서 추출되어 클라이언트에 특수한 화일 형태로 저장되며 제한된 기능의 다차원 분석을 수행한다. 비교적 설치와 관리가 용이하며, 유지보수 부담이 적고 적은 비용으로 OLAP시스템을 구축할 수 있다. 하지만 필요한 데이터가 모두 클라이언트로 이동될 필요가 있으며, 이러한 아키텍쳐 상의 문제로 대용량의 데이터를 처리하는데 한계를 가진다. 또 각각의 사용자들이 자신의 클라이언트에 데이터를 저장하고 유지하기 때문에 이러한 데이터들이 일관성을 갖도록 관리하는 것 역시 커다란 문제가 되기도한다. 최근 많은 DOLAP제품들이 서버용 엔진을 추가하고 있다.
대표적인 제품 : 코그노스의 파워플레이, 브리오 테크놀러지의 브리오쿼리 등이 있다.

4. HOLAP(Hybrid OLAP) (top)
HOLAP제품은 다차원 데이터의 저장 공간으로 다차원 데이터베이스와 관계형 데이터 베이스가 함께 사용될 수 있는 제품이다. 일반적으로 요약된 데이터나 관계식에 의해 새로 계산된 데이터는 "MDB"에 저장되며, 상세데이터는 "RDB"에 저장된다. 질의 과정에서 다차원 데이터베이스에 저장된 데이터보다 더 상세한 데이터가 필요하게 될 경우 자동적으로 RDBMS에 저장된 상세데이터를 가져오게된다. HOLAP솔루션은 빠른 응답성능을 제공하는 MOLAP의 장점과 보다 확장성이 뛰어난 ROLAP의 장점을 결합하여보다 나은 솔루션을 제공하고 있다.
대표적인 제품 : 오라클의 익스프레스, 마이크로소프트의 SQL서버 OLAP 등이다.
OLAP과 관련하여 가장 많은 논란이 되는 것은 MOLAP 제품과 ROLAP제품 사이의 선택이다. ROLAP제품은 일반적으로 MOLAP제품에 비해 복잡한 비즈니스 로직을 반영하기 힘들고 다차원 연산기능이 부족한 반면, MOLAP제품은 ROLAP제품에 비해 대용량의 데이터를 처리하지 못한다.

V. 다차원 모델의 구성 (top)

1. 큐브의 구성요소
1) 모델
하나의 큐브(Cube), 예로 아래그림은 매출분석모델의 큐브이다.

2) 차원(Dimension)
큐브를 구성하는 축(Axis)이다. 매출분석 모델은 변수, 매장, 제품이라는 3개 차원으로 구성된 큐브이다.

3) 차원 항목(Member 혹은 Element)
각 축의 좌표에 해당하는 것이다. 매출분석모델에서 살펴보면 제품 차원은 냉장고, 세탁기 등의 항목으로, 매장 차원은 반포, 잠실 등의 항목이 있다.

4) 셀(Cell)

각 차원을 구성하는 항목들의 조합에 의해 만들어지는 공간을 말하며 데이터가 저장되는 공간이다. 셀은 큐브를 구성하는 차원들의 가진 항목들의 조합수 만큼 존재한다. 모든 셀은 각 차원항목들의 조합에 의해 유일하게 참조될 수 있다. 이러한 항목들을 선택하여 큐브의 어떠한 영역이라도 참조할 수 있다.

5) 계층구조(Hierachy)
다차원 모델을 구성하는 대부분의 차원들은 일반적으로 계층구조를 가진다. 계층구조는 레벨들 간에 혹은 항목들간에 존재할 수 있다. 항목들간의 가장 기본적인 관계는 패어런트(Parent)-챠일드(Child)관계이다. 패어런트는 계층구조에서 어떤 항목의 바로 상위항목을 나타내며, 챠일드는 바로 하위항목에 해당한다. 예로 기간차원에서 '1/4분기' 항목의 챠일드는 '1월, 2월, 3월"이다. '7월'의 패어런트는 '3/4분기'이다. 한편 어떤 항목의 씨블링(Sibling)은 그 항목과 동일한 패어런트를 가진 항목을 말한다.'1월'의 씨블링은 '1월, 2월, 3월'이다.
패어런트를 갖지 않는 루트(Root)항목이라 한다. '년계' 항목은 기간차원의 루트항목에 해당한다. 반면 챠일드를 갖지 않는 항목을 리프(Leaf)항목이라 하며, 기간차원의 경우 '1월, 2월, 3월'등을 포함하여 12개의 리프항목이다. 리프항목을 상세(Detail)항목이라 부르기도 한다.
어떤 항목의 앤세스터(Ancestor)는 계층구조상의 루트항목까지 연결되는 가지(Branch)에서 그 항목의 상위에 나타나는 모든 항목을 말한다. 예를 들어 '1월'항목의 앤세스터는 '1/4분기, 상반기, 년계항목'이며, '3/4분기'항목의 앤세스터는 '하반기'와 '년계'항목이다. 반대로 어떤 항목의 디센던트(Descendent)는 계층구조상의 리프항목까지 연결되는 가지에서 그 항목의 하위에 나타나는 모든 항목을 말한다. '년계'항목의 디센던트는 '년계'를 제외한 모든 하위항목을 말한다.

6) 레벨
계층구조는 레벨(Level) 사이에 존재 할 수 있는데, 예를 들어 기간 차원의 경우 '일-월-분기-반기-년'과 같은 다단계(레벨) 계층구조가 존재할 수 있다. 계층구조에서 거리를 나타내는 개념과 차원항목들의 부분집합을 나타내는 개념으로 나눠볼 수 있다. 일부 OLAP제품들은 계층구조상의 거리나 위치를 나타내는 개념으로 레벨을 사용한다. 레벨은 리프항목에서 시작하여 루트항목 방향으로 항목이 속하는 계층의 위치를 계산한다. 두 항목이 임의의 가지에 대해 디센던트의 최대치가 동일할 경우 동일한 레벨에 속한다고 한다. 제네레이션(Generation)은 루트항목에서 시작하여 리프항목 방향으로 항목이 속하는 계층의 위치를 계산한다. 계층구조상의 두 항목의 동일한 수의 앤세스터를 가질 경우 동일한 제네레이션에 속한다고 말한다.

7) 애트리뷰트
하나의 차원에 대해 차원을 구성하는 항목들의 특성을 나타내는 이러한 정보를 애트리뷰트(Arribute)혹은 프라퍼티(Property)라고 한다. 예를 들어 매장차원을 구성하는 리프항목들의 특성을 나타내기 위해 매장의 주소, 전화번호, 담당자, 매장크기, 직영여부, 개점일 등과 같은 애트리뷰트가 사용될 수 있다.

2. 스타스키마(Star Schema) (top)
스타스키마는 정보를 사실(Fact)과 차원(Dimension)으로 분류한다. '사실'은 실제 데이터요소로 분석을 요하는 변수차원의 항목들로 구성된 정규화된 테이블을 말한다. 차원은 '사실'을 보는 관점을 나타내며 각각의 차원은 별도의 차원테이블에 표현되며 비정규화된 테이블로 존재한다.



1) 사실테이블
사실테이블은 스타스키마상에서 유일하게 정규화된 테이블로 스타스키마의 중심에 위치하며 스타스키마 설계시 가장 큰 테이블이다. 대규모 소매업이나 통신산업의 다차원 모델인 경우 수억 개의 행을 가질 수 있다. 위의 그림에서 사실테이블은 매장키, 제품키, 기간키, 매출액, 매출수량을 열(Column)로 가지고 있다. 매장키,제품키, 기간키는 각 차원 테이블과 연결되는 외래키(Foreign Key)이다. 이처럼 사실테이블은 일군의 외래키 열과 상세 데이터 값을 가지는 열로 구성되며, 외래키들은 차원테이블과의 조인에 사용된다.
사실테이블에 저장되는 대부분의 사실은 수치데이터이며, 각 차원들의 다양한 애트리뷰트에 따라 집계될 수 있다. 즉 월별 매출액은 분기별 매출액으로 합산될 수 있으며, 각 분기별 매출액은 년간 매출액으로 합산될수 있다. 이처럼 대부분의 경우 집계작업은 합산을 의미한다. 마찬가지로 제품차원이나 매장차원에 대해서도 집계될 수 있다. 반포매장의 매출액과 짐실 매장의 매출액이 집계되어 강남권의 매출액을 계산해 낼 수 있다. 이러한 사실을 '합산 가능한 사실(Addive facts)'이라 한다.

한편 일부 차원에 대해서만 값이 집계될 수 있는 사실도 있다. 예를 들어 특정시점에서 반포매장과 잠실매장에 대해 냉장고 재고량이 각각 10대, 20대이고 세탁기의 재고량이 각각 20대, 30대라고 하자. 이경우 전체매장의 냉장고 재고량과 세탁기 재고량은 각각 30대와 50대로 집계할 수 있다. 즉 매장차원에 대해서는 각 제품의 재고량을 전체 매장에 대해 집계 할 수 있다. 하지만 제품차원에 대해서는 재고량을 집계하는 것이 현실적으로 아무런 의미를 갖지 못한다. 반포 매장에 대해 '냉장고 재고량 10'과 '세탁기 재고량 20'을 더해 제품 전체 제고량 30이라는 값을 계산해 낼 수는 있지만 이 값은 아무런 의미가 없다. 이처럼 '재고량'은 매장차원에 대해서는 집계할 수 있지만 제품차원에 대해서는 집계할 수 없다. 즉 제품차원에 대해 집계된 값은 사용자에게 아무런 의미를 갖지 못한다. 이와 같은 사실을 '일부차원에 대해서만 합산 가능한 사실(Semiadditive facts)'이라고 한다.
사실 중에는 집계될 수 없는 사실도 있는데, 예를 들어 각 제품별 판매가격과 같은 사실은 어떤 차원에 대해서도 집계되지 않을 것이다. 이와 같은 사실을 '합산이 되지 않는 사실(Non-additive facts)'이라고 한다.

2) 차원테이블
차원테이블은 사실에 대한 사용자관점을 나타내며 차원에 관한 서술적(Descriptive)정보를 저장하며 비정규화된(Denormalized) 데이터구조를 취한다. 차원테이블은 필요한 정보가 모두 하나의 테이블에 저장되어 있기때문에 질의응답 성능을 떨어뜨리는 조인의 횟수를 최소한으로 줄일 수 있다. 이러한 이유는 OLAP시스템은 데이터의 효율적인 갱신이나 저장보다는 효과적인 활용을위해 구축되어지는 시스템이기 때문이다. 따라서 OLAP시스템을 OLAP시스템의 경우처럼 저장공간을 절약하기 위한 형태로 설계하는 것은 바람직하지 않다.

매장차원에 관한 정보를 가진 차원테이블을 나타내고 있다. 매장 테이블은 매장의 권역별 분류, 시도별 분류, 담당자, 유형, 개점일, 면적과 같은 매장차원의 다양한 특성을 나타내는 정보들을 가지고 있다. 이러한 정보들은 테이블 상에 열로 나타나고 있으며 이를 애트리뷰트라 한다. 차원 테이블의 내용은 전적으로 사용자 관점에서 설계되어지며, 따라서 각 애트리뷰트는 사용자에게 의미가 있고 실제로 사용자가 질의를 통해 볼 수 있는 형태의 값을 가진다. 차원테이블은 사용자들이 분석을 시작하는 일차적인 장소이며 사용자의 다양한 분석 니즈를 지원하도록 설계한다.

3. 스노우플레이크 스키마 (top)


스노우 플레이크(Snowflake)스키마는 스타스키마의 사실테이블 구조와 동일하게 유지하면서 차원테이블이 정규화(일반적으로 제3정규형)된 구조를 말한다. 스탈스키마에는 사실테이블과 직접 조인되는 차원테이블이 있으며, 이 차원테이블은 또 다른 차원 테이블 상의 기본키를 참조하는 외래키를 가진다. 이렇게 참조되는 테이블을 아웃트리커(Outtrigger) 테이블 혹은 아웃보드(Outboard)테이블이라한다.
하지만 실제 현업에서는 최상의 성능을 내기 위해서는 두가지 형태가 어느 정도 혼재된 상태로 사용되는 것이 일반적이다. 데이터의 무결성(Integrity)을 유지하고 데이터의 중복성을 줄이기 위한 정규화와 성능향상을 위한 비정규화가 일정한 수준에서 조합된 형태를 취한다. 설계자는 사용자 질의 유형과 질의 응답성능을 고려하여 적절한 수준에서 테이블을 비정규화할 필요가 있다.

4. 변수차원의 이해 (top)
논리적인 측면에서 변수차원은 모든 다차원 모델에 존재한다. 변수차원은 OLAP제품들에 따라 변수(Variables), 사실(Facts), 측정치(Measures), 계정(Accounts), 아이템(Items)등과 같은 다양한 이름으로 불리워진다. 다차원 모델의 구축은 바로 이러한 변수 차원의 항목을 정의하는 데서부터 시작한다.

변수차원은 다음과 같은 의미를 갖는다.
1) 변수차원은 다른 차원들의 존재기반을 제공해 준다.
변수차원은 비즈니스 상에서 우리가 측정하고자 하는 항목(매출분석모델의 경우 매출액과 매출수량이 변수차원)들로 구성된 차원이며, 나머지 차원들은 이러한 항목들을 사용자들이 분석하기 위한 하나의 관점을 나타낸다고 할 수 있다.
2) 변수차원은 나머지 차원들의 상세정도(Granularity)를 결정한다.
예를 들어 매출분석모델의 경우 일반적으로 일별 혹은 주별 항목으로 기간차원이 구성되는데 비해, 대부분의 재무모델에서 기간차원은 월별항목만으로도 충분할 것이다. 물론 실제 다차원 모델의 구축에는 데이터의 가용성이나 시스템 용량 등과 같은 다양한 요소들이 추가적으로 고려되기도 한다.

변수가 없는 다차원 모델은 존해하지 않는다. 때론 변수(혹은 '사실')이 물리적으로 표현되어지지않을 수도 있으나, 논리적인 의미에서 변수가 없다는 의미는 아니다. 예로 출석모델에서 사실테이블에는 '교과목 차원 키, 학생 차원 키, 일자/시간 차원 키, 교수차원의 키, 강의실 차원 키'가 존재 할뿐 실실적인 사실은없다. 하지만 이러한 외래키만으로도 특정 학생의 출석여부를 확인 할 수 있다.

5. 하이퍼큐브와 멀티큐브 (top)
다차원 데이터구조를 논리적으로 표현하는 방식은 크게 하이퍼큐브방식과 멀티큐브방식의 두가지 접근법으로 나눠볼 수 있다. 반면 이다.

1) 하이퍼큐브(Hypercube)
분석 모델에서 비용을 함께 분석한다고 생각해보자.
비용은 표준제조비용과 표준운송비용으로 구성되며 다음과 같은 관계식을 이용해 구해진다.
비용 = 매출 수량 X (표준제조비용 + 표준운송비용)
이때 매출액, 매출수량, 비용은 기간별, 제품별, 매장별로 데이터를 갖지만, 표준제조비용은 기간별, 제품별로만 데이터가 존재하고, 표준운송비용은 기간별, 매장별로만 데이터가 존재한다고 하자. 즉 표준제조비용에 대해서는 매장차원이 의미가 없으며, 표준운송비용에 대해서는 제품차원이 관련되지 않는다.

하이퍼 큐브 접근법은 하나의 모델을 하나의 큐브로 표현한다. 각각의 차원들을 구성하는 모든 항목들의 조합 수만큼 셀이 존재하게 된다. 즉 큐브를 구성하는 모든 변수가 동일한 차원을 공유하며, 큐브를 구성하는 모든 셀 역시 동일한 차원들을 가진다. 하이퍼 큐브 방식은 모델구축이 용이한 반면 큐브 내에 "의미 없는셀"이 존재할 수 있다는 단점을 가진다.

2) 블럭멀티큐브(Multicube)
멀티큐브 접근법은 하나의 모델을 여러 개의 큐브로 표현하는 방식이다. 멀티큐브 방식은 다시 블럭(Block) 멀티큐브방식시리즈(Series)멀티 큐브 방식으로 구분해 볼 수 있다.

블럭(Block) 멀티큐브
앞의 매출분석 모델에는 매출액, 매출수량, 표준제조비용, 표준운송비용, 비용이라는 다섯 개의 변수항목이 존재했다.
이중에서 매출액, 매출수량, 비용 항목에 대해서는 기간, 제품 매장 3개의 차원이 모두 의미가 있지만, 표준제조비용의 경우 기간과 제품차원만이 의미가 있으며 표준운송비용의 경우 기간과 매장차원만이 의미가 있다.


블럭 멀티큐브방식은 동일한 차원을 공유하는 변수항목들의 집합에 대해 각각 차원을 설정해 준다. 블럭 멀티큐브 방식의 경우 의미 없는 셀이 생성되지 않기 때문에 보다 효율적으로 큐브를 유지할 수 있다. 반면 모델의 구축시 하이퍼큐브에 비해 보다 세심한 주의를 필요로 한다.

시리즈(Series)멀티 큐브 방식

모든 변수항목들을 별개의 큐브로 다룬다. 데이터는 변수에 저장되는 것으로 표현되며 각각의 변수는 데이터베이스에 정의된 차원들 중에서 필요한 차원들만을 취할 수 있다.변수(Variable)는 나머지 차원들과 분리되어 표현되고 있으며 각 변수는 생성과 함께 필요한 차원이 설정된다.

한편 하이퍼큐브 방식과 멀티큐브 방식은 전적으로 논리적인 의미에서 구분되는 것이며, 한 제품이 논리적으로는 하이퍼큐브 방식을 취하더라도 실제 물리적인 데이터 저장의 관점에서는 멀티큐브 방식을 취하는 경우도 있다.

VI. 다차원 모델링 (top)
1. 변수차원 구성항목 결정
설정된 주제영역에 대해 실제 사용자가 분석하고자 하는 항목들을 정의하는 단계이다.

2. 구분차원(Identifier Dimension)의 결정
변수차원을 구성하는 항목들을 어떤 관점에서 분석할 것인지 결정하는 간계로 이러한 관점은 모델의 나머지 차원을 구성한다. 이러한 차원들은 변수차원 항모들을 분석하는 하나의 관점을 나타내며 변수차원과 구분하기 위해 구분차원(Identifier Dimension)이라 불리기도 한다.
변수차원은 모델을 구성하는 다른 어떤 차원들보다 먼저 설정되며 나머지 차원들에 대한 존재기반을 제공한다. 즉 변수차원에 포함되어 있는 항목들의 성격에 따라 나머지 차원들이 정해진다. 모든 차원은 일차적으로 사용자의 분석목적에 적합하게 사용자의 관점에서 설정된다.

3. 데이터의 구체성 결정
데이터의 상세수준을 정하는 단계이다. 이처럼 데이터의 구체성정도를 결정하는 작업은 변수차원을 제외한 나머지 차원에 대해, 차원을 구성하는 항목들의 상세수준을 결정하는 작업이라 할 수 있다. 데이터의 구체성 정도는 OLAP시스템 구축에 있어 매우 중요한 문제로 시스템의 데이터 양과 응답될 수 있는 사용자 질의 유형에 절대적인 영향을 마친다.

4. 계층구조와 애트리뷰트 정의
각 차원에 대해 분석에 필요한 계층구조와 애트리뷰트를 설정하는 단계다.

5. 관계식 정의
항목들 간에 필요한 관계식을 설정한다. 관계식은 대부분 변수차원을 구성하는 항목들에 대해 정의한다.

6. 차원수의 결정
모델이 많은 차원을 가질수록 좋을 것 같지만 실제로 차원이 증가함에 따라 큐브의 희박성은 급격하게 커지며, 이에 따라 사용자가 다차원 질의를 수행하는데 예기치 못한 어려움을 가질 수도 있다. 또한 모델의 특성 이외에도 OLAP시스템의 저장공간과 성능에 큰 영향을 미치기 때문에 시스템적인 문제가 함께 고려되어야 한다. 따라서 차원 수는 분석요구와 시스템 용량 사이에 균형을 맞추어 결정되어야 한다.

 

VII.다차원 질의(다차원 분석) (top)
1.Slicing & Dicing
다차원 질의이 기본은 사용자가 큐브의 어떤 부분을 볼 것인지 정의하는 것이다. 다차원 질의는 마치 사용자가 큐브의 일부분을 자신의 원하는 형태로 절단하여 살펴보는 것에 비유할 수 있다. 이러한 이유로 다차원 질의를 슬라이싱과 다이싱(Slicing & Dicing)이라고 부른다.


변수(매출, 매출원가), 제품, 기간의 3차원으로 구성된 큐브를 제품 축을 기준으로 슬라이싱과 다이싱하였다고 생각해보자. 큐브를 구성하는 차원 중 변수차원은 보고서의 행을, 기간차원은 보고서의 열을 이루고 있으며 제품차원은 보고서의 데이터를 결정하고 있다. 이처럼 다차원 데이터를 2차원 보고서로 표현하기 위해서는 열, 행, 페이지의 3가지 차원개념이 필요하다. 기간차원이 보고서의 열 차원을, 변수차원이 행 차원을, 제품차원이 페이지 차원을 구성하고 있다. 열 차원과 행 차원은 보고서의 축을 구성하며, 따라서 열차원과 행 차원을 축차원으로 부르기도 한다. 보고서의 데이터는 페이지차원에 의해 결정되며, 따라서 페이지 차원을 필터(Filter)차원이라고 한다.

2. Drill-Down, Drill-up, Drill-Across, Drill-Through
(top)
1) 드릴다운(Drill-Down), 드릴업(Drill-up)
드릴다운은 요약된 형태의 데이터 수준에서 보다 구체적인 내용의 상세데이터로 단계적으로 접근하는 분석기법을 말한다. 예로 2000년 지역별 매출데이터를 보다가 보다 상세한 2000년 상반기 지역별 매출데이터로 드릴다운 할 수 있다. 드릴업은 드릴다운과 반대의 방향으로 사용자가 정보를 분석하는 것을 말한다.
일반적으로 드릴다운과 드릴업의 경로는 모델의 계층구조를 따른다. 또한 사용자는 모델이 가진 다양한 애트리뷰트에 의해서도 드릴다운이나 드릴업을 할 수 있다.예를 들어 '색상'이라는 애트리뷰트를 가질 때, 전체제품의 매출액 데이터를 보다가 각 색상별 매출액 데이터로 드릴다운 할 수 있다. 즉 드릴 다운은 "좀 더 자세한 데이터를 보여 달라"라는 의미를 가진다.

2) 드릴어크로스(Drill-Across), 드릴쓰루(Drill-Through)
드릴어크로스는 다른 큐브의 데이터에 접근하는 것을 말한다. 예를 들어 사용자가 '매출액 모델'을 분석하는 과정에서 '반포'매장에서 '냉장고'의 매출액이 급격히 증가하고 있음을 발견했다면, 사용자는 '재고모델'로 드릴어크로스하여 각 매장별로 냉장고의 재고량을 파악하고 매장간 재고량을 조정할 수 있을 것이다.
드릴쓰루는 OLAP시스템으로부터 데이터 웨어하우스, 혹은 OLAP시스템에 존재하는 상세데이터에 접근하는 것을 말한다. OLAP시스템에 존재하지 않는 데이터가 추가적으로 필요한 경우 자동적으로 데이터 웨어하우스나 OLTP상의 데이터에 접근할 수 있는 통로를 제공한다. 이러한 드릴쓰루가 가능하기 위해서는 OLAP시스템에 있는 데이터와 웨어하우스에 있는 데이터 사이의 논리적인 관계가 메타데이터로 정의되고 관리될 필요가 있다. 드릴쓰루는 리치쓰루(Reach Through)라 불리기도 한다.

3. Sorting, Ranking (top)
소팅과 랭킹이 다차원 데이터에 사용될 경우 보다 세심한 주의가 필요하다. 다차원 질의 결과로 얻는 보고서에는 다수의 차원이 중첩되거나 계층구조의 여러 레벨에 속하는 항목들이 함께 나타나는 경우가 일반적이다. 이경우 사용자는 단순히 특정 행이나 열을 기준으로 소팅이나 랭킹을 수행하기 보다는 중첩된 차원이나 계층구조를 인식하여 소팅이나 랭킹이 이루어지길 원할 수 있다. 다차원 질의에서 차원의 중첩이 이루어진 경우 차원의 중첩을 인식하여 소팅이 수행되면 훨씬 효과적인 분석이 이루어질 수 있다.


4. OLAP조인 (top)
질의과정에서 다수의 큐브를 논리적으로 조인할 필요가 있는데 이를 OLAP조인이라 한다. 일반적으로 OLAP조인은 큐브들 사이에 공유된 차원을 중심으로 이루어진다.
예로, 매출큐브는 매출액과 매출 수량을 분석하기 위한 모델로 기간, 제품, 매장차원으로 구성된다. 한편 재고큐브는 재고량을 분석하기 위한 모델로 기간, 제품, 물류창고 차원으로 구성된다. 다차원 질의 결과는 매출액, 매출수량, 재고량을 동시에 필요로 한다. 즉 OLAP 조인이 발생하는데 매출액, 매출수량은 매출큐브에서, 재고량은 재고큐브에서 가져와야 한다.

자료출처 :
OLAP 테크놀로지
저자 : 조재희(광운대학교 경영정보학과 교수), 박성진(엠프레인 CRM사업부 책임컨설턴트) 저
출판사 : 시그마인 사이트컴

- 출처 : http://innobizard.com.ne.kr/main/it/olap/olap.html -
Posted by 아로나