OLAP이란
q 초기에는 OLTP에 상대되는 개념이었으나 오늘날에는 DW환경에서의 data 접근 방법의 요소로 자리 잡음.
q OLAP은 최종 사용자가 다차원 정보에 직접 접근하여 재화식으로 정보를 분석하고 의사결정에 활용하는 과정
q 1962년 다차원 프로세싱의 개념 탄생
q 1972년 Express- 다차원 데이타베이스
q 1982년 Metaphore- 관계형 OLAP 제품
q 1980년 중반 DSS 및 EIS 연계
q 1980년 후반 다차원 스프레드시트
q 1993년 E.F Codd에 의해 ‘OLAP’용어 사용
q 1995년 ‘관계형 OLAP’용어 사용 ; OLAP벤더 흡수, 합병 및 협력
q 1997년 Hybrid OLAP 탄생
q 1999년 Microsoft의 OLAP시장 참여 ; OLAP 표준 정립 및 대중화
데이타웨어하우스 (DATAWARE HOUSE)
q 사용자의 의사결정을 지원하기 위하여 기업이 축적한 많은 데이타를 사용자 관점에서 주제별로 통합하여 별도의 장소에 저장해 놓은 데이타베이스
q 전사적인 용도로 구축되므로 방대한 분량의 데이타를 효율적으로 통합하고 관리하는데 초점을 둠
데이타마트 (DATA MART)
q 데이타웨어하우스는 방대한 분량을 가지고 많은 사용자가 접속하여 사용하는데 대한 문제가 있으며 전체중 일부를 사용하는 사용자에게는 시스템 성능에 문제가 있을 수 있다
q 데이타웨어하우스의 문제점을 보완하기 위한 개념으로 사용자와 데이타웨어하우스의 중간에 각 단위별로 데이타마트를 구축하여 사용자에게 빠른 성능으로 서비스를 제공한다는 개념에서 생겨났다.
q 최근에는 데이타마트를 먼저 구축하고 이를 통합하여 장기적으로 데이타웨어하우스를 구축하는 경우도 있으며, 또한 소규모로 구축할 경우 데이타마트만 구축하는 경우도 있다.
스타스키마 (Star Schema)
q 다차원 데이타를 표현하기 위한 관계형 데이타베이스 설계기법
q 스타스키마는 FACT TABLE을 중심으로 하여 DIMENSION TABLE이 뻗어져 나오는 형태
q 이는 FACT TABLE과 DIMENSION TABLE과의 JOIN만 하며, DIMENSION TABLE과는 JOIN 관계를 안 갖는 스타조인으로 이루어진다.
q 하나의 DIMENSION TABLE에는 하나의 DIMENSION에 해당되는 모든 ATTRIBUTE를 포함한다
스노우플레이크 스키마 (Snowflake Schema)
q 기본적인 형태는 스타스키마와 동일
q 하나의 DIMENSION TABLE을 정규화하여 나눠지는 ATTRIBUTE는 별도의 DIMENSION TABLE로 구성한다.
FACTS ( VARIABLES , MEASURES , ACCOUNTS ) DIMENSION
q 사용자가 알고자 하는 목적이 되는 차원 항목
q 예) 매출 수량, 매출액 등
IDENTIFIER DIMENSION ( VIEWPOINT )
q 사용자가 분석하기 위해 필요한 차원 항목
q 예) 매장, 지역, 기간, 제품 등
큐브
q 각 차원을 구성하는 항목들의 조합에 의하여 만들어지는 공간을 셀이라 하며 실제로 이곳에 데이타가 저장되고, 각 차원의 항목으로 구성되는 논리적인 형태를 큐브라 한다.
q 하이퍼 큐브
· 하이퍼 큐브는 하나의 모델을 하나의 큐브로 표현한다.
· 모든 FACT ATTRIBUTE를 하나의 DIMENSION에 표현
· 제품 : 하이페리언 에스베이스
코그너스 파워플레이
q 블럭 멀티 큐브
· 같은 IDENTIFIER DIMESION을 갖는 FACT ATTRIBUTE를 하나의 큐브로 구성
· FACT ATTRIBUTE의 성격에 따라서 여러개의 큐브로 나뉘어 진다.
· 제품 : 인포믹스 메타큐브
마이크로소프트 SQL서버OLAP서비스
마이크로스트레티지 DSS에이전트
비지니스오브젝트 비지니스오브젝트
시게이트 홀로스
애플릭스 TM/1
q 시리즈 멀티 큐브
· 모든 ATTRIBUTE를 IDENTIFIER DIMENSION과 한 SET로 큐브를 구성
· 사용자가 알고자 하는 ATTRIBUTE만큼 큐브 생성
· 제품 : 오라클 익스프레스
파일럿 라이트쉽서버
Hierarchy & Attribute
q Hierarchy : dimension중에서 계층구조로 이루어진 것을 Hierarchy 계층구조라 하며,
q Attribute : fact를 포함한 dimension에서 포함하고 있는 항목을 Attribute라 한다
다차원 프로세싱
DATA Loading
q 운영시스템으로부터 OLAP에 필요한 저장공간 즉, datawarehouse 또는 datamart로 필요한 data만 추출(extract)하여 정제(cleasing) 및 변환 (transformation) 한뒤 loading한다.
q 이때 ROLAP을 사용할 경우는 RDBMS로, MOLAP을 사용할 경우는 MDB로 저장한다.
q loading은 initial loading과 incremental loading으로 구분 된다.
다차원 연산
q 연산순서
· 아래표에서 [?]에 해당되는 값을 횡으로 계산을 하면 20이 되나 종으로 계산을 하게 되면 40이 나오므로 이는 전혀 다른 값이 나오게 된다
· 따라서 연산하는 순서에 주의하여야 한다
· |
매출액 |
매출수량 |
평균판매가 |
반포 |
4000 |
200 |
20 |
잠실 |
3000 |
150 |
20 |
전매장 |
7000 |
350 |
[?] |
q 연산시점
· 다차원 연산의 경우 사용자 질의시점과 그 결과를 미리 연산하여 저장해놓는 방법이 있을수 있다.
· 그러나 계층의 차원수가 많게 되면 그 수는 기하급수로 늘어나며, 또한 데이터의 희박성 때문에 불필요한 셀 역시 많이 증가한다.
· 따라서 연산시 참조하는 셀이 많거나 시간이 많이 소요되는 부분 그리고 사용자가 자주 요청하는 부분에 대하여 사전 연산을 해놓는 것이 바람직하다.
다차원 질의
q 용어 정의
· 슬라이싱(slicing) : 3차원의 경우 차원 하나의 변수 값을 기준으로 하여 나머지 두개의 차원을 나타내게 되는 경우
· 다이싱(dicing) : 전체 큐브중 일부 범위의 큐브를 나타내는 경우
· 큐브와 보고서가 다른점은 큐브는 다차원이 가능하나 보고서는 2차원으로 밖에 안되기 때문에 페이지,행,열로 모든 것을 표현해야 한다
· 피보팅(pivoting) : 보고서의 행,열,페이지를 사용자가 원하는대로 바꾸어보는 작업을 피보팅이라 한다
· 필터링(filtering) : 사용자가 보고자 하는 특정 계층이나 애트리뷰트의 항목을 선택하여 특정 기준으로 세분화해가는 방법을 말한다.
· 드릴다운,드릴업,드릴어크로스,드릴쓰루
·
드릴어크로스 드릴업 드릴다운 데이터웨어하우스 OLTP 시스템 드릴쓰루
· OLAP 조인 : 하나 이상의 큐브의 데이터를 논리적으로 조인할 경우를 OLAP 조인이라 하며, 이는 큐브들 사이에 공유된 차원을 중심으로 이루어 진다.
OLAP 프로덕트
OLAP 의 종류
데이터 저장 및 관리 다차원 프로세싱 사용자 인터페이스 MDBMS OLAP CLIENT RDBMS ROLAP 엔진 OLAP CLIENT OLAP CLIENT HOLAP 엔진 RDB MDB DOLAP CLIENT MOLAP ROLAP DOLAP HOLAP
OLAP 의 특징
q MOLAP
· 다차원의 데이터의 저장과 프로세싱을 효과적으로 수행하고 사용자 질의에 신속하게 응답
· 다차원 DBMS는 사용자 질의에 빠른 응답을 위하여 다차원 배열(array)를 사용하는데 이때 발생할수 있는 문제점은 희박성(sparsity)이다.
· 따라서 희박성이 높은 다차원 데이터의 저장공간을 최소화하기 위하여 밀집된 형태의 조그만 배열로 나누어 저장 된다.
· 복잡한 계산식과 계층구조를 쉽게 모델링할수 있다.
· 제품 : Essbase, 오라클의 Express, Decision Support suite, TM/1
q ROLAP
· ROLAP 엔진 : RDBMS와 사용자 사이에서 복잡한 SQL을 대신 생성하고 다차원 연산을 수행한다.
· 단점은 SQL의 단점인 비교능력의 결여와 순차적 연산을 지원하지 못하는 점이다.
· 일반적으로 스타스키마 형태의 구조를 가지며, 작은 dimension인 경우 카티션 product, parallelism, bitmap index 기법 등을 사용하게 된다.
· 제품 : 오라클의 Discoverer, MetaCube, DecisionSuite, DSSAgent
q HOLAP
· 다차원 데이터의 저장공간으로 MDB,RDB가 함께 사용될수 있다
· 일반적으로 요약된 데이터나 계산된 데이터는 다차원 DB에 저장하고 상세 데이터는 RDB에 저장한다
· 제품 : Holos, Oracle Express, SQLserverOLAPservice
q DOLAP
· 다차원 데이터의 저장 및 프로세싱이 모드 클라이언트에 서 수행이 되며, 비교적 설치와 관리가 용이하여 적은 비용으로 구축할수 있다.
· 대용량의 처리에 한계를 가지며, 사용자들의 클라이언트에 저장된 데이터의 일관성에 큰 문제가 된다.
· 제품 : PowerPlay, BrioQuery, BusinessObject
데이터마이닝 기법
연관규칙 탐사 (Associations)
q 상품 혹은 서비스간의 연관관계를 살펴보고 이에 유용한 규칙을 찾아내고자 할 때 쓰이는 기법
q If A, then B (A->B) 와 같이 동시에 구매될 가능성이 큰 상품을 찾아내어 활용할수 있다. 이를 위하여 두 상품의 관계를 빈도로 나타내는데 다음 3가지 기준을 사용한다.
q Support : 전체 거래중 A와 B를 포함하는 거래의 비율
· P(A&B) = A와 B를 포함한 거래 / 전체 거래수
q Confidence : A를 포함하는 거래중 B가 포함된 거래의 비율
· P(B|A) = A와 B를 포함한 거래 / A를 포함한 거래수
q Lift : 임의로 B가 구매되는 경우에 비해 A와 관련되어 B가 구매되는 비율
· P(B|A) /P(B) = (A와B를 포함한 거래) (전체 거래) /(A를 포함한 거래수)(B를 포함한 거래수)
연속패턴 탐사
q 동시에 구매될 가능성이 큰 상품군을 찾아내는 연관성 측정에 시간이 포함
q 구매의 순서가 고려되어 상품간의 연관성으로 그에 유용한 연관규칙을 찾는 기법
군집 분석
q 고객수입,고객연령과 같은 비슷한 속성을 묶어 몇 개의 의미있는 군집으로 나누어 분석
q 이는 어떤 상황에 대하여 세부적으로 고려하는 것이 아니라 사전에 비슷한 유형을 몇 개의 군집으로 묶어 전체적인 특성을 파악할 때 사용된다.
q K-Means 알고리즘 : 2차원 그래프의 경우 군집으로 묶고자 하는 개수의 구심점을 잡고 거리가 가까운것들 끼리 군집으로 묶는다. 그렇게 묶인 군집의 평균을 구하여 다시 구심점을 잡고, 이와같은 방식으로 여러 번 수행하여 최종적인 군집을 형성한다.
q 구심점까지의 거리 = Ö (X-X의 중심값)² + (Y-Y의 중심값)²
의사 결정수 (Decision Trees)
q 분류 및 예측에 자주 쓰이는 기법으로 DM 응답 여부등에 미치는 고객 특성을 찾아내어 그것을 기준으로 가지 치기를 한다. 이렇게 형성된 의사결정 tree로 가장 영향을 주는 특성을 찾을수 있다.
q 의사결정수 알고리즘 : CHAID, CART, C4.5
q CHAID (Chi-square Automatic Interaction Detection)
· parent node에서의 두 child node의 비율이 어떤 특정한 특성에 의하여 비율이 많이 깨지면 그 특성은 영향을 미치고 그렇지 않으면 안 미치는 것이다.
· Q = (특성[A1] – 전체[1])² + (특성[A2] – 전체[2])² + (특성[B1] – 전체[1])² + (특성[B2] – 전체[2])² 에서 Q의 값이 클수록 그 특성의 영향이 큰것이다.
q CART (Classification And Regression Tree)
· Gini index를 사용하는데 한쪽 카테고리로만 구성된어 있을수록 순수하다고 판단하며 이 순수한 정도를 재는 측도이다.
q C4.5
· 이것도 CART와 마찬가지로 순수함을 재는 측도로서 엔트로피를 사용한다
신경 망 모델 (Neural Networks
q 인간이 경험으로부터 학습해가는 두뇌의 신경망 활동을 흉내내어 자신이 가진 데이터로부터 반복적인 학습과정을 거쳐 패턴을 찾아내고 이를 일반화함으로서 향후를 예측하는데 이용하는 기법
q 이것은 고객의 신용평가, 불량거래의 색출, 의료진단 예측, 우량고객의 선정, 타겟마케팅등의 분야에 적용
q 일반적인 모형은 다계층인식인자(MLP: Multilayer Perceptron)으로 Input Layer, Hidden Layer, Output Layer로 구성된다.
· Input Layer : 결과변수를 설명하는데 이용하고자 하는 입력변수들(예로 카드 부정거래의 경우 승인시간간격, 승인 금액, 누적승인건수등)
· Output Layer : 예측치를 얻고자 하는 결과 변수 (예로 부정거래나 정상거래등)
·
Hidden Layer : 이것은 몇 개의 은닉마디(Hidden unit)으로 구성되는데 각 마디는 연결함수(Combination Function) 를 통해 입력변수와 연결되어 있고 각 연결에 사용되는 계수는 연결가중치(Synaptic Weights)아 불린다